🔷 ssot-contracts
Canonical schemas, templates, manifests, and generated contract metadata for SSOT.
ssot-contracts is the canonical artifact package for SSOT.
It ships machine-readable schemas, registry templates, upstream-derived packaged ADR/spec manifests, and generated Python metadata that other SSOT packages consume at runtime.
What this package owns
- JSON Schemas for registries, reports, graph exports, and snapshots
- Packaged registry templates such as
registry.minimal.jsonandregistry.full.json - Immutable packaged ADR and spec document manifests derived from the upstream
.ssot/registry.jsonssot-origininventory - Generated Python contract metadata used by CLI and TUI packages
When to use this package
Use ssot-contracts when you want:
- packaged schemas and templates without the full CLI
- a stable place to load SSOT manifests and contract metadata from Python
- the artifact layer consumed by ssot-registry, ssot-cli, ssot-conformance, ssot-tui, ssot-views, and ssot-codegen
Use another package when you want:
- ssot-registry for core runtime APIs and registry mutation/validation flows
- ssot-cli for command-line workflows
- ssot-tui for terminal UI browsing
- ssot-views for reusable derived report and graph builders
- ssot-codegen to regenerate contract-side metadata outputs
Install
python -m pip install ssot-contracts
For local development from this repository:
python -m pip install -e pkgs/ssot-contracts
Shipped artifacts
This package currently includes:
- schemas under
ssot_contracts.schema - registry templates under
ssot_contracts.templates - packaged ADR manifests and JSON files under
ssot_contracts.templates.adr - packaged spec manifests and JSON files under
ssot_contracts.templates.specs - generated Python metadata under
ssot_contracts.generated.python
Representative schemas include:
registry.schema.jsonvalidation.report.schema.jsoncertification.report.schema.jsongraph.export.schema.jsonboundary.snapshot.schema.jsonrelease.snapshot.schema.jsonpublished.snapshot.schema.json
Programmatic usage
Load contract metadata:
from ssot_contracts import CONTRACT_DATA
print(CONTRACT_DATA["schema_version"])
print(CONTRACT_DATA["output_formats"])
Load a packaged document manifest:
from ssot_contracts import load_document_manifest
adr_manifest = load_document_manifest("adr")
spec_manifest = load_document_manifest("spec")
print(adr_manifest[0]["id"])
print(spec_manifest[0]["id"])
List available schema files or load one as text:
from ssot_contracts import list_schema_names, load_schema_text
print(list_schema_names())
schema_text = load_schema_text("registry.schema.json")
Read packaged document bodies:
from ssot_contracts import read_packaged_document_text
text = read_packaged_document_text("adr", "ADR-0600-canonical-json-registry.yaml")
print(text.splitlines()[0])
Generated metadata
Generated Python modules currently include:
generated.python.cli_metadatagenerated.python.tui_metadatagenerated.python.idsgenerated.python.enums
These modules provide shared constants such as output formats, entity section labels, and identifier prefixes. They are intended to be imported by other SSOT packages rather than edited by hand.
Package relationships
- Package type: artifact and contract package
- Depends on: standard library only, plus
tomlion Python earlier than 3.11 - Consumed by: ssot-registry, ssot-cli, ssot-conformance, ssot-tui, ssot-views, ssot-codegen
If you need the canonical packaged schemas and manifests, install this package. It is the lowest-level reusable contract layer in the workspace.
Metadata
Release files for ssot-contracts 0.2.26
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| ssot_contracts-0.2.26.tar.gz | 64.0 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ssot_contracts-0.2.26-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 174.0 kB
Release files / ssot_contracts-0.2.26.tar.gz
| Download URL | ssot_contracts-0.2.26.tar.gz |
|---|---|
| Size | 64.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8e4d9aaace88e8468036f1b2f613cf948706dfee7f854fe2fe159a936e26163d
|
|
BLAKE2b-256 checksum How to use checksums |
b6b20ce49c37483e5c126927c170c9446643dec6d66030511576c9da476c615e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / ssot_contracts-0.2.26-py3-none-any.whl
| Download URL | ssot_contracts-0.2.26-py3-none-any.whl |
|---|---|
| Size | 110.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ef57a6c55a33474451091fcd2877ea2e05b8f04882d476bf4477f8e3721287c
|
|
BLAKE2b-256 checksum How to use checksums |
f729db535e9b8d5877057becd8257319e21f8207f350a2379982001ac0744f28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for ssot-contracts 0.2.26
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.