Makoto
Menu
Schema reference

transform.schema.json

The transformation predicate. Operation metadata, exact predecessors, input artifacts, and output subjects.

Title
Makoto v0.2 Transformation Predicate
Identifier
https://usemakoto.dev/schema/v0.2/transform.schema.json
Digest
sha256:8b8dad3361327578c79a5b69912fe77e747d4ac6d1c6b234327f1a56621b1a23
Raw
/schema/v0.2/transform.schema.json
Carried in
The predicate of a statement whose predicateType is https://usemakoto.dev/predicate/v0.2/transform.
Responsibility
Operation, input artifacts, predecessor bindings, optional dataset entry membership, profiles, and extensions.

All schemas§11.2§11.4FieldsRaw JSON

A real instance. Read from demos/end-to-end/artifacts/positive-bundle/attestations/1f28b72bcd4c1e9b7df71403ac6bb1670c2f2b09628ca6d76a2fa384db9a0848.dsse.json → predicate, which validates against this schema.
{
  "event": {
    "id": "urn:uuid:22222222-2222-4222-8222-222222222222",
    "occurredAt": "2026-09-16T16:00:00Z"
  },
  "inputs": [
    {
      "digest": {
        "sha256": "4e90181e7f75ccdf0e4d81c83d281f53806bed241787cdc751e22b2d4cd19919"
      },
      "name": "raw",
      "provenance": {
        "statementDigest": {
          "sha256": "56b7be4394fe09c62ec7a3d5763cecc251e9696f267f35b2acc717b0d170a27a"
        },
        "subjectName": "customers.raw.json"
      }
    }
  ],
  "operation": {
    "name": "Normalize customer records",
    "type": "urn:makoto:demo:operation:normalize"
  },
  "profiles": [],
  "schemaVersion": "0.2"
}

Referenced by

Fields

Top leveldigesttimestampeventtooloperationprovenanceinputextensions

Top level#

Shape object
  • closed object
FieldTypeConstraints, rules, and a real value
schemaVersion
required
string constant
  • = "0.2"
Makoto predicate version.
"0.2"
event
required
event
{"id": "urn:uuid:22222222-2222-4222-8222-222222222222", "occurredAt": "2026-09-16T16:00:00Z"}
operation
required
operation
{"name": "Normalize customer records", "type": "urn:makoto:demo:operation:normalize"}
inputs
required
array of input
  • min items 1
One or more consumed artifacts and their provenance bindings.
[{"digest": {"sha256": "4e90181e7f75ccdf0e4d81c83d281f53806bed241787cdc751e22b2d4cd19919"}, "na…
profiles
optional
array of profile-reference.schema.json
Additional schemas to apply.
[]
extensions
optional
extensions
URI-namespaced extension values.
{"urn:makoto:demo:privacy-reviewed": true}

digest#

Shape object
  • closed object

Appears at inputs[].digest, inputs[].provenance.statementDigest, operation.parametersDigest, operation.tool.digest

FieldTypeConstraints, rules, and a real value
sha256
required
string
  • min length 64
  • max length 64
"4e90181e7f75ccdf0e4d81c83d281f53806bed241787cdc751e22b2d4cd19919"

timestamp#

Shape string
  • min length 20
  • max length 30

Appears at event.occurredAt

event#

Shape object
  • closed object

Appears at event

FieldTypeConstraints, rules, and a real value
id
required
string
  • min length 1
  • max length 4096
Producer-selected event identifier; uniqueness is enforced across the verified graph.
"urn:uuid:22222222-2222-4222-8222-222222222222"
occurredAt
required
timestamp
Signer-asserted event time; not a trusted timestamp unless policy adds that guarantee.
"2026-09-16T16:00:00Z"

tool#

Shape object
  • closed object

Appears at operation.tool

FieldTypeConstraints, rules, and a real value
name
optional
string
  • max length 4096
Tool or service name.
version
optional
string
  • max length 4096
Tool version.
uri
optional
string
  • min length 1
  • max length 4096
Tool or recipe locator.
digest
optional
digest
Digest of executable, script, image, or recipe when available.

operation#

Shape object
  • closed object

Appears at operation

FieldTypeConstraints, rules, and a real value
type
required
string
  • min length 1
  • max length 4096
Stable transformation category.
"urn:makoto:demo:operation:normalize"
name
optional
string
  • max length 4096
Human-readable operation description.
"Normalize customer records"
tool
optional
tool
parametersDigest
optional
digest
Digest of exact parameter/configuration bytes when available.

provenance#

Shape object
  • closed object

Appears at inputs[].provenance

FieldTypeConstraints, rules, and a real value
statementDigest
required
digest
Payload digest of the predecessor statement.
{"sha256": "56b7be4394fe09c62ec7a3d5763cecc251e9696f267f35b2acc717b0d170a27a"}
subjectName
required
string
  • min length 1
  • max length 4096
Subject in that predecessor that supplied this input.
"customers.raw.json"
entryName
optional
string
  • min length 1
  • max length 1024
Relative entry name when the input is one member of a predecessor dataset-manifest subject.

input#

Shape object
  • closed object

Appears at inputs[]

FieldTypeConstraints, rules, and a real value
name
required
string
  • min length 1
  • max length 4096
Input artifact label.
"raw"
digest
required
digest
Exact input artifact digest.
{"sha256": "4e90181e7f75ccdf0e4d81c83d281f53806bed241787cdc751e22b2d4cd19919"}
provenance
required
provenance
{"statementDigest": {"sha256": "56b7be4394fe09c62ec7a3d5763cecc251e9696f267f35b2acc717b0d170a27…

extensions#

Shape object

Appears at extensions

Real documents that validate

  • demos/end-to-end/artifacts/positive-bundle/attestations/1f28b72bcd4c1e9b7df71403ac6bb1670c2f2b09628ca6d76a2fa384db9a0848.dsse.json → predicate
  • demos/end-to-end/artifacts/positive-bundle/attestations/99aee76db46a720405da6d0015d427c791b0d4e02367b9e2bc36ce82ae812bce.dsse.json → predicate

Raw JSON

The published document (2,889 bytes)
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://usemakoto.dev/schema/v0.2/transform.schema.json",
  "title": "Makoto v0.2 Transformation Predicate",
  "type": "object",
  "required": ["schemaVersion", "event", "operation", "inputs"],
  "properties": {
    "schemaVersion": { "const": "0.2" },
    "event": { "$ref": "#/$defs/event" },
    "operation": { "$ref": "#/$defs/operation" },
    "inputs": {
      "type": "array",
      "minItems": 1,
      "items": { "$ref": "#/$defs/input" }
    },
    "profiles": {
      "type": "array",
      "items": { "$ref": "https://usemakoto.dev/schema/v0.2/profile-reference.schema.json" }
    },
    "extensions": { "$ref": "#/$defs/extensions" }
  },
  "$defs": {
    "digest": {
      "type": "object",
      "required": ["sha256"],
      "properties": { "sha256": { "type": "string", "minLength": 64, "maxLength": 64 } },
      "additionalProperties": false
    },
    "timestamp": {
      "type": "string",
      "minLength": 20,
      "maxLength": 30
    },
    "event": {
      "type": "object",
      "required": ["id", "occurredAt"],
      "properties": {
        "id": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "occurredAt": { "$ref": "#/$defs/timestamp" }
      },
      "additionalProperties": false
    },
    "tool": {
      "type": "object",
      "properties": {
        "name": { "type": "string", "maxLength": 4096 },
        "version": { "type": "string", "maxLength": 4096 },
        "uri": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "digest": { "$ref": "#/$defs/digest" }
      },
      "additionalProperties": false
    },
    "operation": {
      "type": "object",
      "required": ["type"],
      "properties": {
        "type": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "name": { "type": "string", "maxLength": 4096 },
        "tool": { "$ref": "#/$defs/tool" },
        "parametersDigest": { "$ref": "#/$defs/digest" }
      },
      "additionalProperties": false
    },
    "provenance": {
      "type": "object",
      "required": ["statementDigest", "subjectName"],
      "properties": {
        "statementDigest": { "$ref": "#/$defs/digest" },
        "subjectName": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "entryName": { "type": "string", "minLength": 1, "maxLength": 1024 }
      },
      "additionalProperties": false
    },
    "input": {
      "type": "object",
      "required": ["name", "digest", "provenance"],
      "properties": {
        "name": { "type": "string", "minLength": 1, "maxLength": 4096 },
        "digest": { "$ref": "#/$defs/digest" },
        "provenance": { "$ref": "#/$defs/provenance" }
      },
      "additionalProperties": false
    },
    "extensions": {
      "type": "object",
      "additionalProperties": true
    }
  },
  "additionalProperties": false
}

The published bytes, unmodified.