takoform

module
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 27, 2026 License: MIT

README

Takoform

Takoform is the independent home of the Takoform API and Core: the normative desired-state contract, neutral schemas, data-only Form Package verification, immutable Snapshot compilation, the Host API client, offline trust verification, and generic conformance.

It is an experimental specification and tooling project. It is not a cloud catalog, a hosted control plane, a Terraform Provider, or a claim that unlike service semantics can be made portable by renaming fields.

Version model

The first current release line is Takoform API 1.0.0. Takoform has exactly two domain version axes:

Axis Current identity Meaning
Takoform API release 1.0.0 (wire major forms.takoform.com/v1) compatible API/Core checkpoint; only the major selects a wire lane
Form definition each Form's definitionVersion compatibility of that Form's portable desired-state contract

A reverse-DNS Form group is a namespace, not a version. A Form-owned Interface or Binding changes compatibly only with that Form's definitionVersion; an external protocol keeps the version owned by its external standard.

Everything else is an artifact, parser, evidence, or distribution identity. Specification 1.1 is an immutable historical source snapshot. The Go module github.com/tako0614/takoform uses tag v1.0.0 for the same API 1.0.0 release; there is no planned Core v0.1.0 and no separate public Core version stream. Provider and other client SemVer, package envelope $id, schema $id, package digest, trust format, and record generation identify their own bytes or readers; they are not Takoform versions a user selects. Specification 1.1 did not publish a Form, package, Provider, Host support, activation, or Offering.

Host API v1 is the only current wire lane. Its discovery and API roots remain /.well-known/takoform/v1 and /apis/forms.takoform.com/v1. The current machine contract is byte-identical to the W09 compatibility pin. Creating the v1.0.0 tag and GitHub Release is a separate operator action; editing this tree and a Host's later adoption do not establish that publication or support.

Specification 1.1 remains bound to its original immutable release:

  • repository: github.com/tako0614/terraform-provider-takoform
  • tag: specification/1.1
  • annotated tag object: e2c1ba71766a6b25cae0826df99c8906a7f3f20b
  • normative source commit: 00ae5ee4e2ea2eb62ea796499a93081374dc36b9
  • release commit: 35c03a76326c808e859aa77172e086f15a2aeb5d
  • source snapshot: sha256:23a9b14dc79f46fae632624fc5c442f947f63565e9d7f9d0a614598b5027ae03

This repository imports that receipt but never recreates or retags the release. The extraction, permanent numbered-writer retirement, and pure-Core ownership handoff are recorded in docs/extraction/w10-core-cutover.md.

Public Core packages

  • formpackage validates canonical data-only Form Packages, their exact FormRef and schema closure, package digests, fixtures, and append-only revocation documents.
  • snapshot compiles already verified, digest-pinned packages and contracts into one immutable, order-independent exact-identity graph. A failed compilation returns no partial Snapshot.
  • hostclient implements the neutral Host API client, including discovery, support, artifacts, asynchronous operations, identity fences, and Resource lifecycle calls.
  • trust verifies caller-supplied publisher policy, subject, Sigstore bundle, trusted root, and revocation state offline. It carries no ambient publisher trust.

The command-line tools expose the same libraries; command output is intended to be machine-readable and fails closed.

Publishers are equal at the Core boundary

A Form identity contains its reverse-DNS group, Kind, definition version, and schema digest. It contains no official bit. The package schema, canonical digest, signature verification, revocation checks, Snapshot compiler, Host installation mechanism, support report, and activation decision are the same regardless of who publishes it.

The only difference between publishers is provenance: who maintains the source and which issuer, repository, workflow, ref, and revocation feed an operator chooses to trust. Core accepts that policy as data supplied by the caller; it does not ship a privileged publisher allowlist or a special activation route.

Package verification is not installation. Installation is not Host support. Support is not activation. Activation is not a commercial Offering.

Ownership boundary

Core owns:

  • normative Specification source and active or verify-only schemas;
  • package canonicalization, validation, trust formats, and generic conformance;
  • immutable Snapshot compilation and the Host API client;
  • API source and public-schema records plus verify-only custody of the sealed Specification 1.1 history after the one-way authority handoff.

Core does not own:

  • official or third-party Form source and publication workflows;
  • Terraform/OpenTofu resource mappings, state, import, or Provider releases;
  • a Host implementation, installation database, activation, backend capacity, credentials, billing, support, or customer traffic;
  • a central Form catalog or a universal opaque Terraform resource.

The existing Provider and its immutable release history remain in github.com/tako0614/terraform-provider-takoform. The official Form publisher will be a separate github.com/tako0614/takoform-forms repository only after its packages pass the same released path as independently maintained packages.

Development

The portable complete gate is:

bun install --frozen-lockfile
bun run check

The gate formats nothing and publishes nothing. It checks the final module and ownership boundary, schema and release records, Go formatting/static analysis, all portable tests, generic conformance, and standalone builds. No sibling Provider checkout or replace directive is allowed.

Core has no production hosting target. Its one published-identity deploy surface creates the matching Git tag and GitHub Release through the ordinary repository entrypoint documented in release/core-release-policy.md:

bun run deploy -- core v1.0.0 --dry-run
bun run deploy -- core v1.0.0
bun run deploy -- core v1.0.0 --verify

bun run deploy -- --contract describes that surface without mutating it.

Version cadence

A new Takoform API major is considered only for an evidenced incompatible protocol requirement. v1.0.x is a compatible correction on the API 1.0 baseline; a future v1.y.0 is a deliberate, proven-compatible API checkpoint on the same wire lane. Because v1 envelopes, errors, and endpoint objects are closed, an optional field, error, or endpoint is not compatible merely because a new client could ignore it. Old-client-safe behavior or an explicit capability gate must be proved first. Core uses the matching Go module tag instead of a third version stream.

Each Form advances its own definitionVersion only when that Form's evidence requires it, with no empty calendar release. Packages, Hosts, other clients, and Providers release their artifacts on their own evidence and cadence without becoming domain axes.

API v2 remains proposal-only until a later explicit decision and release. This repository does not publish or route it as part of W09-W19.

License

MIT

Directories

Path Synopsis
cmd
form-package command
generic-conformance command
Command generic-conformance verifies the neutral Core artifact corpus.
Command generic-conformance verifies the neutral Core artifact corpus.
takoform-trust command
Package formpackage verifies portable, data-only Takoform Form Packages.
Package formpackage verifies portable, data-only Takoform Form Packages.
Package genericconformance verifies the neutral Core artifact corpus.
Package genericconformance verifies the neutral Core artifact corpus.
Package hostclient implements the Takoform API v1 client (forms.takoform.com/v1 and spec/host-api/v1.md).
Package hostclient implements the Takoform API v1 client (forms.takoform.com/v1 and spec/host-api/v1.md).
internal
buildinfo
Package buildinfo owns the module identity reported by public Core commands.
Package buildinfo owns the module identity reported by public Core commands.
Package snapshot compiles already acquired, data-only Form Package artifacts into one immutable, provider-neutral exact-identity graph.
Package snapshot compiles already acquired, data-only Form Package artifacts into one immutable, provider-neutral exact-identity graph.
Package trust verifies caller-selected Form Package publisher identities and Sigstore bundles without network access or ambient trust configuration.
Package trust verifies caller-selected Form Package publisher identities and Sigstore bundles without network access or ambient trust configuration.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL