Tearleads

ContainerMutationRequest

A signed container mutation (create, share, or the container part of a larger write): the event, the manifest it derives, and the KEK material, citing stored heads instead of resending them.

Shape

object

16 fields
  • bodyany JSON valuerequired

    Event-type-specific body the signature commits to.

  • containerManifestHistoryRefslist of ContainerManifestRefoptional
    • at most 4,096 items

    Earlier manifests of this container the verifier needs, cited by hash.

  • destinationParentContainerPathRefslist of ContainerManifestRefoptional
    • at most 100 items

    Current path to the new parent, for a move.

  • eventobject with any fieldsrequired
  • expectedManifestHashstringrequired
    • not empty

    Hash of the manifest this mutation derives; the API derives it independently and must agree.

  • keyEpochobject with any fieldsrequired

    The container KEK epoch this mutation leaves current.

  • keyringContainerKekKeyringWireRecordrequirednullable

    For a KEK rotation, every predecessor KEK sealed under the new KEK; null otherwise.

  • manifestobject with any fieldsrequired
  • parentContainerPathRefslist of ContainerManifestRefoptional
    • at most 100 items

    Current path to the parent container.

  • parentKekRefobjectoptionalnullable

    The parent's current KEK epoch, for a child container; any other epoch is refused as stale.

    3 fields
    • containerIdstringrequired
      • not empty
    • containerKeyEpochIdstringrequired
      • not empty
    • keyEpochHashstringrequired
      • exactly 64 characters
      • lowercase hexadecimal

    Other fields are allowed.

  • predecessorBridgeobject with any fieldsrequirednullable

    For a KEK rotation, the retiring KEK encrypted under the new one; null otherwise.

  • previousContainerPathRefslist of ContainerManifestRefoptional
    • at most 100 items

    Current path to the mutated container, from its root.

  • previousManifestRefContainerManifestRefoptionalnullable

    The container's current manifest head; absent for a create.

  • principalPolicyRefsPrincipalPolicyRefListrequired

    Heads of the principal policies the mutation was planned against.

  • userRecipientKeyslist of object with any fieldsoptional

    Public keys of users the container KEK is wrapped to directly.

  • wrapslist of object with any fieldsrequired

    The container KEK wrapped to each derived recipient target.

Other fields are allowed.

Used by

Schemas