Directories
¶
| Path | Synopsis |
|---|---|
|
Package api is the thin driving adapter between the generated strict HTTP server (package apigen) and the engine.
|
Package api is the thin driving adapter between the generated strict HTTP server (package apigen) and the engine. |
|
gen
Package apigen provides primitives to interact with the openapi HTTP API.
|
Package apigen provides primitives to interact with the openapi HTTP API. |
|
Package auth is the identity port: who is making this request, and may they do what they are asking.
|
Package auth is the identity port: who is making this request, and may they do what they are asking. |
|
access
Package access is the Authorizer for an access list (docs/adr/0011, TAXONOMY.md D27): four roles, each a bundle of permissions, and teams that scope a contributor's work.
|
Package access is the Authorizer for an access list (docs/adr/0011, TAXONOMY.md D27): four roles, each a bundle of permissions, and teams that scope a contributor's work. |
|
proxy
Package proxy is the Authenticator for a deployment behind an authenticating reverse proxy (oauth2-proxy, Pomerium, Authelia, an ingress with OIDC): the proxy verifies the person and forwards their identity in a header, and this adapter trusts that header.
|
Package proxy is the Authenticator for a deployment behind an authenticating reverse proxy (oauth2-proxy, Pomerium, Authelia, an ingress with OIDC): the proxy verifies the person and forwards their identity in a header, and this adapter trusts that header. |
|
roles
Package roles is a role-based Authorizer: principals in a write role may read and write, principals in a read role may read, everyone else is refused.
|
Package roles is a role-based Authorizer: principals in a write role may read and write, principals in a read role may read, everyone else is refused. |
|
Package codec is the port between a manifest's text and its document.
|
Package codec is the port between a manifest's text and its document. |
|
conformance
Package conformance is the suite every codec.Codec adapter must pass: what the engine relies on, written once, run against each syntax.
|
Package conformance is the suite every codec.Codec adapter must pass: what the engine relies on, written once, run against each syntax. |
|
json
Package json is the JSON codec.
|
Package json is the JSON codec. |
|
yaml
Package yaml is the YAML codec: yaml.v3 to read, yamlfmt to write, so a file saved by Cartograph keeps the two-space indentation the vaults are written in by hand.
|
Package yaml is the YAML codec: yaml.v3 to read, yamlfmt to write, so a file saved by Cartograph keeps the two-space indentation the vaults are written in by hand. |
|
Package config is the one place the process reads its environment.
|
Package config is the one place the process reads its environment. |
|
Package contract embeds the JSON Schema files from contract/schemas so the compiled binary is self-contained.
|
Package contract embeds the JSON Schema files from contract/schemas so the compiled binary is self-contained. |
|
Package crdt is the port between the engine and the replicated data type under every shared draft.
|
Package crdt is the port between the engine and the replicated data type under every shared draft. |
|
automerge
Package automerge is the crdt port's adapter: Automerge, compiled to WebAssembly from the crate in crdt/ and run on wazero, so the engine stays pure Go (CGO_ENABLED=0) and speaks the same document format and sync protocol as every interface using the stock Automerge libraries (docs/adr/0007).
|
Package automerge is the crdt port's adapter: Automerge, compiled to WebAssembly from the crate in crdt/ and run on wazero, so the engine stays pure Go (CGO_ENABLED=0) and speaks the same document format and sync protocol as every interface using the stock Automerge libraries (docs/adr/0007). |
|
conformance
Package conformance is the suite every adapter of the crdt port must pass.
|
Package conformance is the suite every adapter of the crdt port must pass. |
|
Package engine is the kind-agnostic manifest engine: it validates manifests against their schema, references and kind rules, stores immutable versions, computes diffs, and indexes cross-manifest references.
|
Package engine is the kind-agnostic manifest engine: it validates manifests against their schema, references and kind rules, stores immutable versions, computes diffs, and indexes cross-manifest references. |
|
Package fanout is the port that carries a small message from one replica of the engine to every other (docs/adr/0008).
|
Package fanout is the port that carries a small message from one replica of the engine to every other (docs/adr/0008). |
|
conformance
Package conformance is the suite every fanout.Bus adapter must pass.
|
Package conformance is the suite every fanout.Bus adapter must pass. |
|
memory
Package memory is the in-process fanout.Bus: every Bus made from one Hub delivers to every subscriber of that Hub.
|
Package memory is the in-process fanout.Bus: every Bus made from one Hub delivers to every subscriber of that Hub. |
|
postgres
Package postgres is the fanout.Bus over Postgres LISTEN/NOTIFY, so a deployment whose state is in Postgres needs no second service for fan-out (docs/adr/0008).
|
Package postgres is the fanout.Bus over Postgres LISTEN/NOTIFY, so a deployment whose state is in Postgres needs no second service for fan-out (docs/adr/0008). |
|
Package identity is who a request runs as and what they ask to do, without HTTP: the part of the identity port (docs/ARCHITECTURE.md) the engine may know.
|
Package identity is who a request runs as and what they ask to do, without HTTP: the part of the identity port (docs/ARCHITECTURE.md) the engine may know. |
|
Package kinds is the registry of every manifest kind: its schema file and its rules function, if it has one beyond schema and generic reference validation.
|
Package kinds is the registry of every manifest kind: its schema file and its rules function, if it has one beyond schema and generic reference validation. |
|
goal
Package goal implements the Goal kind's rules beyond its JSON Schema: parent presence by level (a goal has no parent; an objective requires a goal as parent; an outcome requires an objective goal as parent), unique key result ids within the goal, the key result unit-by-kind rule, and the objective must-be-qualitative rule.
|
Package goal implements the Goal kind's rules beyond its JSON Schema: parent presence by level (a goal has no parent; an objective requires a goal as parent; an outcome requires an objective goal as parent), unique key result ids within the goal, the key result unit-by-kind rule, and the objective must-be-qualitative rule. |
|
kit
Package kit holds the small, dependency-free types that both the engine and the per-kind rule packages need.
|
Package kit holds the small, dependency-free types that both the engine and the per-kind rule packages need. |
|
kpireadings
Package kpireadings validates a KPI's series beyond its JSON Schema.
|
Package kpireadings validates a KPI's series beyond its JSON Schema. |
|
programme
Package programme implements the Programme kind's rules beyond its JSON Schema: the risk list a project and a programme share, checked here without phases, because a programme holds no timeline, and the gap citations they also share.
|
Package programme implements the Programme kind's rules beyond its JSON Schema: the risk list a project and a programme share, checked here without phases, because a programme holds no timeline, and the gap citations they also share. |
|
project
Package project implements the Project kind's rules beyond its JSON Schema: unique key result ids within each objective, the key result unit-by-kind rule, the objective must-be-qualitative rule, unique deliverable ids, unique success criteria ids, a success criterion's derivedFrom must name exactly one key result or deliverable that actually exists in this project, at most one funding line per currency, and a risk's escalate.reason is required when escalate.flag is true; every local reference resolves to an item this project actually has; and a dependency edge belongs to the dependency type and lands by a phase the timeline actually has.
|
Package project implements the Project kind's rules beyond its JSON Schema: unique key result ids within each objective, the key result unit-by-kind rule, the objective must-be-qualitative rule, unique deliverable ids, unique success criteria ids, a success criterion's derivedFrom must name exactly one key result or deliverable that actually exists in this project, at most one funding line per currency, and a risk's escalate.reason is required when escalate.flag is true; every local reference resolves to an item this project actually has; and a dependency edge belongs to the dependency type and lands by a phase the timeline actually has. |
|
segment
Package segment validates the slice tree beyond its JSON Schema.
|
Package segment validates the slice tree beyond its JSON Schema. |
|
settings
Package settings implements the Settings kind's one rule beyond its JSON Schema: it is the only singleton kind, so its metadata.id must always be "default".
|
Package settings implements the Settings kind's one rule beyond its JSON Schema: it is the only singleton kind, so its metadata.id must always be "default". |
|
stakeholdermap
Package stakeholdermap implements the StakeholderMap kind's rules beyond its JSON Schema: a map is scoped to a piece of work rather than to any manifest at all, and it scores each resource once.
|
Package stakeholdermap implements the StakeholderMap kind's rules beyond its JSON Schema: a map is scoped to a piece of work rather than to any manifest at all, and it scores each resource once. |
|
Package mcp is the MCP front door (docs/adr/0016): agents read, draft and propose through the same engine as people, with their person's authority and no more.
|
Package mcp is the MCP front door (docs/adr/0016): agents read, draft and propose through the same engine as people, with their person's authority and no more. |
|
Package oauth is Cartograph's own OAuth 2.1 authorization server for agents (docs/adr/0016): the browser flow an MCP client starts, with no client registered anywhere beforehand.
|
Package oauth is Cartograph's own OAuth 2.1 authorization server for agents (docs/adr/0016): the browser flow an MCP client starts, with no client registered anywhere beforehand. |
|
Package printer is the port through which a rendered document becomes a PDF.
|
Package printer is the port through which a rendered document becomes a PDF. |
|
chromium
Package chromium prints HTML to PDF with a headless Chromium.
|
Package chromium prints HTML to PDF with a headless Chromium. |
|
Package reporting is the port for reports: tables over the record for people and BI tools.
|
Package reporting is the port for reports: tables over the record for people and BI tools. |
|
computed
Package computed is the reporting adapter that works out each report when asked, from the engine's reads: no storage of its own, the same on every store (docs/adr/0014).
|
Package computed is the reporting adapter that works out each report when asked, from the engine's reads: no storage of its own, the same on every store (docs/adr/0014). |
|
conformance
Package conformance holds a reporting adapter to another's rows over the same record: every standard report, column for column, row for row, in any order.
|
Package conformance holds a reporting adapter to another's rows over the same record: every standard report, column for column, row for row, in any order. |
|
postgres
Package postgres is the reporting adapter that answers reports from views in the deployment's own Postgres (docs/adr/0014), so SQL and BI tools read the same rows the API serves.
|
Package postgres is the reporting adapter that answers reports from views in the deployment's own Postgres (docs/adr/0014), so SQL and BI tools read the same rows the API serves. |
|
Package sentence composes the sentences Cartograph stores in parts.
|
Package sentence composes the sentences Cartograph stores in parts. |
|
Package spa embeds the web interface's build and serves it at "/", falling back to index.html for any path that is not a real file, so client-side routes resolve on a hard refresh.
|
Package spa embeds the web interface's build and serves it at "/", falling back to index.html for any path that is not a real file, so client-side routes resolve on a hard refresh. |
|
Package store defines the two ports the engine is built against (ManifestStore and OperationalStore) and the record shapes they persist.
|
Package store defines the two ports the engine is built against (ManifestStore and OperationalStore) and the record shapes they persist. |
|
conformance
Package conformance is the one test suite every store adapter must pass, proving the SQLite, in-memory and Postgres adapters are interchangeable behind the store ports.
|
Package conformance is the one test suite every store adapter must pass, proving the SQLite, in-memory and Postgres adapters are interchangeable behind the store ports. |
|
manifestmeta
Package manifestmeta reads metadata.name and metadata.labels out of a manifest's text, for the store adapters that index both beside each version.
|
Package manifestmeta reads metadata.name and metadata.labels out of a manifest's text, for the store adapters that index both beside each version. |
|
memory
Package memory is the in-memory ManifestStore and OperationalStore adapter used by tests and by the conformance suite.
|
Package memory is the in-memory ManifestStore and OperationalStore adapter used by tests and by the conformance suite. |
|
postgres
Package postgres is the Postgres adapter for the ports a stateless deployment needs (docs/adr/0008): store.ManifestStore, store.OperationalStore, store.BundleStore and store.DocStore, over one database through pgx, a pure-Go driver, so the binary stays CGO_ENABLED=0.
|
Package postgres is the Postgres adapter for the ports a stateless deployment needs (docs/adr/0008): store.ManifestStore, store.OperationalStore, store.BundleStore and store.DocStore, over one database through pgx, a pure-Go driver, so the binary stays CGO_ENABLED=0. |
|
sqlite
Package sqlite is the SQLite adapter for both store.ManifestStore and store.OperationalStore, backed by modernc.org/sqlite (a pure-Go driver, no cgo).
|
Package sqlite is the SQLite adapter for both store.ManifestStore and store.OperationalStore, backed by modernc.org/sqlite (a pure-Go driver, no cgo). |
|
vault
Package vault implements store.ManifestStore over a directory tree: files are the source of truth.
|
Package vault implements store.ManifestStore over a directory tree: files are the source of truth. |
|
Package syncserver is the sync socket (GET /api/v1/sync): the automerge-repo network protocol, version 1, over a WebSocket, so the stock @automerge/automerge-repo WebSocket adapter connects to the engine unchanged (docs/adr/0007).
|
Package syncserver is the sync socket (GET /api/v1/sync): the automerge-repo network protocol, version 1, over a WebSocket, so the stock @automerge/automerge-repo WebSocket adapter connects to the engine unchanged (docs/adr/0007). |
|
Package yamlfmt writes YAML the way the vaults are written by hand.
|
Package yamlfmt writes YAML the way the vaults are written by hand. |
Click to show internal directories.
Click to hide internal directories.