Takoform / Edge Forms All Forms

edge.forms.takoform.com/WorkerDeployment@0.2.0

Worker Deployment

Choose which Worker revisions receive traffic.

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

Weights are basis points and must total exactly 10000. Rollback changes the weights; it never edits an immutable revision.

Works with: Module Worker · Worker Version · Worker Endpoint · Worker Custom Domain

Full contract description

Selects which Worker Versions of one Module Worker serve traffic and in what proportion. Weights are basis points and must sum to exactly 10000 across entries; the sum is host-validated semantics because a schema cannot add weights. Rollback is re-weighting, never mutating a revision.

Other versions: 0.1.0 (retained)

Kind
WorkerDeployment
Definition version
0.2.0
Role
deployment

Desired state

versionsRequired · array
Active Worker Versions and their traffic weights in basis points. Weights must sum to exactly 10000.
  • maxItems: 8
  • minItems: 1
  • uniqueItems: true
workerRequired · object
Module Worker identity whose traffic this deployment governs.
  • additionalProperties: false

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.

{
  "versions": [
    {
      "weight": 10000,
      "workerVersion": {
        "apiVersion": "edge.forms.takoform.com",
        "kind": "WorkerVersion",
        "name": "worker-version"
      }
    }
  ],
  "worker": {
    "apiVersion": "edge.forms.takoform.com",
    "kind": "ModuleWorker",
    "name": "module-worker"
  }
}
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.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Selects which Worker Versions of one Module Worker serve traffic and in what proportion. Weights are basis points and must sum to exactly 10000 across entries; the sum is host-validated semantics because a schema cannot add weights. Rollback is re-weighting, never mutating a revision.",
  "properties": {
    "versions": {
      "description": "Active Worker Versions and their traffic weights in basis points. Weights must sum to exactly 10000.",
      "items": {
        "additionalProperties": false,
        "properties": {
          "weight": {
            "description": "Traffic share in basis points (1..10000).",
            "maximum": 10000,
            "minimum": 1,
            "type": "integer"
          },
          "workerVersion": {
            "additionalProperties": false,
            "description": "Worker Version receiving this weight.",
            "properties": {
              "apiVersion": {
                "const": "edge.forms.takoform.com",
                "type": "string"
              },
              "kind": {
                "const": "WorkerVersion",
                "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.3.0",
                "kind": "WorkerVersion",
                "schemaDigest": "sha256:65870343bfab512fe5e7ae6faea8b3dbc48f9c9de0d4d9349dcbfd819f06d365"
              }
            ]
          }
        },
        "required": [
          "weight",
          "workerVersion"
        ],
        "type": "object"
      },
      "maxItems": 8,
      "minItems": 1,
      "type": "array",
      "uniqueItems": true
    },
    "worker": {
      "additionalProperties": false,
      "description": "Module Worker identity whose traffic this deployment governs.",
      "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-target-formrefs": [
        {
          "apiVersion": "edge.forms.takoform.com",
          "definitionVersion": "0.1.0",
          "kind": "ModuleWorker",
          "schemaDigest": "sha256:049df2fb1eda53e4ccb0d646022a3ded8bc17c44eb433fa2e5ac0861efe42ac7"
        }
      ]
    }
  },
  "required": [
    "versions",
    "worker"
  ],
  "title": "Worker Deployment desired state",
  "type": "object"
}

Lifecycle

  • create
  • read
  • update
  • delete
  • import
  • observe

Provided interfaces

  • None

Canonical package locator

Package digest
sha256:a752244c9f90caf18f9b5cec1b6b850fc318e6ec937d5b23eec33169f638c281
Schema digest
sha256:3d5174bf2c3f351cf1468607689019e9eaa503a353eceb3095cf3d31bad62081
Tag
forms/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2xn5zgwzlsirsxa3dppfwwk3tu/sha256-a752244c9f90caf18f9b5cec1b6b850fc318e6ec937d5b23eec33169f638c281
Source path
forms/releases/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2xn5zgwzlsirsxa3dppfwwk3tu/sha256-a752244c9f90caf18f9b5cec1b6b850fc318e6ec937d5b23eec33169f638c281
Signed set
e7f8a39311dd011b8467e97e7f300cabb9a6b06c
Open immutable package
Four-field FormRef
{
  "apiVersion": "edge.forms.takoform.com",
  "kind": "WorkerDeployment",
  "definitionVersion": "0.2.0",
  "schemaDigest": "sha256:3d5174bf2c3f351cf1468607689019e9eaa503a353eceb3095cf3d31bad62081"
}