Skip to content

Storage backends

CM Box stores file content (images, documents, video, renditions) in an external object store, while all metadata lives in Redis. The storage client uses a strategy pattern: one generic interface with three interchangeable backend implementations, selected by a single type value in the storage configuration.

type Backend
oci Oracle Cloud Infrastructure (OCI) Object Storage
azure Azure Blob Storage
wcc Oracle WebCenter Content

You normally enter storage settings once, in the Storage Configuration section of the instance setup form. CM Box saves them as a JSON document in the primary Redis database (key fb:middleware:storage_config) and the storage client loads them from there at startup. The document has this shape:

{
"storage": {
"type": "oci",
"oci": { "...": "OCI settings" },
"azure": { "...": "Azure settings" },
"wcc": { "...": "WCC settings" }
}
}

Only the section matching storage.type is used. The same structure is used by the storage_config.json file variants that ship with the source tree for local development.

Field Description
configurationFilePath Path where the OCI SDK config file is written inside the container. Always ./.ociconfig — the setup form sets this for you.
configProfile Profile name to use within the OCI config file. Typically DEFAULT.
namespace Your OCI Object Storage namespace.
compartmentId OCID of the compartment where CM Box creates its buckets.
keyFileName Filename of the uploaded private key. Set automatically from the key file you upload.

OCI authentication uses two files you upload during instance setup — the OCI Connection Config File and the OCI Private Key File for a service user with access to Object Storage. CM Box stores both in Redis and writes them out inside the container at startup, so they survive container replacement. All five fields (including keyFileName) must be present for the OCI client to initialize.

Buckets created in OCI are named FBCMS_<repository id>_<CACHE_ROOT> and are created with versioning enabled.

Field Description
AZURE_STORAGE_CONNECTION_STRING The full connection string for the storage account (the DefaultEndpointsProtocol=...;AccountName=...;AccountKey=... form). Required — initialization fails without it.

Containers created in Azure are named fbcms-<repository id>-<cache root> (lowercased; underscores in the CACHE_ROOT become hyphens, per Azure container naming rules).

Field Description
wccUrl Base URL of the WebCenter Content instance, including the /_dav/cs path (for example https://wcc.example.com/_dav/cs).
username Service account username used for check-ins and file retrieval.
password Service account password. Sent as HTTP Basic authentication.

With the WCC backend, files are checked in as WebCenter Content documents (IdcService calls) rather than bucket objects; the service account is recorded as the document author.

Storage is provisioned per repository: when you create a repository, CM Box creates a dedicated bucket (or container) for it in the active backend and records the name in the repository config (storage.bucketName). Deleting a repository deletes its bucket — repository deletion is blocked if the bucket cannot be removed. See Repositories.

Re-open the setup form at /instance_setup?bypassSetupCheck=1 to view or change the storage configuration; the form is pre-filled with current values. The storage client re-initializes after the configuration is saved. Note that existing content is not migrated between backends — plan the backend choice before loading content.