Skip to content

Worker Version 0.2.0

Worker Versionの過去の定義です。現在の定義は下のバージョン一覧から確認できます。

過去のバージョン

この過去のバージョンは、現在の署名セットに含まれません。 公開パッケージの内容を取得して検証済みです。

Hostの対応や受け入れ判断は、パッケージの公開とは別です。このバージョンを使う前に、利用先のHostで確認してください。

他のバージョン: WorkerVersion 0.3.0

定義の説明(英語原文)

Immutable executable snapshot of one Module Worker: a bundle, the handlers its module exports, non-secret vars, and the typed capability bindings the code may use. A change is a new Worker Version; traffic moves only through Worker Deployments. The runtime this code runs on is not a field of this Form: it is fixed by the worker.runtime@1.1.0 contract the Module Worker identity provides, so a version carries no compatibility date and no compatibility flag (decision 0019).

設定項目

項目名とスキーマ内の説明は、パッケージに含まれる英語の原文です。日本語の解説は定義に要件を追加するものではありません。

actorBindings

任意 · array

Typed module-worker.actor bindings projecting addressing and invocation — idFromName, newUniqueId, get. Omitting it declares no such binding.

  • default: []
  • maxItems: 64
  • uniqueItems: true

assets

任意 · object

Optional static-asset attachment for this immutable version. Without it the host performs no asset lookup. When present, every member is required and the request order is closed: with runWorkerFirst=false the host tries the asset lookup before invoking fetch; with true it invokes fetch first and tries the asset lookup only when that invocation returns 404. An asset result wins; if both stages miss, the worker's 404 is preserved. The attachment never grants a hidden runtime binding and never mutates the referenced bundle.

  • additionalProperties: false

bundle

必須 · object

Worker Bundle carrying the exact module bytes this version executes.

  • additionalProperties: false

externalServices

任意 · array

External standard services this version speaks, each a sealed slot naming only a runtime binding NAME and an opaque namespaced protocol. The host resolves the integration out-of-band and supplies one sealed runtime-native binding under NAME; neither its entries nor the credential is portable state. A required slot the host cannot satisfy keeps the version from becoming Ready. Omitting it declares no external service.

  • default: []
  • maxItems: 16
  • uniqueItems: true

handlers

必須 · array

Module event handlers this version exports, from the closed vocabulary the worker.runtime@1.1.0 contract defines. A host rejects a handler that contract does not define, and rejects an attachment whose event kind is not declared here.

  • minItems: 1
  • uniqueItems: true

kvBindings

任意 · array

Typed module-worker.edge-kv bindings projecting the edge.kv API under JavaScript identifier names. Omitting it declares no such binding.

  • default: []
  • maxItems: 64
  • uniqueItems: true

queueProducerBindings

任意 · array

Typed module-worker.queue-producer bindings projecting only send and sendBatch. Omitting it declares no such binding.

  • default: []
  • maxItems: 64
  • uniqueItems: true

requiredSensitiveVars

任意 · array

Names of sensitive values this version requires the host to supply out-of-band. Only the names are portable state; values travel through each host's own sealed path. Omitting it requires no sensitive value.

  • default: []
  • uniqueItems: true

serviceBindings

任意 · array

Typed module-worker.service bindings projecting worker.service fetch toward another Module Worker. Omitting it declares no such binding.

  • default: []
  • maxItems: 64
  • uniqueItems: true

sqliteBindings

任意 · array

Typed module-worker.sqlite bindings projecting the edge.sql API. Omitting it declares no such binding.

  • default: []
  • maxItems: 64
  • uniqueItems: true

vars

任意 · object

Non-secret configuration values projected into the module environment. Sensitive material never enters portable state. Omitting it projects no variable.

  • additionalProperties: {"$ref":"#/$defs/jsonValueDepth1"}
  • default: {}

worker

必須 · object

Module Worker identity this version belongs to.

  • additionalProperties: false

workflowBindings

任意 · array

Typed module-worker.workflow bindings projecting the instance surface — create, get, status, sendEvent, terminate. Omitting it declares no such binding.

  • default: []
  • maxItems: 64
  • uniqueItems: true

設定の例

パッケージに含まれるfixtures/desired.jsonをそのまま掲載しています。完全なHost APIリクエストやOpenTofuの設定ではありません。例のリソース参照とArtifactのダイジェストは、実際の値に置き換えてください。このJSONだけでリソースが作成されることはありません。

json
{
  "actorBindings": [
    {
      "name": "ROOMS",
      "resource": {
        "apiVersion": "edge.forms.takoform.com",
        "kind": "ActorNamespace",
        "name": "actor-namespace"
      }
    }
  ],
  "assets": {
    "bundle": {
      "apiVersion": "edge.forms.takoform.com",
      "kind": "StaticAssetBundle",
      "name": "static-asset-bundle"
    },
    "notFoundHandling": "single_page_application",
    "runWorkerFirst": true
  },
  "bundle": {
    "apiVersion": "edge.forms.takoform.com",
    "kind": "WorkerBundle",
    "name": "worker-bundle"
  },
  "externalServices": [
    {
      "name": "PRIMARY_DB",
      "service": {
        "apiVersion": "standards.takoform.com/v1",
        "protocol": "org.postgresql.wire"
      }
    },
    {
      "name": "MEDIA",
      "service": {
        "apiVersion": "standards.takoform.com/v1",
        "protocol": "com.amazonaws.s3"
      }
    }
  ],
  "handlers": [
    "fetch"
  ],
  "kvBindings": [
    {
      "name": "CACHE",
      "resource": {
        "apiVersion": "edge.forms.takoform.com",
        "kind": "EdgeKVNamespace",
        "name": "edge-kv-namespace"
      }
    }
  ],
  "queueProducerBindings": [
    {
      "name": "EVENTS",
      "resource": {
        "apiVersion": "edge.forms.takoform.com",
        "kind": "AtLeastOnceQueue",
        "name": "at-least-once-queue"
      }
    }
  ],
  "requiredSensitiveVars": [
    "API_SIGNING_TOKEN_NAME"
  ],
  "serviceBindings": [
    {
      "name": "AUTH",
      "resource": {
        "apiVersion": "edge.forms.takoform.com",
        "kind": "ModuleWorker",
        "name": "auth-worker"
      }
    }
  ],
  "sqliteBindings": [
    {
      "name": "DB",
      "resource": {
        "apiVersion": "edge.forms.takoform.com",
        "kind": "SQLiteDatabase",
        "name": "sqlite-database"
      }
    }
  ],
  "vars": {
    "LOG_LEVEL": "info"
  },
  "worker": {
    "apiVersion": "edge.forms.takoform.com",
    "kind": "ModuleWorker",
    "name": "module-worker"
  },
  "workflowBindings": [
    {
      "name": "ORDERS",
      "resource": {
        "apiVersion": "edge.forms.takoform.com",
        "kind": "DurableWorkflow",
        "name": "durable-workflow"
      }
    }
  ]
}

例の原文を見る

設定のスキーマ全文(英語原文)

入れ子の項目、選択肢、すべてのスキーマ制約を以下に掲載しています。Hostが検証する意味上の規則は、定義の説明にも記載されています。

json
{
  "$defs": {
    "jsonValueDepth1": {
      "additionalProperties": {
        "$ref": "#/$defs/jsonValueDepth2"
      },
      "items": {
        "$ref": "#/$defs/jsonValueDepth2"
      },
      "maxItems": 64,
      "maxLength": 8192,
      "maxProperties": 64,
      "propertyNames": {
        "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
        "type": "string",
        "x-takoform-fieldPolicy": "portable-data-only-v1"
      },
      "type": [
        "array",
        "boolean",
        "null",
        "number",
        "object",
        "string"
      ]
    },
    "jsonValueDepth2": {
      "additionalProperties": {
        "$ref": "#/$defs/jsonValueDepth3"
      },
      "items": {
        "$ref": "#/$defs/jsonValueDepth3"
      },
      "maxItems": 64,
      "maxLength": 8192,
      "maxProperties": 64,
      "propertyNames": {
        "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
        "type": "string",
        "x-takoform-fieldPolicy": "portable-data-only-v1"
      },
      "type": [
        "array",
        "boolean",
        "null",
        "number",
        "object",
        "string"
      ]
    },
    "jsonValueDepth3": {
      "additionalProperties": {
        "$ref": "#/$defs/jsonValueDepth4"
      },
      "items": {
        "$ref": "#/$defs/jsonValueDepth4"
      },
      "maxItems": 64,
      "maxLength": 8192,
      "maxProperties": 64,
      "propertyNames": {
        "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
        "type": "string",
        "x-takoform-fieldPolicy": "portable-data-only-v1"
      },
      "type": [
        "array",
        "boolean",
        "null",
        "number",
        "object",
        "string"
      ]
    },
    "jsonValueDepth4": {
      "additionalProperties": {
        "$ref": "#/$defs/jsonValueDepth5"
      },
      "items": {
        "$ref": "#/$defs/jsonValueDepth5"
      },
      "maxItems": 64,
      "maxLength": 8192,
      "maxProperties": 64,
      "propertyNames": {
        "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
        "type": "string",
        "x-takoform-fieldPolicy": "portable-data-only-v1"
      },
      "type": [
        "array",
        "boolean",
        "null",
        "number",
        "object",
        "string"
      ]
    },
    "jsonValueDepth5": {
      "additionalProperties": {
        "$ref": "#/$defs/jsonValueDepth6"
      },
      "items": {
        "$ref": "#/$defs/jsonValueDepth6"
      },
      "maxItems": 64,
      "maxLength": 8192,
      "maxProperties": 64,
      "propertyNames": {
        "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
        "type": "string",
        "x-takoform-fieldPolicy": "portable-data-only-v1"
      },
      "type": [
        "array",
        "boolean",
        "null",
        "number",
        "object",
        "string"
      ]
    },
    "jsonValueDepth6": {
      "additionalProperties": {
        "$ref": "#/$defs/jsonValueDepth7"
      },
      "items": {
        "$ref": "#/$defs/jsonValueDepth7"
      },
      "maxItems": 64,
      "maxLength": 8192,
      "maxProperties": 64,
      "propertyNames": {
        "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
        "type": "string",
        "x-takoform-fieldPolicy": "portable-data-only-v1"
      },
      "type": [
        "array",
        "boolean",
        "null",
        "number",
        "object",
        "string"
      ]
    },
    "jsonValueDepth7": {
      "additionalProperties": {
        "$ref": "#/$defs/jsonValueDepth8"
      },
      "items": {
        "$ref": "#/$defs/jsonValueDepth8"
      },
      "maxItems": 64,
      "maxLength": 8192,
      "maxProperties": 64,
      "propertyNames": {
        "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
        "type": "string",
        "x-takoform-fieldPolicy": "portable-data-only-v1"
      },
      "type": [
        "array",
        "boolean",
        "null",
        "number",
        "object",
        "string"
      ]
    },
    "jsonValueDepth8": {
      "maxLength": 8192,
      "type": [
        "boolean",
        "null",
        "number",
        "string"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Immutable executable snapshot of one Module Worker: a bundle, the handlers its module exports, non-secret vars, and the typed capability bindings the code may use. A change is a new Worker Version; traffic moves only through Worker Deployments. The runtime this code runs on is not a field of this Form: it is fixed by the worker.runtime@1.1.0 contract the Module Worker identity provides, so a version carries no compatibility date and no compatibility flag (decision 0019).",
  "properties": {
    "actorBindings": {
      "default": [],
      "description": "Typed module-worker.actor bindings projecting addressing and invocation — idFromName, newUniqueId, get. Omitting it declares no such binding.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 64,
            "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$",
            "type": "string"
          },
          "resource": {
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "const": "edge.forms.takoform.com",
                "type": "string"
              },
              "kind": {
                "const": "ActorNamespace",
                "type": "string"
              },
              "name": {
                "maxLength": 63,
                "minLength": 1,
                "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
                "type": "string"
              }
            },
            "required": [
              "apiVersion",
              "kind",
              "name"
            ],
            "type": "object",
            "x-takoform-required-interface": {
              "apiVersion": "interfaces.takoform.com/v1alpha1",
              "name": "worker.actor",
              "schemaDigest": "sha256:f5428fb587de80261dd7363dc5b8a3f4aab7e469fa1b5fce8441ad9acbec8218",
              "version": "1.0.0"
            }
          }
        },
        "required": [
          "name",
          "resource"
        ],
        "type": "object"
      },
      "maxItems": 64,
      "type": "array",
      "uniqueItems": true,
      "x-takoform-binding": "module-worker.actor"
    },
    "assets": {
      "additionalProperties": false,
      "description": "Optional static-asset attachment for this immutable version. Without it the host performs no asset lookup. When present, every member is required and the request order is closed: with runWorkerFirst=false the host tries the asset lookup before invoking fetch; with true it invokes fetch first and tries the asset lookup only when that invocation returns 404. An asset result wins; if both stages miss, the worker's 404 is preserved. The attachment never grants a hidden runtime binding and never mutates the referenced bundle.",
      "properties": {
        "bundle": {
          "additionalProperties": false,
          "description": "Static Asset Bundle whose exact manifest inventory this version serves.",
          "properties": {
            "apiVersion": {
              "const": "edge.forms.takoform.com",
              "type": "string"
            },
            "kind": {
              "const": "StaticAssetBundle",
              "type": "string"
            },
            "name": {
              "maxLength": 63,
              "minLength": 1,
              "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
              "type": "string"
            }
          },
          "required": [
            "apiVersion",
            "kind",
            "name"
          ],
          "type": "object",
          "x-takoform-target-formrefs": [
            {
              "apiVersion": "edge.forms.takoform.com",
              "definitionVersion": "0.1.0",
              "kind": "StaticAssetBundle",
              "schemaDigest": "sha256:83142a3f824cf1fa2793fb73f4c32203ae07fb70db789d056aebe4c0ebe9334f"
            }
          ]
        },
        "notFoundHandling": {
          "description": "Closed asset-miss behavior. none leaves a missing exact path as a miss. single_page_application serves the bundle's index.html for a missing path; a bundle without index.html is refused before this Worker Version is stored.",
          "enum": [
            "none",
            "single_page_application"
          ],
          "type": "string"
        },
        "runWorkerFirst": {
          "description": "Whether every request invokes the worker fetch handler before the asset lookup. False performs the lookup first and invokes fetch only when it misses; true performs the lookup only after fetch returns 404.",
          "type": "boolean"
        }
      },
      "required": [
        "bundle",
        "notFoundHandling",
        "runWorkerFirst"
      ],
      "type": "object"
    },
    "bundle": {
      "additionalProperties": false,
      "description": "Worker Bundle carrying the exact module bytes this version executes.",
      "properties": {
        "apiVersion": {
          "const": "edge.forms.takoform.com",
          "type": "string"
        },
        "kind": {
          "const": "WorkerBundle",
          "type": "string"
        },
        "name": {
          "maxLength": 63,
          "minLength": 1,
          "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
          "type": "string"
        }
      },
      "required": [
        "apiVersion",
        "kind",
        "name"
      ],
      "type": "object",
      "x-takoform-target-formrefs": [
        {
          "apiVersion": "edge.forms.takoform.com",
          "definitionVersion": "0.1.0",
          "kind": "WorkerBundle",
          "schemaDigest": "sha256:cb21984a579ae2706bddada8b44a22c0f8390994550c10d7c65df82edfa1141b"
        }
      ]
    },
    "externalServices": {
      "default": [],
      "description": "External standard services this version speaks, each a sealed slot naming only a runtime binding NAME and an opaque namespaced protocol. The host resolves the integration out-of-band and supplies one sealed runtime-native binding under NAME; neither its entries nor the credential is portable state. A required slot the host cannot satisfy keeps the version from becoming Ready. Omitting it declares no external service.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 64,
            "pattern": "^[A-Z][A-Z0-9_]*$",
            "type": "string"
          },
          "required": {
            "default": true,
            "description": "Optional, defaulting to true. A REQUIRED slot the host cannot satisfy blocks readiness; an optional one it does not satisfy projects nothing and blocks nothing.",
            "type": "boolean"
          },
          "service": {
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "const": "standards.takoform.com/v1"
              },
              "protocol": {
                "maxLength": 253,
                "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?){2,}$",
                "type": "string"
              }
            },
            "required": [
              "apiVersion",
              "protocol"
            ],
            "type": "object"
          }
        },
        "required": [
          "name",
          "service"
        ],
        "type": "object"
      },
      "maxItems": 16,
      "type": "array",
      "uniqueItems": true,
      "x-takoform-standard-services": "standards.takoform.com/v1"
    },
    "handlers": {
      "description": "Module event handlers this version exports, from the closed vocabulary the worker.runtime@1.1.0 contract defines. A host rejects a handler that contract does not define, and rejects an attachment whose event kind is not declared here.",
      "items": {
        "enum": [
          "fetch",
          "scheduled",
          "queue"
        ],
        "type": "string"
      },
      "minItems": 1,
      "type": "array",
      "uniqueItems": true
    },
    "kvBindings": {
      "default": [],
      "description": "Typed module-worker.edge-kv bindings projecting the edge.kv API under JavaScript identifier names. Omitting it declares no such binding.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 64,
            "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$",
            "type": "string"
          },
          "resource": {
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "const": "edge.forms.takoform.com",
                "type": "string"
              },
              "kind": {
                "const": "EdgeKVNamespace",
                "type": "string"
              },
              "name": {
                "maxLength": 63,
                "minLength": 1,
                "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
                "type": "string"
              }
            },
            "required": [
              "apiVersion",
              "kind",
              "name"
            ],
            "type": "object",
            "x-takoform-required-interface": {
              "apiVersion": "interfaces.takoform.com/v1alpha1",
              "name": "edge.kv",
              "schemaDigest": "sha256:231cfe2a7d8a6a9234f2ca84d4c4fc5b52857e5b632ab613ab2f9eca0116e082",
              "version": "1.0.0"
            }
          }
        },
        "required": [
          "name",
          "resource"
        ],
        "type": "object"
      },
      "maxItems": 64,
      "type": "array",
      "uniqueItems": true,
      "x-takoform-binding": "module-worker.edge-kv"
    },
    "queueProducerBindings": {
      "default": [],
      "description": "Typed module-worker.queue-producer bindings projecting only send and sendBatch. Omitting it declares no such binding.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 64,
            "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$",
            "type": "string"
          },
          "resource": {
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "const": "edge.forms.takoform.com",
                "type": "string"
              },
              "kind": {
                "const": "AtLeastOnceQueue",
                "type": "string"
              },
              "name": {
                "maxLength": 63,
                "minLength": 1,
                "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
                "type": "string"
              }
            },
            "required": [
              "apiVersion",
              "kind",
              "name"
            ],
            "type": "object",
            "x-takoform-required-interface": {
              "apiVersion": "interfaces.takoform.com/v1alpha1",
              "name": "edge.queue",
              "schemaDigest": "sha256:d8ed5c673cb544f5b2bd61aa66ac1c1a716276cf072232b3a0d06471403c2ff7",
              "version": "1.0.0"
            }
          }
        },
        "required": [
          "name",
          "resource"
        ],
        "type": "object"
      },
      "maxItems": 64,
      "type": "array",
      "uniqueItems": true,
      "x-takoform-binding": "module-worker.queue-producer"
    },
    "requiredSensitiveVars": {
      "default": [],
      "description": "Names of sensitive values this version requires the host to supply out-of-band. Only the names are portable state; values travel through each host's own sealed path. Omitting it requires no sensitive value.",
      "items": {
        "pattern": "^[A-Z][A-Z0-9_]{0,63}$",
        "type": "string"
      },
      "type": "array",
      "uniqueItems": true
    },
    "serviceBindings": {
      "default": [],
      "description": "Typed module-worker.service bindings projecting worker.service fetch toward another Module Worker. Omitting it declares no such binding.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 64,
            "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$",
            "type": "string"
          },
          "resource": {
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "const": "edge.forms.takoform.com",
                "type": "string"
              },
              "kind": {
                "const": "ModuleWorker",
                "type": "string"
              },
              "name": {
                "maxLength": 63,
                "minLength": 1,
                "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
                "type": "string"
              }
            },
            "required": [
              "apiVersion",
              "kind",
              "name"
            ],
            "type": "object",
            "x-takoform-required-interface": {
              "apiVersion": "interfaces.takoform.com/v1alpha1",
              "name": "worker.service",
              "schemaDigest": "sha256:8024073e25413c8906c3e189555a7485b4c7a6656e8a537fb2801f9b9682536e",
              "version": "1.0.0"
            }
          }
        },
        "required": [
          "name",
          "resource"
        ],
        "type": "object"
      },
      "maxItems": 64,
      "type": "array",
      "uniqueItems": true,
      "x-takoform-binding": "module-worker.service"
    },
    "sqliteBindings": {
      "default": [],
      "description": "Typed module-worker.sqlite bindings projecting the edge.sql API. Omitting it declares no such binding.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 64,
            "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$",
            "type": "string"
          },
          "resource": {
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "const": "edge.forms.takoform.com",
                "type": "string"
              },
              "kind": {
                "const": "SQLiteDatabase",
                "type": "string"
              },
              "name": {
                "maxLength": 63,
                "minLength": 1,
                "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
                "type": "string"
              }
            },
            "required": [
              "apiVersion",
              "kind",
              "name"
            ],
            "type": "object",
            "x-takoform-required-interface": {
              "apiVersion": "interfaces.takoform.com/v1alpha1",
              "name": "edge.sql",
              "schemaDigest": "sha256:cebd1121b1e3a5cbcb7b61ec78ad9c79ce05cda90fbc5fdb7b4edd3d59562f8f",
              "version": "1.0.0"
            }
          }
        },
        "required": [
          "name",
          "resource"
        ],
        "type": "object"
      },
      "maxItems": 64,
      "type": "array",
      "uniqueItems": true,
      "x-takoform-binding": "module-worker.sqlite"
    },
    "vars": {
      "additionalProperties": {
        "$ref": "#/$defs/jsonValueDepth1"
      },
      "default": {},
      "description": "Non-secret configuration values projected into the module environment. Sensitive material never enters portable state. Omitting it projects no variable.",
      "maxProperties": 64,
      "propertyNames": {
        "pattern": "^[A-Za-z][A-Za-z0-9._-]{0,63}$",
        "type": "string",
        "x-takoform-fieldPolicy": "portable-data-only-v1"
      },
      "type": "object"
    },
    "worker": {
      "additionalProperties": false,
      "description": "Module Worker identity this version belongs to.",
      "properties": {
        "apiVersion": {
          "const": "edge.forms.takoform.com",
          "type": "string"
        },
        "kind": {
          "const": "ModuleWorker",
          "type": "string"
        },
        "name": {
          "maxLength": 63,
          "minLength": 1,
          "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
          "type": "string"
        }
      },
      "required": [
        "apiVersion",
        "kind",
        "name"
      ],
      "type": "object",
      "x-takoform-required-interface": {
        "apiVersion": "interfaces.takoform.com/v1alpha1",
        "name": "worker.runtime",
        "schemaDigest": "sha256:ed2f8211aac5be94488d391945ca6aca7627a4ecbd261e39790093e887feae08",
        "version": "1.1.0"
      }
    },
    "workflowBindings": {
      "default": [],
      "description": "Typed module-worker.workflow bindings projecting the instance surface — create, get, status, sendEvent, terminate. Omitting it declares no such binding.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 64,
            "pattern": "^[A-Za-z_$][A-Za-z0-9_$]*$",
            "type": "string"
          },
          "resource": {
            "additionalProperties": false,
            "properties": {
              "apiVersion": {
                "const": "edge.forms.takoform.com",
                "type": "string"
              },
              "kind": {
                "const": "DurableWorkflow",
                "type": "string"
              },
              "name": {
                "maxLength": 63,
                "minLength": 1,
                "pattern": "^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$",
                "type": "string"
              }
            },
            "required": [
              "apiVersion",
              "kind",
              "name"
            ],
            "type": "object",
            "x-takoform-required-interface": {
              "apiVersion": "interfaces.takoform.com/v1alpha1",
              "name": "worker.workflow",
              "schemaDigest": "sha256:6b652dd311975da84469a5ec44f48acbc6db2097d1473988bd5424a85fda4294",
              "version": "1.0.0"
            }
          }
        },
        "required": [
          "name",
          "resource"
        ],
        "type": "object"
      },
      "maxItems": 64,
      "type": "array",
      "uniqueItems": true,
      "x-takoform-binding": "module-worker.workflow"
    }
  },
  "required": [
    "bundle",
    "handlers",
    "worker"
  ],
  "title": "Worker Version desired state",
  "type": "object"
}

ライフサイクル

役割: revision

  • create
  • read
  • delete
  • import
  • observe

提供するInterface

ありません。

パッケージ参照

項目
KindWorkerVersion
Package digestsha256:63cf4dd3e96f575d1d1631c87d2e0ff0410ca820e142b8d4fa73e30aaa651025
Schema digestsha256:3d4eeed966867a1ef8d7ce629a77c4b9687c6d48d3e496d22314b29aff0a42ed
Tagforms/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2xn5zgwzlskzsxe43jn5xa/sha256-63cf4dd3e96f575d1d1631c87d2e0ff0410ca820e142b8d4fa73e30aaa651025
Source pathforms/releases/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2xn5zgwzlskzsxe43jn5xa/sha256-63cf4dd3e96f575d1d1631c87d2e0ff0410ca820e142b8d4fa73e30aaa651025
履歴過去のパッケージ。現在の署名セットには含まれません。

変更不可のパッケージを開く

4項目のFormRef
json
{
  "apiVersion": "edge.forms.takoform.com",
  "kind": "WorkerVersion",
  "definitionVersion": "0.2.0",
  "schemaDigest": "sha256:3d4eeed966867a1ef8d7ce629a77c4b9687c6d48d3e496d22314b29aff0a42ed"
}