Connector Release October 17, 2026 • 8 min read

Intelligent Content Automation Meets Enterprise RAG: Announcing the Doxis Repository Connector

Across banking, insurance, healthcare, and public administration, SER Group's Doxis 4 / Doxis Intelligent Content Automation platform serves as the mission-critical foundation for enterprise document management (DMS), electronic file (*Akten*) lifecycle records, and business process automation. Today, we are thrilled to release the official Doxis Repository Connector (oc-doxis-repository-connector) and native Doxis Client SDK (oc-doxis-client)! Ingest Doxis documents, traverse hierarchical electronic files, normalize custom metadata descriptors, enforce strict Zero-Trust multi-tenant isolation, and sync deletions with automated tombstone detection. 🚀📄

Doxis 4 CSB Enterprise Ingestion Pipeline Architecture
Doxis 4 CSB REST API (Customer: ACME, DB1)
→
DoxisRepositoryConnector (CQL / Akten Tree)
→
Java 25 StructuredTaskScope + TempFileInputStream
→
Claim-Check Store (Ozone / S3)
→
OIS Document + Tenant SIDs (ACME/*)
→
Vector Stores & Secure MCP Server

1. The Enterprise ECM Challenge: Liberating Doxis Knowledge for AI

Organizations managing tens of millions of documents in Doxis face a significant hurdle when adopting enterprise Generative AI and Retrieval-Augmented Generation (RAG):

The oc-doxis-repository-connector was engineered from the ground up to solve every one of these enterprise challenges natively, adhering strictly to the Open Ingestion Standard (OIS).

2. Native Transport: The oc-doxis-client Subsystem

Rather than relying on third-party dependencies or legacy SOAP interfaces, OpenCrawling communicates with Doxis via the modern Doxis Content Service Bus (CSB) REST API (contract 14.4.1+) using a dedicated, zero-dependency Java 25 client module: oc-doxis-client.

Key architectural highlights of the client layer include:

3. Dual Crawling Strategies: CQL Search & E-File (*Akten*) Traversal

Different enterprise workloads require different crawl patterns. The connector supports two distinct execution modes:

Mode A: High-Speed CQL Search Crawling (crawl-mode: search)

Leverages Doxis Context Query Language (CQL) to query repositories directly. Crawl jobs can target specific document classes, date ranges, or descriptor attributes:

spring:
  opencrawling:
    connector:
      doxis:
        crawl-mode: search
        search-query: "OBJECTNAME LIKE 'Contract*' AND ObjectDate >= '2026-01-01'"
        document-classes:
          - "ContractDocument"
          - "ProcurementRecord"
        batch-size: 100

Hits are retrieved in configurable page batches (default: 100) via GET /documents/searchResults/{searchId}, streaming items directly into Java 25 Virtual Threads for downstream parsing.

Mode B: Hierarchical Dossier Navigation (crawl-mode: folder)

In document-centric business processes (e.g. HR employee dossiers, legal matter files, loan origination *Akten*), relationships between documents and their enclosing folders are vital. In folder mode, the connector starts at a designated root-folder-id and traverses the hierarchy recursively, filing documents under their respective dossier paths while capturing child dossiers.

Flexible Version Handling

Control version indexing using version-mode:

4. Typed Descriptor Normalization & Schema Integrity

Doxis metadata descriptors contain the true business context of your files. The connector's normalization engine introspects descriptor types and converts them to standardized formats:

Doxis Descriptor Type Raw CSB Format Normalized OIS Format Example
DATE YYYYMMDD string ISO-8601 Date string 20260315 → 2026-03-15
DATETIME / TIMESTAMP Epoch ms or raw string ISO-8601 UTC timestamp 2026-03-15T11:20:00.000Z
NUMERIC / DECIMAL Formatted currency/number Plain decimal number string "1,250.50" → "1250.50"
BOOL 1 / 0 or Y / N Standard boolean string "true" / "false"
🔑

Configurable Prefixing & Key Collision Protection: Custom descriptors are prefixed with descriptor-prefix (e.g. doxis_desc_ObjectName). Raw unnormalized values are preserved under doxis.raw.<name>, and reserved OIS metadata keys are mapped safely to doxis.attr.<name>.

5. Zero-Trust Security, E-File Inheritance & Multi-Tenant Isolation

Enterprise AI search requires that a user querying the vector database or an MCP agent can never see results for documents they lack permission to view in Doxis:

1. Granular ACE Translation

The DoxisSecurityMapper inspects Access Control Entries (ACEs) on both documents and e-files:

2. Hierarchical Dossier Inheritance

Documents filed inside an electronic file (*Akte*) inherit their parent dossier's ACEs. The connector merges e-file permissions with document-level instance ACEs, emitting inheritanceEnabled: true to ensure seamless downstream policy enforcement.

3. Fail-Secure Fallbacks (Deny by Default)

Because class-level permissions are not exposed over the REST API, documents lacking explicit instance ACEs receive configured fallback-principals (e.g. group:Legal) or an empty ACL. They are never marked public, preventing accidental data leaks.

4. Multi-Tenant Isolation

When tenant-isolation: true is configured, all user and group identities are automatically qualified by the customer tenant name:

"security": {
  "inheritanceEnabled": true,
  "permissions": [
    { "identity": "ACME/Legal", "identityType": "group", "access": "read" },
    { "identity": "ACME/elena.weber", "identityType": "user", "access": "write" },
    { "identity": "ACME/restricted.user", "identityType": "user", "access": "deny" }
  ]
}

This allows multiple business units or SaaS tenants to share a single PostgreSQL pgvector, Qdrant, or Solr index while maintaining ironclad tenant boundaries during retrieval filtering.

6. Claim-Check Streaming & Disk Leak Prevention with TempFileInputStream

In enterprise content repositories, files can range from kilobytes to gigabytes. Holding document payloads in JVM heap memory causes Out-Of-Memory (OOM) errors, while naive temporary disk caching can fill up worker volumes if files are not deleted after indexing.

OpenCrawling solves this with TempFileInputStream:

7. Incremental Synchronization & Deletion Tombstones

Crawling millions of documents repeatedly is unacceptable in production. OpenCrawling maintains state atomically in data/doxis-state/{customer}-{repository}.json:

{
  "lastCrawlTime": "2026-10-17T12:00:00.000Z",
  "documentStates": {
    "3f2a9c1e-5b7d-4e8a-9c0f-1a2b3c4d5e6f": {
      "version": "1",
      "modifiedDate": "2026-09-28T14:15:30.000Z",
      "hash": "a1b2c3d4..."
    }
  }
}
✅

Automated Deletion Tombstones: When a document is marked logically deleted in Doxis (logicalDeleted: true) or disappears from search listings, OpenCrawling automatically emits an OIS action: "DELETE" tombstone. Downstream vector stores immediately purge obsolete chunks and vector embeddings!

8. Sample OIS Document Payload

Here is an example of an ingested Doxis contract document mapped to canonical OIS JSON:

{
  "id": "doxis://ACME/DB1/documents/3f2a9c1e-5b7d-4e8a-9c0f-1a2b3c4d5e6f",
  "action": "UPSERT",
  "source": {
    "type": "doxis",
    "instance": "https://csb.enterprise.local/restws/publicws/rest/api/v1",
    "customer": "ACME",
    "repository": "DB1"
  },
  "content": {
    "mimeType": "application/pdf"
  },
  "metadata": {
    "name": "MSA_Vendor_Enterprise_2026.pdf",
    "title": "Master Services Agreement 2026",
    "mimeType": "application/pdf",
    "doxis.documentId": "3f2a9c1e-5b7d-4e8a-9c0f-1a2b3c4d5e6f",
    "doxis.customer": "ACME",
    "doxis.repository": "DB1",
    "doxis.documentClass": "ContractDocument",
    "doxis.version": "1",
    "doxis.isLatestVersion": "true",
    "doxis.parentFolderName": "Acme Corp Master File",
    "doxis_desc_ObjectName": "Master Services Agreement 2026",
    "doxis_desc_ObjectNumberExternal": "CTR-2026-0042",
    "doxis_desc_ObjectDate": "2026-03-15"
  },
  "security": {
    "inheritanceEnabled": true,
    "permissions": [
      { "identity": "ACME/Legal", "identityType": "group", "access": "read" },
      { "identity": "ACME/elena.weber", "identityType": "user", "access": "write" },
      { "identity": "ACME/restricted.user", "identityType": "user", "access": "deny" }
    ]
  }
}

9. Configuration & Deployment

Configure the Doxis connector via Spring Boot properties or environment variables:

Environment Variable Spring Property Default Description
DOXIS_URL spring.opencrawling.connector.doxis.url http://localhost:8080/restws/publicws/rest/api/v1 CSB REST API base URL
DOXIS_CUSTOMER_NAME spring.opencrawling.connector.doxis.customer-name — Required. CSB customer (tenant), e.g. ACME
DOXIS_AUTH_TYPE spring.opencrawling.connector.doxis.auth-type basic Auth mode: basic, ticket, or oauth2
DOXIS_USERNAME / DOXIS_PASSWORD spring.opencrawling.connector.doxis.username / password — Credentials for basic auth
DOXIS_REPOSITORY_ID spring.opencrawling.connector.doxis.repository-id — Required. DMS repository UUID or name (e.g. DB1)
DOXIS_CRAWL_MODE spring.opencrawling.connector.doxis.crawl-mode search Mode: search (CQL) or folder (e-files)
DOXIS_TENANT_ISOLATION spring.opencrawling.connector.doxis.tenant-isolation false Qualify SIDs with tenant (e.g. ACME/Legal)
DOXIS_INCREMENTAL spring.opencrawling.connector.doxis.incremental false Enable incremental crawl & tombstone sync
DOXIS_PARALLELISM spring.opencrawling.connector.doxis.parallelism 2 Concurrent document processing workers

Testing Connectivity with OpenCrawling CLI

# Check connector health and session auth
$ oc connector check --name Doxis_Repository --type repository

# Run automated integration test script
$ ./scripts/test-doxis-repository-connector.sh

Ready to Connect Doxis to Enterprise RAG?

Test the Doxis connector right in our live interactive simulator, explore the detailed configuration guide on our Wiki, or star the project on GitHub.