Skip to content
Hara

Identity, packages, and assets

Hara's official tap is a self-publishing system with one authority: accepted Git history. It has three public service names:

Origin Responsibility
id.hara-lang.org GitHub ownership enrollment and signed public-key policy
packages.hara-lang.org package discovery, verification records, and immutable code objects
assets.hara-lang.org immutable file, image, 3D, audio, and video objects

Artifact manifests, HARP archives, extensions, publishing, distribution, and mirroring are parts of the protocol. They are not separate official domains. There is no ledger.

Trust model

An owner enrolls a GitHub namespace and an Ed25519 public key. The matching private key stays behind an external signer selected with HARA_SIGNER; Hara does not write it to a project, config file, service, or iterator cache.

A release intent binds the coordinate, version, exact Git commit, recipe digest, and identity-policy revision. Protected automation verifies the signature and namespace grant, builds the exact input without protected credentials, checks deterministic output, uploads digest-addressed objects, and merges the accepted record into Git. Publication is automatic after enrollment, but a record is visible only after that protected Git change.

Repeating the same signed release is idempotent. Reusing a coordinate and version for different content is rejected. A yank adds state; it never deletes the historical release.

CLI lifecycle

Bootstrap the official trust profile using a root fingerprint obtained through an authenticated release channel:

HARA_OFFICIAL_ROOT_SHA256=<64-lowercase-hex> hara tap bootstrap hara
hara tap verify hara

Enroll using an external signer:

export HARA_SIGNER=/path/to/ed25519-sign-command
export HARA_SIGNER_PUBLIC_KEY=<64-lowercase-hex>
hara id login
hara id enroll --owner YOUR_GITHUB_OWNER
hara id status

Check and publish code:

hara package check
hara package build
hara package publish --tap hara
hara package status

Build a versioned asset collection:

hara asset check
hara asset build
hara asset inspect
hara asset publish --tap hara

asset.edn declares originals and deterministic derivatives. Delivery serves only recorded immutable objects; it does not run arbitrary transformations on request.

Normative specifications

The numbered specs/02-platform family defines CLI routing, tap discovery, identity, artifact manifests, HARP, packages, extensions, assets, publishing, distribution, and mirroring. The shared tap metaspec makes their roles, entities, operations, invariants, and conformance corpora machine-checkable.

The Cloudflare implementation in platform/cloudflare is a reference delivery edge. It streams the authoritative Git documents and digest-addressed R2 objects, and deliberately exposes no mutation endpoint. Protected GitHub workflows own enrollment and release finalization.