Takoform / Edge Forms All Forms

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

databaseRequired · object
Exact SQLite Database whose durable migration ledger and schema this application advances.
  • additionalProperties: false
migrationSetRequired · object
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

  • create
  • read
  • delete
  • import
  • observe

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
Open immutable package
Four-field FormRef
{
  "apiVersion": "edge.forms.takoform.com",
  "kind": "SQLiteMigrationApplication",
  "definitionVersion": "0.1.0",
  "schemaDigest": "sha256:f3b42ede7bad664e494a04ea6f0fd167082988688fe96f4ec1fbb80db13a8e01"
}