Upserts and retries

Renza supports upserts through external_id. This is the recommended way for a script or authoring tool to keep one deck current across repeated publishes.

Upsert by external_id

An external_id is a client-chosen identifier that is unique within a workspace. On import:

external_idResultStatus
provided and already used in the workspaceadd a version to the existing deck200
provided and newcreate a deck201
omittedcreate a new deck with a server-assigned value201
renza publish deck.html --external-id q3-board-deck   # creates the deck
renza publish deck.html --external-id q3-board-deck   # adds a version to the same deck

The CLI writes the chosen identifier into the deck contract so a pull-edit-publish workflow can continue updating the same deck. You can also use an external_id with supported lookups, such as renza decks get q3-board-deck.

Retrying other writes

The public API does not currently implement general Idempotency-Key replay. Before retrying a write after an unknown network outcome, retrieve or list the resource when possible. For imports, use a stable external_id; that makes a repeated request update the intended deck instead of creating another one.

Partial updates and metadata

  • PATCH changes only the fields you send. Omit a field to leave it unchanged.
  • Arrays replace fully. Send [] to clear an array, a complete array to replace it, or omit it to keep the current value.
  • metadata merges. Include a key to set it, send null to delete that key, or omit it to leave the key unchanged.