Skip to main content

Registry

The registry is the source of truth for all definitions — Concepts, Primitives, Conditions, and Features. Definitions are immutable once registered. Updates require a new version. The registry enforces uniqueness at (id, version).


Register Definition​

POST /registry/definitions

Stores a validated definition in the registry under its namespace. Returns HTTP 409 if the same id+version already exists. Definitions are immutable — never mutate an existing version.

Request — RegisterRequest​

FieldTypeRequiredDescription
definitiondictRequiredA Concept, Primitive, or Condition. Should have passed /definitions/validate.
namespacestrRequired'personal' | 'team' | 'org' | 'global'. Must match the id prefix.
metadatadictOptional{ description, tags, owner }.

Response Codes​

StatusDescription
200DefinitionResponse: { id, version, status, concept_hash, semantic_hash }.
400Validation error.
401Unauthorised.
409Already exists at this id + version. Create a new version instead.

List Definitions​

GET /registry/definitions

Returns a paginated list of definitions. Filter by type, namespace, or tags. For semantic free-text search, use GET /registry/search.

Query Parameters​

FieldTypeRequiredDescription
typestrOptional'concept' | 'primitive' | 'condition' | 'feature'.
namespacestrOptional'personal' | 'team' | 'org' | 'global'.
tagsstrOptionalComma-separated tag filter.
limitintOptionalDefault 20, max 100.
cursorstrOptionalPagination cursor.

Response Codes​

StatusDescription
200Paginated list with items[], has_more, next_cursor, total_count.
401Unauthorised.

Search Definitions​

GET /registry/search

Free-text and structured semantic search across registry definitions. Searches description, meaning, subject, intent, tags, and semantic_type fields. Results ranked by relevance.

Query Parameters​

FieldTypeRequiredDescription
querystrOptionalFree-text search.
typestrOptional'concept' | 'primitive' | 'condition' | 'feature'.
namespacestrOptional'personal' | 'team' | 'org' | 'global'.
limitintOptionalDefault 20, max 100.
cursorstrOptionalPagination cursor.

Response Codes​

StatusDescription
200Paginated SearchResult.
401Unauthorised.

List Definition Versions​

GET /registry/definitions/{id}/versions

Returns version history for a definition, newest-first. Includes deprecation status per version. Use to discover the current version before constructing execute or evaluate calls.

Response Codes​

StatusDescription
200VersionListResult: { id, versions: VersionSummary[] }.
401Unauthorised.
404Not found.

Get Definition Lineage​

GET /registry/definitions/{id}/lineage

Returns the full dependency graph of a definition — both what it depends on (dependencies) and what depends on it (dependents). Use for impact analysis before modifying shared definitions.

Query Parameters​

FieldTypeRequiredDescription
idstrRequired (path)Fully qualified definition id.
versionstrRequired (query)Explicit version.

Response Codes​

StatusDescription
200LineageResult: { id, version, dependencies[], dependents[] }.
401Unauthorised.
404Not found.

Semantic Diff​

GET /registry/definitions/{id}/semantic-diff

Returns a meaning-level diff between two versions. Equivalence status drives governance decisions: equivalent = safe to promote; compatible = review recommended; breaking = governance required; unknown = treat as breaking.

Query Parameters​

FieldTypeRequiredDescription
idstrRequired (path)Fully qualified definition id.
version_fromstrRequired (query)Baseline version.
version_tostrRequired (query)Target version.

Response Codes​

StatusDescription
200SemanticDiffResult: { equivalence_status, changes, affected_downstream, summary }.
401Unauthorised.
404One or both versions not found.

Deprecate Definition​

POST /registry/definitions/{id}/deprecate

Marks a version as deprecated. Existing references continue to work. New registrations referencing this version receive a warning. Reversible by an admin.

Request Body​

FieldTypeRequiredDescription
versionstrRequiredVersion to deprecate.
replacement_versionstrOptionalRecommended replacement.
reasonstrOptionalHuman-readable reason.

Response Codes​

StatusDescription
200Deprecation confirmed.
401Unauthorised.
404Not found.

Promote Definition​

POST /registry/definitions/{id}/promote

Promotes a definition to a higher namespace. Path: personal → team → org → global. Promoting to global requires elevated API key permissions. Run semantic-diff first to check for breaking changes.

Request Body​

FieldTypeRequiredDescription
versionstrRequiredVersion to promote.
from_namespacestrRequired'personal' | 'team' | 'org'. Source namespace.
to_namespacestrRequired'team' | 'org' | 'global'. Target namespace.

Response Codes​

StatusDescription
200Promotion confirmed.
401Unauthorised.
403Insufficient permissions for target namespace.
404Not found.

Register Feature​

POST /registry/features

Registers a Feature as a first-class entity. The compiler computes meaning_hash on registration and scans for duplicates. on_duplicate controls behaviour on collision: 'warn' (default) registers and lists duplicates, 'reject' returns HTTP 409, 'merge' returns the existing feature with the same meaning_hash.

Response Codes​

StatusDescription
200Feature registered, or existing feature returned on 'merge'.
400Validation error.
401Unauthorised.
409Duplicate found and on_duplicate='reject'.

Get Feature Usages​

GET /registry/features/{id}/usages

Returns every Concept that references this feature. Essential for impact analysis before deprecating or modifying a shared feature.

Response Codes​

StatusDescription
200{ feature_id, feature_version, used_by: [{ concept_id, concept_version, layer }] }.
401Unauthorised.
404Feature not found.