Skip to content

Commit ba6bd28

Browse files
Document configured object external payload storage
1 parent 4568aa5 commit ba6bd28

1 file changed

Lines changed: 20 additions & 8 deletions

File tree

README.md

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -507,14 +507,19 @@ workflow-task command payload.
507507
- `PUT /api/namespaces/{name}` — Update namespace
508508
- `PUT /api/namespaces/{name}/external-storage` — Configure external payload storage policy
509509

510-
When a namespace enables the `local` external payload storage driver, the
511-
server resolves `{codec, external_storage}` payload envelopes on workflow
512-
start, signal, query, update, bridge-adapter, and activity result/failure
513-
ingress. S3, GCS, and Azure policies can be stored for control-plane parity,
514-
but server-side dereference remains fail-closed until those runtime drivers
515-
ship. History retention deletes referenced local external payload blobs before
516-
pruning an expired run, and leaves runs in place when a retained reference uses
517-
a provider this server cannot delete yet.
510+
When a namespace enables external payload storage, the server resolves
511+
`{codec, external_storage}` payload envelopes on workflow start, signal, query,
512+
update, bridge-adapter, and activity result/failure ingress. The `local` driver
513+
stores blobs below the configured `file://` URI or the namespace-scoped server
514+
storage path. S3, GCS, and Azure policies are available when the policy includes
515+
`config.disk` naming a configured Laravel filesystem disk plus `config.bucket`;
516+
the server emits provider URIs such as `s3://bucket/prefix/...` while using that
517+
disk for put/get/delete operations. Object-storage policies without a configured
518+
disk remain fail-closed so references are not silently accepted by a runtime
519+
that cannot dereference or delete them. History retention deletes referenced
520+
local and configured object-storage payload blobs before pruning an expired run,
521+
and leaves runs in place when a retained reference uses a provider this server
522+
cannot delete yet.
518523

519524
### Workflows
520525
- `GET /api/workflows` — List workflows (with filters)
@@ -545,6 +550,13 @@ is needed.
545550
### External Payload Storage
546551
- `POST /api/storage/test` — Round-trip diagnostic for the selected namespace storage policy
547552

553+
The storage diagnostic writes, reads, verifies, and deletes small and large test
554+
payloads through the namespace's configured policy. It supports `local` and
555+
configured-disk `s3`, `gcs`, and `azure` policies; it returns
556+
`storage_driver_unavailable` when the namespace only stores provider metadata
557+
and the current server runtime has no filesystem disk configured for that
558+
provider.
559+
548560
Every non-health, non-discovery control-plane endpoint must send
549561
`X-Durable-Workflow-Control-Plane-Version: 2` on the request. That
550562
covers namespace, schedule, search-attribute, task-queue, worker-management,

0 commit comments

Comments
 (0)