Document Authoring Admin is the API used to store and retrieve files and details from the Document Authoring content repository.
You can read the official API docs here: https://docs.da.live
- Node 20+
git clone git@github.com:adobe/da-adminIn a terminal, run npm install this repo's folder.
Use npx wrangler login. Walk through the steps in browser.
KV is used for high-performance R/W operations. This value is stored locally.
npx wrangler kv:key put orgs '[{"name":"aemsites","created":"2023-10-31T17:43:13.390Z"}]' --binding=DA_AUTH --localAt the root of the project folder, run npm run dev.
Browse to http://localhost:8787/list to ensure you see the expected buckets.
- You can make your own buckets tied to your own Cloudflare account or you can request a
.dev.varsfile. - Cloudflare KV, which is used for org properties and session login info is locally stored when developing locally. You will need to make your own local KVs to test against.
Sites listed in the HLX6_MIGRATION_SITES env variable (see wrangler.toml) are being migrated to Helix 6. Every successful modification on those sites (source create/update/delete, folder creation, copy, move, version creation) is also propagated, in the background, to the Helix 6 source bus at AEM_API (https://api.aem.live) using the caller's IMS token. Failures are logged but do not affect the DA response.
Entries are either:
org/site: the same org/site on Helix 6org/site -> org2/site2: a different Helix 6 org/site (e.g. for testing)
[hlx6:event] console entries contain JSON with component: "hlx6-migration"
and schemaVersion: 1. Each observed mutation of a configured migration site
has a unique operationId, DA status/path/revision (when available), source and
destination mappings, incoming request/ray ID, environment, and deployment version.
Credentials and uploaded document bytes are not logged.
Raw-body uploads record their byte length and SHA-256 digest, so distinct payloads
can be identified without storing document contents in logs.
operation_observedmust be followed byoperation_skipped(with a reason) oroperation_startedandoperation_completed(succeededorfailed).- Outbound steps have distinct
requestIdvalues, also sent asx-request-id.request_startedis followed byrequest_completedorrequest_failed. Responses include status, timing, error/location headers, receiver IDs, and an 8192-character body preview with an explicit truncation flag. Existing debug logs retain the full response body. - HTTP and network errors fail the operation, not the DA response. A body-read error is recorded separately; a 2xx response still means the remote mutation succeeded, even if its response body could not be read.
- Missing terminal events indicate interrupted work or missing logs, not success.
A partial DA response (
daPartial) and continuation skips must be reviewed; whole-folder propagation does not prove per-file parity. Cross-site folder operations and dedicated media uploads are explicitly reported as unsupported.
For a two-week review, count observed operations by deployment, operation, and mapped site; reconcile every operation and request with its terminal event; inspect failures, skips, partials, and body-read errors. A successful HTTP response proves API acceptance, not byte-for-byte parity or correct write ordering. These events do not provide replay, retries, or an authoritative per-file audit of folder changes.
Before enabling migration, the DA log pipeline must be verified to ingest these worker console entries without sampling, retain them for at least 14 days (plus analysis time), and preserve the structured event fields. Retention and ingestion are managed outside this repository; this configuration does not establish them.