Idempotent publish to target platform via adapter
Writes the intent into the destination through its adapter and returns a receipt carrying the destination’s own record id, the deterministic idempotency key and the exact payload written. A retry with the same intent version returns the original receipt with replayed: true and creates nothing. Send dry_run: true to get the payload composerID would write, as a 200 PublishPreview, with nothing written and nothing recorded.
Authorizations
Client credentials, the production model: server-to-server, short-lived tokens, least-privilege scopes, rotation by issuing a new client secret.
Body
Minted at the decision and carried unchanged into every destination record. Fits a 64-character client-supplied id field, which is how the same id finds the record in either direction.
^[A-Za-z0-9_-]{10,64}$"itn_7f3aK2mQ9xLp"
Supply when the destination record already exists: composerID stamps the Intent ID onto it instead of creating a duplicate. Required for link-mode destinations.
Render the payload composerID would write and return it as a PublishPreview (200) without writing anything: no destination call, no receipt, no timeline event. Preflight still runs, so a 422 comes back exactly as it would for a real publish.
Response
Dry run: the payload composerID would write, and nothing written
The answer to a dry run: exactly what a real publish would write to the destination, and nothing written.
Minted at the decision and carried unchanged into every destination record. Fits a 64-character client-supplied id field, which is how the same id finds the record in either direction.
^[A-Za-z0-9_-]{10,64}$"itn_7f3aK2mQ9xLp"
x >= 1The destination object a real publish would create, stamp or link.
create: a new record is written from the mapping profile. stamp: the Intent ID is written onto the existing record named by external_id. link: the destination is link-mode, so nothing is written and the linkage is recorded on composerID's side.
create, stamp, link Dotted path of the field on the destination object that carries the Intent ID.
The key the real publish would use.
The body composerID would send, in the destination's own field names. Empty for a link-mode destination.
The MappingProfile that rendered the payload (create mode only).
Stamp mode only: the existing record.
Where the record would be reachable in the destination's own UI, with {external_id} unresolved.