Publish
Publish a module to the registry
Anyone can install your module straight from git — listing it here adds a name people can install by, an owner, and a verification status. The registry is one JSON index; publishing is a pull request.
- 1
Validate and build your module
A clean validate run means the module meets the contract and is registry-ready. See the authoring guide.
$ damat module validate && damat module build - 2
Tag the release in your module's repo
Each published version maps to an immutable git tag (e.g.
your-module-v0.1.0) so releases can't change under consumers whilelatestadvances. - 3
Open a pull request adding your entry
The index for this registry lives in the damatjs/damat monorepo at
apps/registry/data/registry.json. Add an entry keyed bynamespace/name:registry.json"your-org/your-module": { "source": "https://github.com/your-org/damat-modules.git#main", "description": "One line on what the module does.", "latest": "0.1.0", "versions": { "0.1.0": "https://github.com/your-org/damat-modules.git#your-module-v0.1.0" }, "owner": { "namespace": "your-org", "verified": false }, "verification": { "status": "unverified" }, "keywords": ["billing", "stripe"], "license": "MIT", "repository": "https://github.com/your-org/damat-modules" }New entries start
unverified; the registry operators review and stamp them — an author can never self-verify.
Verification statuses
| Status | Meaning | Install behavior |
|---|---|---|
| verified | Reviewed; source pinned by the registry | installs cleanly |
| unverified | Listed, not reviewed | subject to the consumer policy |
| pending | Review in progress | subject to the consumer policy |
| rejected / revoked | Blocked by the registry | always refused |
Consumers gate installs with DAMAT_MODULE_VERIFY (off / warn / require). Path and git sources bypass the registry and need an explicit --allow-unverified.
Run your own registry
Nothing about the index is special to Damat Registry — host the JSON anywhere and point DAMAT_MODULE_REGISTRY at it. A private registry for your organization is a single static file:
Full write-up: Publishing modules & running a registry in the docs.