edge.forms.takoform.com/SQLiteMigrationApplication@0.1.0
SQLite Migration Application
Apply one exact migration set to one database.
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
Only the unapplied suffix executes. Deleting the application never runs down migrations or rewrites the database migration ledger.
Works with: SQLite Database · SQLite Migration Set
Full contract description
Applies one exact SQLite Migration Set to one exact SQLite Database. Both relations are immutable and UID-pinned before mutation. The database's durable migration ledger records each applied manifest entry as its ordered path+digest pair. The requested set must extend that ledger exactly; a rewrite, reorder, or removal is refused before SQL executes, and only the unapplied suffix runs. Each file and its ledger append commit atomically, so an interrupted application retries the same suffix without replaying a recorded migration. Ready means the ledger equals the referenced set. Deleting this attachment only stops managing the application resource: it never runs down-migrations, rewrites the ledger, reverts schema, or deletes the database.
- Kind
SQLiteMigrationApplication- Definition version
0.1.0- Role
attachment
Desired state
database- Exact SQLite Database whose durable migration ledger and schema this application advances.
additionalProperties: false
migrationSet- Exact immutable SQLite Migration Set whose ordered manifest must extend the database ledger.
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.
{
"database": {
"apiVersion": "edge.forms.takoform.com",
"kind": "SQLiteDatabase",
"name": "sqlite-database"
},
"migrationSet": {
"apiVersion": "edge.forms.takoform.com",
"kind": "SQLiteMigrationSet",
"name": "sqlite-migration-set"
}
}
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": "Applies one exact SQLite Migration Set to one exact SQLite Database. Both relations are immutable and UID-pinned before mutation. The database's durable migration ledger records each applied manifest entry as its ordered path+digest pair. The requested set must extend that ledger exactly; a rewrite, reorder, or removal is refused before SQL executes, and only the unapplied suffix runs. Each file and its ledger append commit atomically, so an interrupted application retries the same suffix without replaying a recorded migration. Ready means the ledger equals the referenced set. Deleting this attachment only stops managing the application resource: it never runs down-migrations, rewrites the ledger, reverts schema, or deletes the database.",
"properties": {
"database": {
"additionalProperties": false,
"description": "Exact SQLite Database whose durable migration ledger and schema this application advances.",
"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-target-formrefs": [
{
"apiVersion": "edge.forms.takoform.com",
"definitionVersion": "0.1.0",
"kind": "SQLiteDatabase",
"schemaDigest": "sha256:c72eeb66ef96c4679b5c724fa1219d71c89bb7eeb9e543d73d868ec41bddddfe"
}
]
},
"migrationSet": {
"additionalProperties": false,
"description": "Exact immutable SQLite Migration Set whose ordered manifest must extend the database ledger.",
"properties": {
"apiVersion": {
"const": "edge.forms.takoform.com",
"type": "string"
},
"kind": {
"const": "SQLiteMigrationSet",
"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": "SQLiteMigrationSet",
"schemaDigest": "sha256:05a4aa2ebd8fbf659f05ae378288d9c9657cc7478e1437f013732199bfcce7b9"
}
]
}
},
"required": [
"database",
"migrationSet"
],
"title": "SQLite Migration Application desired state",
"type": "object"
}Lifecycle
createreaddeleteimportobserve
Provided interfaces
- None
Canonical package locator
- Package digest
sha256:0ae795b0c8a05672817e5e1a365562ecdc2cdeedf3c7477a8ecfc4f3bdf974ca- Schema digest
sha256:f3b42ede7bad664e494a04ea6f0fd167082988688fe96f4ec1fbb80db13a8e01- Tag
forms/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2tkfggs5dfjvuwo4tboruw63sbobygy2ldmf2gs33o/sha256-0ae795b0c8a05672817e5e1a365562ecdc2cdeedf3c7477a8ecfc4f3bdf974ca- Source path
forms/releases/k-mvsgozjomzxxe3ltfz2gc23pmzxxe3jomnxw2l2tkfggs5dfjvuwo4tboruw63sbobygy2ldmf2gs33o/sha256-0ae795b0c8a05672817e5e1a365562ecdc2cdeedf3c7477a8ecfc4f3bdf974ca- Signed set
e7f8a39311dd011b8467e97e7f300cabb9a6b06c
Four-field FormRef
{
"apiVersion": "edge.forms.takoform.com",
"kind": "SQLiteMigrationApplication",
"definitionVersion": "0.1.0",
"schemaDigest": "sha256:f3b42ede7bad664e494a04ea6f0fd167082988688fe96f4ec1fbb80db13a8e01"
}