Skip to main content

Projects

Generated from apiome-rest/openapi.yaml (API version 1.204.1) — do not edit by hand. How to authenticate is on the REST API reference.

Tag: projects · 11 operations

GET /v1/projects/domains​

List Project Domain Categories Global

Allowlist of domainCategory ids for project metadata.

Public read (CLI prefetch uses no credentials). Register before /{tenant_slug} so /v1/projects/domains is not captured as a tenant slug.

Operation id: list_project_domain_categories_global_v1_projects_domains_get

Responses

StatusDescriptionBody
200Successful response for list project domain categories global.application/json map of array of string

GET /v1/projects/{tenant_slug}​

List Projects

List all projects for a tenant.

Supports authentication via:

  • JWT token in Authorization header (Bearer token)
  • API key in X-API-Key header

Args: tenant_slug: The tenant slug include_deleted: Include rows with deleted_at set (for trash / restore flows). auth_data: Authentication data (injected by dependency)

Returns: List of projects for the tenant

Operation id: list_projects_v1_projects__tenant_slug__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
include_deletedquerybooleannoWhen true, include soft-deleted projects (active projects listed first).
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list projects.application/json array of ProjectSchema
422Validation Errorapplication/json HTTPValidationError

POST /v1/projects/{tenant_slug}​

Create Project

Create a new project.

Supports authentication via JWT token or API key. When using JWT, the creator_id field will be set to the authenticated user.

Args: tenant_slug: The tenant slug request: Project creation data auth_data: Authentication data (injected by dependency)

Returns: The created project

Operation id: create_project_v1_projects__tenant_slug__post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for create project.

Responses

StatusDescriptionBody
200Successful response for create project.application/json ProjectSchema
422Validation Errorapplication/json HTTPValidationError

GET /v1/projects/{tenant_slug}/by-slug/{project_slug}​

Get Project By Slug

Get a specific project by slug.

Supports authentication via JWT token or API key.

Args: tenant_slug: The tenant slug project_slug: The project slug auth_data: Authentication data (injected by dependency)

Returns: The project details

Operation id: get_project_by_slug_v1_projects__tenant_slug__by_slug__project_slug__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_slugpathstringyesURL-safe project slug within the tenant.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get project by slug.application/json ProjectSchema
422Validation Errorapplication/json HTTPValidationError

GET /v1/projects/{tenant_slug}/domains​

List Project Domain Categories For Tenant

Same allowlist under the tenant-scoped URL shape expected by the CLI.

Must be registered before /{tenant_slug}/{project_id} so the final segment domains is not interpreted as a project UUID.

Operation id: list_project_domain_categories_for_tenant_v1_projects__tenant_slug__domains_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.

Responses

StatusDescriptionBody
200Successful response for list project domain categories for tenant.application/json map of array of string
422Validation Errorapplication/json HTTPValidationError

GET /v1/projects/{tenant_slug}/{project_id}​

Get Project

Get a specific project by ID.

Supports authentication via JWT token or API key.

Args: tenant_slug: The tenant slug project_id: The project ID auth_data: Authentication data (injected by dependency)

Returns: The project details

Operation id: get_project_v1_projects__tenant_slug___project_id__get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_idpathstringyesProject identifier that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for get project.application/json ProjectSchema
422Validation Errorapplication/json HTTPValidationError

PUT /v1/projects/{tenant_slug}/{project_id}​

Update Project

Update an existing project.

Supports authentication via JWT token or API key.

Args: tenant_slug: The tenant slug project_id: The project ID request: Project update data auth_data: Authentication data (injected by dependency)

Returns: The updated project

Operation id: update_project_v1_projects__tenant_slug___project_id__put

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_idpathstringyesProject identifier that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Request body (required)

Request body for update project.

Responses

StatusDescriptionBody
200Successful response for update project.application/json ProjectSchema
422Validation Errorapplication/json HTTPValidationError

DELETE /v1/projects/{tenant_slug}/{project_id}​

Delete Project

Delete a project (soft delete).

Supports authentication via JWT token or API key.

Args: tenant_slug: The tenant slug project_id: The project ID auth_data: Authentication data (injected by dependency)

Returns: Success message

Operation id: delete_project_v1_projects__tenant_slug___project_id__delete

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_idpathstringyesProject identifier that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for delete project.application/json map of string
422Validation Errorapplication/json HTTPValidationError

GET /v1/projects/{tenant_slug}/{project_id}/conversions​

List the conversions that produced a Project

Return the conversion-provenance rows that produced this Project, newest first (CPDO-3.3).

The converted-project side of the conversion history: each entry links a target revision of this Project back to the catalog item + source revision it was converted from, with the fidelity outcome, the content-addressed evidence snapshot id, and whether that snapshot is replayable. Empty for projects that were never a conversion target. Requires authentication + tenant scoping only, like every other project read.

Args: tenant_slug: The tenant slug. project_id: The (target) project ID. auth_data: Authentication data (injected by dependency).

Returns: The :class:~app.models.ProjectConversionHistoryResponse, newest first.

Operation id: get_project_conversion_history_v1_projects__tenant_slug___project_id__conversions_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_idpathstringyesProject identifier that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for list the conversions that produced a project.application/json ProjectConversionHistoryResponse
422Validation Errorapplication/json HTTPValidationError

GET /v1/projects/{tenant_slug}/{project_id}/conversions/{provenance_id}/evidence​

Page through the stored evidence snapshot of one conversion of this Project

Return one page of the exact evidence graph a conversion of this Project was approved with.

The project-side twin of the catalog evidence read, and deliberately reachable even when the source catalog item has been deleted (source_project_id is SET NULL on the ledger): the converted artifact must keep its approved evidence readable regardless of what happened to the source. Served from the content-addressed snapshot store (CPDO-3.3, V215), never rebuilt; an unservable snapshot degrades to an explicit HTTP 200 state, never an error.

Carries source-native coordinates, so it is gated on the same imports:view permission as the catalog-side reads, checked after the project lookup so a cross-tenant id 404s rather than confirming its existence with a 403. A provenance row that did not target this Project 404s.

Args: tenant_slug: The tenant slug. project_id: The (target) project ID. provenance_id: The conversion_provenance row whose snapshot to page. scope: Restrict the page to one edge scope; omit to page every scope. cursor: Opaque page cursor. limit: Maximum edges per page. auth_data: Authentication data (injected by dependency).

Returns: The :class:~app.models.ConversionEvidenceResponse — snapshot state, summary, and one page.

Raises: HTTPException: 400 for an unknown scope, 404 for an unknown project/provenance row, 422 for a malformed cursor.

Operation id: get_project_conversion_evidence_v1_projects__tenant_slug___project_id__conversions__provenance_id__evidence_get

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_idpathstringyesProject identifier that scopes the request.
provenance_idpathstringyesPath parameter identifying the provenance id segment.
scopequerystring or nullnoRestrict the page to one edge scope: checklist / construct / loss / analysis.
cursorquerystring or nullnoOpaque cursor from a previous page; omit to start at the beginning.
limitqueryintegernoMaximum edges per page; clamped server-side.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for page through the stored evidence snapshot of one conversion of this project.application/json ConversionEvidenceResponse
422Validation Errorapplication/json HTTPValidationError

POST /v1/projects/{tenant_slug}/{project_id}/restore​

Restore Project

Restore a soft-deleted project (clears deleted_at, sets enabled).

Operation id: restore_project_v1_projects__tenant_slug___project_id__restore_post

Parameters

NameInTypeRequiredDescription
tenant_slugpathstringyesURL-safe tenant slug that scopes the request.
project_idpathstringyesProject identifier that scopes the request.
authorizationheaderstring or nullnoJWT bearer token for authenticated access (Authorization: Bearer <token>).
X-API-Keyheaderstring or nullnoTenant-scoped API key used as an alternative to JWT bearer authentication.

Responses

StatusDescriptionBody
200Successful response for restore project.application/json ProjectSchema
422Validation Errorapplication/json HTTPValidationError

Schemas used​

ConversionEvidenceResponse​

One page of a historical conversion's stored evidence graph (CPDO-3.3).

Serves the exact approved manifest from the content-addressed snapshot store — never a rebuild — so the evidence shown is the evidence the conversion was committed with, regardless of how the source or the converter changed since. summary/page are null exactly when snapshot.status is unavailable; degrade is HTTP 200, never a 5xx.

PropertyTypeRequiredDescription
provenanceIdstringyesThe conversion_provenance row served.
itemIdstring or nullnoCatalog item id, on the catalog surface.
projectIdstring or nullnoTarget Project id, on the project surface.
manifestHashstring or nullnoContent-addressed snapshot id, or null.
sourceHashstring or nullnoDigest of the source text converted, or null.
snapshotConversionSnapshotStateyesSnapshot availability + degrade reason.
summaryobject or nullnoThe bounded manifest summary of the stored snapshot; null when unavailable.
pageobject or nullnoOne page of the stored graph's edges + nodes; null when unavailable.

HTTPValidationError​

Validation error response emitted when request data fails schema checks.

PropertyTypeRequiredDescription
detailarray of ValidationErrornoDetail.

ProjectConversionHistoryResponse​

GET /v1/projects/{tenant_slug}/{project_id}/conversions — the conversions that produced a Project, newest first (CPDO-3.3). Empty for projects that were never a conversion target.

PropertyTypeRequiredDescription
projectIdstringyesThe target Project id.
conversionsarray of ConversionProvenanceEntrynoProvenance rows targeting this Project, newest first.

ProjectCreateRequest​

Request model for creating a project.

PropertyTypeRequiredDescription
namestringyesHuman-readable name.
descriptionstring or nullnoFree-text description.
slugstringyesURL-safe identifier.
metadataobject or nullnoAdditional JSON metadata bag.

ProjectSchema​

ProjectSchema schema.

PropertyTypeRequiredDescription
idstringyesStable resource identifier.
tenant_idstringyesTenant that owns the resource.
creator_idstring or nullnoCreator ID.
namestringyesHuman-readable name.
descriptionstring or nullnoFree-text description.
slugstringyesURL-safe identifier.
enabledbooleannoWhether the resource is active.
deleted_atstring (date-time) or string or nullnoDeleted At timestamp (ISO 8601).
metadataobject or nullnoAdditional JSON metadata bag.
changeReportTemplateVersionIdstring or nullnoChange Report Template Version ID.
qualityScoreinteger or nullnoQuality Score.
qualityGradestring or nullnoQuality Grade.
versionsCountintegernoNumber of versions.
publishablebooleannoPublishable.
identityGroupIdstring or nullnoIdentity Group ID.
relatedArtifactsarray of RelatedArtifactRefnoRelated Artifacts.
creator_namestring or nullnoCreator Name.
creator_emailstring or nullnoCreator Email.
created_atstring (date-time) or string or nullnoCreation timestamp (ISO 8601).
updated_atstring (date-time) or string or nullnoLast update timestamp (ISO 8601).

ProjectUpdateRequest​

Request model for updating a project.

PropertyTypeRequiredDescription
namestring or nullnoHuman-readable name.
descriptionstring or nullnoFree-text description.
slugstring or nullnoURL-safe identifier.
enabledboolean or nullnoWhether the resource is active.
metadataobject or nullnoAdditional JSON metadata bag.
changeReportTemplateVersionIdstring or nullnoChange Report Template Version ID.