Documents and document IDs
Every document in ARender is identified by a DocumentId and accessed through a DocumentAccessor. Think of it as a key-value pair: the DocumentId is the key, the DocumentAccessor is the value. This pair is the foundation of how ARender identifies and accesses documents across the viewer, Document Service Broker, connectors, and caching layer.
DocumentId
A DocumentId is a string-valued handle that uniquely identifies a document within the system. The viewer, the broker, and caching layer all use DocumentId as the common key.
The internal string representation is opaque to most consumers. By default ARender uses a Base64 encoding that produces IDs prefixed with b64_:
b64_dXJsPWh0dHA6Ly9leGFtcGxlLmNvbS9zYW1wbGUucGRm
You will see these IDs in viewer URLs and in broker logs. Different ID generators produce different formats (encrypted, UUID-based), but from a consumer's perspective the ID is always an opaque string.
When opening documents by URL, the rendition service only authorizes whitelisted domains. By default, no domain is authorized. See Opening documents for configuration.
Hierarchical IDs
When composite documents like Zips or mails (documents containing other documents) are opened, each child document's DocumentId is created by appending a / and a numeric index :
b64_<parent-parameters>/0
b64_<parent-parameters>/1/3/1
This hierarchy allows the broker and caching layer to manage document groups as a unit — for example, evicting all children when the parent container expires.
DocumentAccessor
A DocumentAccessor is used both in the Viewer Server side (and connector) and in the Rendition as a document representation in order to access the document content, metadata and annotations.
How a DocumentAccessor gets created depends on how the document is loaded:
- Via a connector — connectors (Java JARs) produce
DocumentAccessorinstances directly, implementing theDocumentServiceURLParserandDocumentAccessorinterfaces. - By URL — the broker fetches the document from the URL and creates the
DocumentAccessoritself.
Regardless of how the DocumentAccessor is created, the rest of the rendition pipeline treats it identically: the broker delegates the layout, conversion, rendering, and text extraction using the same DocumentId as cache key.
Related pages
- Opening documents: URL parameters and multi-document opening
- Document ID generators: configuring Base64, encrypted, and UUID generators
- Connectors: how connectors produce
DocumentAccessorinstances - Rendition caching: how
DocumentIdvalues are used as cache keys