edge.forms.takoform.com/WorkerCustomDomain@0.1.0
Worker Custom Domain
Connect a hostname you control to a Worker's active deployment.
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
Deleting this attachment detaches the hostname, not the Worker. The Host canonicalizes the DNS name and refuses duplicate ownership. The fixture uses a deliberately non-routable .invalid hostname.
Works with: Module Worker · Worker Deployment · Worker Endpoint
Full contract description
Attaches one DNS hostname to a Module Worker so its active deployment serves that hostname over HTTPS. Inward activation is an attachment, never a binding; deleting the attachment detaches the hostname and never deletes the worker. A hostname is a name in DNS rather than a label in this host's namespace, so it is CANONICALIZED before it is compared and before it is stored — trailing root dot removed, ASCII letters lowercased — and one canonical hostname is served by AT MOST ONE attachment per tenant, across every space. A second attachment claiming a hostname a live one already serves is refused before any mutation; releasing the holder makes the claim representable (decision 0026).
- Kind
WorkerCustomDomain- Definition version
0.1.0- Role
attachment
Desired state
hostname- Dotted DNS hostname this attachment serves. Changing it replaces the attachment. The pattern admits the spellings DNS treats as one name — an uppercase letter, a trailing root dot — because a host canonicalizes rather than refusing them; it admits no non-ASCII byte, so an internationalized name travels as its A-label.
maxLength: 253pattern: "^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)+\\.?$"
worker- Module Worker served on this hostname.
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.
{
"hostname": "app.portable-conformance.invalid",
"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": "Attaches one DNS hostname to a Module Worker so its active deployment serves that hostname over HTTPS. Inward activation is an attachment, never a binding; deleting the attachment detaches the hostname and never deletes the worker. A hostname is a name in DNS rather than a label in this host's namespace, so it is CANONICALIZED before it is compared and before it is stored — trailing root dot removed, ASCII letters lowercased — and one canonical hostname is served by AT MOST ONE attachment per tenant, across every space. A second attachment claiming a hostname a live one already serves is refused before any mutation; releasing the holder makes the claim representable (decision 0026).",
"properties": {
"hostname": {
"description": "Dotted DNS hostname this attachment serves. Changing it replaces the attachment. The pattern admits the spellings DNS treats as one name — an uppercase letter, a trailing root dot — because a host canonicalizes rather than refusing them; it admits no non-ASCII byte, so an internationalized name travels as its A-label.",
"maxLength": 253,
"pattern": "^[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?(?:\\.[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?)+\\.?$",
"type": "string"
},
"worker": {
"additionalProperties": false,
"description": "Module Worker served on this hostname.",
"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-entrypoint": "fetch",
"x-takoform-required-interface": {
"apiVersion": "interfaces.takoform.com/v1alpha1",
"name": "worker.runtime",
"schemaDigest": "sha256:ed2f8211aac5be94488d391945ca6aca7627a4ecbd261e39790093e887feae08",
"version": "1.1.0"
}
}
},
"required": [
"hostname",
"worker"
],
"title": "Worker Custom Domain desired state",
"type": "object"
}Lifecycle
createreaddeleteimportobserve
Provided interfaces
- None
Canonical package locator
- Package digest
sha256:94453c8f24eccf11e2a7142fb8711b47a8b039a7124a9498c498ec466c0574ed- Schema digest
sha256:1e4ae27dd53dfb8db977e3627e0b14f0d5e284703e9c435f48af31bd8e474110- Tag
forms/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2xn5zgwzlsin2xg5dpnvcg63lbnfxa/sha256-94453c8f24eccf11e2a7142fb8711b47a8b039a7124a9498c498ec466c0574ed- Source path
forms/releases/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2xn5zgwzlsin2xg5dpnvcg63lbnfxa/sha256-94453c8f24eccf11e2a7142fb8711b47a8b039a7124a9498c498ec466c0574ed- Signed set
e7f8a39311dd011b8467e97e7f300cabb9a6b06c
Four-field FormRef
{
"apiVersion": "edge.forms.takoform.com",
"kind": "WorkerCustomDomain",
"definitionVersion": "0.1.0",
"schemaDigest": "sha256:1e4ae27dd53dfb8db977e3627e0b14f0d5e284703e9c435f48af31bd8e474110"
}