Docs

Docs

x-cpod-domain: storage

Storage

Object and record storage primitives — files and small JSON docs.

StorageObject

A blob stored in object storage (MinIO/S3).

REST path/api/v1/storage/objects
Operations
listgetuploaddelete
SDK
// list — returns only your records; add filters/search:
await client.storage.objects.list()
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
user_idstringSet only for tier=user — the user who owns this object.
tierstringIsolation sandbox: private (app-scoped), user (user-scoped cross-app), shared (tenant-wide).
pathstringRelative path as supplied by the SDK consumer (e.g. config/settings.json).
minio_keystringActual MinIO object key — resolved by cpod-backend, never trusted from client.
sizenumberObject size in bytes.
content_typestringMIME content type (e.g. application/json, image/png).
checksumstringSHA-256 hex digest of the object bytes.

StorageRecord

A small JSON record keyed by app + namespace.

REST path/api/v1/storage/records
Operations
listgetputdelete
SDK
// list — returns only your records; add filters/search:
await client.storage.records.list()
FieldTypeDescription
id*uuidServer-assigned ULID with type prefix (e.g. per_…).
tenant_id*stringTenant scope — auto-stamped from the caller's JWT.
app_idstringApp scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present.
created_at*date-timeServer stamp.
updated_at*date-timeServer stamp; updated on every patch.
created_byuuidPerson id from the caller's JWT (sub).
updated_byuuidPerson id from the last writer's JWT (sub).
sourcestringProvenance tag — defaults to 'edm'.
source_typeenumWhere the write originated. Defaults to 'api'.frontendbackendserversystemapi
is_deletedbooleanSoft-delete flag. Excluded from default list queries.
deleted_atdate-timeStamped when soft-deleted; null otherwise.
deleted_byuuidPerson id who soft-deleted; null otherwise.
schema_versionnumberDocument schema version. Bumped on incompatible writes.
user_idstringSet only for tier=user — the user who owns this record.
tierstringIsolation sandbox: private (app-scoped), user (user-scoped cross-app), shared (tenant-wide).
collectionstringCollection name as supplied by the SDK consumer. cpod-backend namespaces it by tenantId + appId.
keystringDocument key within the collection.
valuejsonArbitrary JSON document stored as the record's payload.
ttlnumberTTL in seconds. A MongoDB TTL index removes the document when the TTL elapses. Null means no expiry.
versionnumberOptimistic concurrency counter — incremented on every update.