edge.forms.takoform.com/WorkerVersion@0.3.0
Worker Version
Capture one immutable combination of code, handlers and configuration.
Public package readback verified
Host support and admission are separate from package publication. These fields describe portable desired state, not a provider-specific deployment command.
How it fits
Changing a revision creates another version. Sensitive values are never portable state: declare their names only. The example is comprehensive, not a minimal deployment. There is no compatibility-date or compatibility-flag field.
Works with: Module Worker · Worker Bundle · Static Asset Bundle · Worker Deployment · Object Bucket · SQLite Database · Edge KV Namespace
Full contract 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).
Other versions: 0.2.0 (retained)
- Kind
WorkerVersion- Definition version
0.3.0- Role
revision
Desired state
actorBindings- Typed module-worker.actor bindings projecting addressing and invocation — idFromName, newUniqueId, get. Omitting it declares no such binding.
default: []maxItems: 64uniqueItems: true
assets- 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
bucketBindings- Typed module-worker.object-bucket bindings projecting the edge.objects API. Omitting it declares no such binding.
default: []maxItems: 64uniqueItems: true
bundle- Worker Bundle carrying the exact module bytes this version executes.
additionalProperties: false
externalServices- 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: 16uniqueItems: true
handlers- 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: 1uniqueItems: true
kvBindings- Typed module-worker.edge-kv bindings projecting the edge.kv API under JavaScript identifier names. Omitting it declares no such binding.
default: []maxItems: 64uniqueItems: true
queueProducerBindings- Typed module-worker.queue-producer bindings projecting only send and sendBatch. Omitting it declares no such binding.
default: []maxItems: 64uniqueItems: true
requiredSensitiveVars- 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- Typed module-worker.service bindings projecting worker.service fetch toward another Module Worker. Omitting it declares no such binding.
default: []maxItems: 64uniqueItems: true
sqliteBindings- Typed module-worker.sqlite bindings projecting the edge.sql API. Omitting it declares no such binding.
default: []maxItems: 64uniqueItems: true
vars- 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- Module Worker identity this version belongs to.
additionalProperties: false
workflowBindings- Typed module-worker.workflow bindings projecting the instance surface — create, get, status, sendEvent, terminate. Omitting it declares no such binding.
default: []maxItems: 64uniqueItems: true
Example desired state
This is the exact fixtures/desired.json from this package, not a complete Host API request or OpenTofu configuration. Replace example resource references and artifact digests with your own; it does not provision anything by itself.
{
"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
},
"bucketBindings": [
{
"name": "OBJECTS",
"resource": {
"apiVersion": "edge.forms.takoform.com",
"kind": "ObjectBucket",
"name": "object-bucket"
}
}
],
"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"
}
}
],
"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"
}
}
]
}
Read source fixture
Full desired-state schema
Nested fields, allowed alternatives and all schema constraints. Host-validated semantics also apply; read the contract description above.
{
"$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"
},
"bucketBindings": {
"default": [],
"description": "Typed module-worker.object-bucket bindings projecting the edge.objects 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": "ObjectBucket",
"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.objects",
"schemaDigest": "sha256:b58cb2d54c93e4d97abe4ff3684dd88c8a400b4e39ec7fe2f3ba549c4ac448ba",
"version": "1.0.0"
}
}
},
"required": [
"name",
"resource"
],
"type": "object"
},
"maxItems": 64,
"type": "array",
"uniqueItems": true,
"x-takoform-binding": "module-worker.object-bucket"
},
"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"
}Lifecycle
createreaddeleteimportobserve
Provided interfaces
- None
Canonical package locator
- Package digest
sha256:21adc2e4e677cd31e905483d38eff60c9eb61112f6c234a01d6a487154980891- Schema digest
sha256:65870343bfab512fe5e7ae6faea8b3dbc48f9c9de0d4d9349dcbfd819f06d365- Tag
forms/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2xn5zgwzlskzsxe43jn5xa/sha256-21adc2e4e677cd31e905483d38eff60c9eb61112f6c234a01d6a487154980891- Source path
forms/releases/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2xn5zgwzlskzsxe43jn5xa/sha256-21adc2e4e677cd31e905483d38eff60c9eb61112f6c234a01d6a487154980891- Signed set
e7f8a39311dd011b8467e97e7f300cabb9a6b06c
Four-field FormRef
{
"apiVersion": "edge.forms.takoform.com",
"kind": "WorkerVersion",
"definitionVersion": "0.3.0",
"schemaDigest": "sha256:65870343bfab512fe5e7ae6faea8b3dbc48f9c9de0d4d9349dcbfd819f06d365"
}