Open Document Management Architecture

One API.
Every ECM system.

Write content-centric applications once — run on any ECM system.

Java FileNet P8

JDBC for Enterprise Content Management

OpenDMA (Open Document Management Architecture) defines a vendor-neutral, strongly typed API for Document Management and ECM systems — the same idea as JDBC for databases or JPA for object persistence.

🔌

Adaptor-based architecture

OpenDMA Adaptors connect the standard API to specific ECM systems — Alfresco, Documentum, FileNet P8, IBM CMOD, Nuxeo, OnBase, OpenText, SharePoint, and more. Switching systems requires only a configuration change.

🌐

Multi-language API

A consistent API is available for Java, Python, and C# /.NET today. The API Builder can generate additional languages including Go, Rust, TypeScript, PHP, and Swift from the same specification.

🔗

REST bridge

The OpenDMA REST server exposes any adaptor as a RESTful service. A Python client on one machine can transparently access a Documentum repository served by a Java REST server on another.

📐

Layered specification

The formal specification is organised in layers — each layer building on the one below. Implementors can choose the layers they need, from a minimal read-only adaptor to a fully featured ECM backend.

🏷️

Strongly typed data model

OpenDMA uses a reflective, object-oriented data model with a formal class hierarchy, qualified names, and well-defined scalar and reference data types including content streams.

⚖️

Open licensed

The specification is published under the OWF Agreement 1.0 (Patent and Copyright Grants). Language APIs are Apache 2.0 licensed. Both are free to implement and use in any project.

A formal, layered standard v0.8

The OpenDMA specification defines the abstract model, API contracts, and REST service interface in a single normative document.

Specification layers

  • Simple object model Qualified names, scalar & reference data types, objects, and basic read/write operations.
  • Typed object model Class hierarchy, typed properties, reflection, aspects, and inheritance.
  • Repository model Folders, documents, content streams, version series, and relationships.
  • Search Query API with conditions, operators, ordering, and pagination.
  • REST API OpenAPI-specified RESTful service bridging languages and network boundaries.

Access the specification

The normative specification document and OpenAPI YAML are published on GitHub and versioned with semantic tags.

📄 Licensed under the OWF Agreement 1.0 (Patent and Copyright Grants)

Languages & Adaptors

Language APIs are auto-generated from a single source by the OpenDMA API Builder, ensuring a consistent style and feature set across all languages.

Language APIs

Java 🐍 Python C# / .NET TypeScript 🐹 Go 🦀 Rust 🐘 PHP 🍎 Swift

Greyed tiles can be generated on request via the API Builder.

ECM Adaptors

FileNet P8 IBM CMOD Documentum Alfresco Nuxeo OnBase OpenText SharePoint …and others

Adaptors implement the OpenDMA API for a specific ECM system, like database drivers in JDBC. The XML Repository serves as a dependency-free reference implementation for development and testing.