Context
The Document Store configuration has been migrated from legacy DOCUMENT_* environment variables to the Unified Configuration system under camunda.document.* Spring properties.
Source: camunda/camunda#53423 · camunda/camunda#53917 (merged)
What changed
Document Store was the last major subsystem outside Unified Configuration. It previously loaded configuration directly from DOCUMENT_* environment variables via EnvironmentConfigurationLoader, completely outside the camunda.* Spring property namespace.
It now uses a typed, provider-namespaced model under camunda.document.*.
New configuration model
camunda:
document:
default-store-id: aws1
thread-pool-size: 10
aws:
aws1:
bucket-name: docs
bucket-path: prod/
bucket-ttl: 30
aws2:
bucket-name: archive
gcp:
gcp1:
bucket-name: gcp-docs
prefix: temp/
azure:
az1:
container-name: docs
connection-string: "..." # or endpoint
local:
local1:
path: /var/camunda/documents
in-memory:
mem1: {}
The provider type is now implicit in the namespace — there is no longer a CLASS property.
Property mapping (legacy → unified)
Root-level
| Legacy env var |
New unified property |
DOCUMENT_DEFAULT_STORE_ID |
camunda.document.default-store-id |
DOCUMENT_THREAD_POOL_SIZE |
camunda.document.thread-pool-size |
AWS S3
| Legacy env var |
New unified property |
DOCUMENT_STORE_<id>_CLASS=...AwsDocumentStoreProvider |
implicit (namespace aws) |
DOCUMENT_STORE_<id>_BUCKET |
camunda.document.aws.<id>.bucket-name |
DOCUMENT_STORE_<id>_BUCKET_PATH |
camunda.document.aws.<id>.bucket-path |
DOCUMENT_STORE_<id>_BUCKET_TTL |
camunda.document.aws.<id>.bucket-ttl |
GCP
| Legacy env var |
New unified property |
DOCUMENT_STORE_<id>_CLASS=...GcpDocumentStoreProvider |
implicit (namespace gcp) |
DOCUMENT_STORE_<id>_BUCKET |
camunda.document.gcp.<id>.bucket-name |
DOCUMENT_STORE_<id>_PREFIX |
camunda.document.gcp.<id>.prefix |
Azure Blob
| Legacy env var |
New unified property |
DOCUMENT_STORE_<id>_CLASS=...AzureBlobDocumentStoreProvider |
implicit (namespace azure) |
DOCUMENT_STORE_<id>_CONTAINER |
camunda.document.azure.<id>.container-name |
DOCUMENT_STORE_<id>_CONTAINER_PATH |
camunda.document.azure.<id>.container-path |
DOCUMENT_STORE_<id>_CONNECTION_STRING |
camunda.document.azure.<id>.connection-string |
DOCUMENT_STORE_<id>_ENDPOINT |
camunda.document.azure.<id>.endpoint |
Local storage
| Legacy env var |
New unified property |
DOCUMENT_STORE_<id>_CLASS=...LocalStorageDocumentStoreProvider |
implicit (namespace local) |
DOCUMENT_STORE_<id>_PATH |
camunda.document.local.<id>.path |
In-memory
| Legacy env var |
New unified property |
DOCUMENT_STORE_<id>_CLASS=...InMemoryDocumentStoreProvider |
implicit (namespace in-memory) |
Backward compatibility
All DOCUMENT_* and DOCUMENT_STORE_* environment variables continue to work for at least one release cycle. A legacy bridge translates them to camunda.document.* before Spring binding. When both are present, unified camunda.document.* takes precedence.
Documentation tasks
Context
The Document Store configuration has been migrated from legacy
DOCUMENT_*environment variables to the Unified Configuration system undercamunda.document.*Spring properties.Source: camunda/camunda#53423 · camunda/camunda#53917 (merged)
What changed
Document Store was the last major subsystem outside Unified Configuration. It previously loaded configuration directly from
DOCUMENT_*environment variables viaEnvironmentConfigurationLoader, completely outside thecamunda.*Spring property namespace.It now uses a typed, provider-namespaced model under
camunda.document.*.New configuration model
The provider type is now implicit in the namespace — there is no longer a
CLASSproperty.Property mapping (legacy → unified)
Root-level
DOCUMENT_DEFAULT_STORE_IDcamunda.document.default-store-idDOCUMENT_THREAD_POOL_SIZEcamunda.document.thread-pool-sizeAWS S3
DOCUMENT_STORE_<id>_CLASS=...AwsDocumentStoreProvideraws)DOCUMENT_STORE_<id>_BUCKETcamunda.document.aws.<id>.bucket-nameDOCUMENT_STORE_<id>_BUCKET_PATHcamunda.document.aws.<id>.bucket-pathDOCUMENT_STORE_<id>_BUCKET_TTLcamunda.document.aws.<id>.bucket-ttlGCP
DOCUMENT_STORE_<id>_CLASS=...GcpDocumentStoreProvidergcp)DOCUMENT_STORE_<id>_BUCKETcamunda.document.gcp.<id>.bucket-nameDOCUMENT_STORE_<id>_PREFIXcamunda.document.gcp.<id>.prefixAzure Blob
DOCUMENT_STORE_<id>_CLASS=...AzureBlobDocumentStoreProviderazure)DOCUMENT_STORE_<id>_CONTAINERcamunda.document.azure.<id>.container-nameDOCUMENT_STORE_<id>_CONTAINER_PATHcamunda.document.azure.<id>.container-pathDOCUMENT_STORE_<id>_CONNECTION_STRINGcamunda.document.azure.<id>.connection-stringDOCUMENT_STORE_<id>_ENDPOINTcamunda.document.azure.<id>.endpointLocal storage
DOCUMENT_STORE_<id>_CLASS=...LocalStorageDocumentStoreProviderlocal)DOCUMENT_STORE_<id>_PATHcamunda.document.local.<id>.pathIn-memory
DOCUMENT_STORE_<id>_CLASS=...InMemoryDocumentStoreProviderin-memory)Backward compatibility
All
DOCUMENT_*andDOCUMENT_STORE_*environment variables continue to work for at least one release cycle. A legacy bridge translates them tocamunda.document.*before Spring binding. When both are present, unifiedcamunda.document.*takes precedence.Documentation tasks
camunda.document.*property modelDOCUMENT_*/DOCUMENT_STORE_*environment variables with the unified property equivalentsdefault-store-id— all fail at startup with a clear errorAWS_ACCESS_KEY_ID,GOOGLE_APPLICATION_CREDENTIALS, Azure SDK chain, etc.) are out of scope — they continue to be resolved by the cloud SDKs directly and are unchanged