Manifests
A manifest is a named, typed, versioned record that holds structured JSON data, optionally with a JSON Schema the data must satisfy. Use manifests for information that has to be exact rather than approximately retrieved: escalation thresholds, a classification taxonomy, a price list, a register of risks, controls or suppliers, configuration an agent should follow.
You manage manifests under Platform → Manifests.
What uses manifests
| Consumer | How |
|---|---|
| Agents | A function that reads manifests (for example by name or by search) gives an agent the exact values on demand. Manifest lookups are available to developers as platform operations and tools: get_manifest, get_manifest_by_name, search_manifests, list_manifests |
| Knowledge bases | Add Manifest on a knowledge base writes the manifest out as text and ingests it, so it is searchable next to your documents. See Knowledge Bases |
| Dashboards | The manifests_by_type internal query turns every manifest of one type into a table row (its data plus identity fields), and manifest_counts counts manifests by type or by a field's value. See Data Sources |
| Marketplace | Published stacks can include manifests, which are installed into your project with the rest of the stack |
Because many records of one type share a shape, a common pattern is one manifest per record (one per risk, control or supplier), all with the same Type and schema, read together through manifests_by_type.
Fields
| Field | Notes |
|---|---|
| Manifest Name | Required. Agents and the API can look a manifest up by name |
| Type | A category of your choosing, such as policy, taxonomy or supplier. Used for filtering, search and the manifest internal queries |
| Version | Free text, for example 2.1 |
| Path | Folder in the manifest library tree. Set by dragging the manifest between folders, or by typing it |
| Documentation Path | A link to related documentation |
| Description | What the manifest contains |
| Purpose | What it is for and who relies on it |
| Parameters (JSON) | A JSON object of settings that go with the data |
| Data (JSON) | The content itself, as a JSON object |
| Manifest Schema (JSON) | Optional JSON Schema the data must satisfy |
| Tags (comma-separated) | For organising and search |
| Variables | Free text |
| Icon (Base64) | An encoded icon image |
| Examples | Free text examples of use |
A manifest also has a title field that can be set through the API.
Schema enforcement
When a manifest has a Manifest Schema, its Data must satisfy it. Creating or updating a manifest whose data does not satisfy its schema (or whose schema is not valid JSON Schema) is refused, and the API response lists each failing path. A manifest without a schema accepts any data.
The Definition tab shows the result: Data against its schema says whether the data satisfies its schema or does not match its schema, with a table of each problem's location. Findings also flag a manifest with no schema, an unreadable schema, a schema with no data, and data that fails its schema (possible for manifests saved before enforcement).
How updates combine
An update merges Data, Parameters and Manifest Schema into what is stored, one top-level key at a time: keys you send replace the stored ones, and keys you do not send are kept. This protects a manifest when a caller updates one field. It also means deleting a top-level key in the editor does not remove it; remove it through the API with replace_json=true, which replaces the whole object.
Every change is recorded as a revision.
The manifest page
Selecting a manifest opens four tabs:
| Tab | Shows |
|---|---|
| Overview | A summary of the manifest |
| Definition | Schema validation, Findings and Identity (type, version, path, whether a schema and data are present) |
| Consumers | The knowledge bases that have ingested this manifest, with how many documents each holds |
| Details | The editable fields, with Delete, Cancel, Copy and Update |
Copy creates a duplicate under a new Manifest Name.
Platform manifests
Manifests published by the platform appear in your list alongside your own and can be read but not edited. A project that has opted out of platform-managed resources does not see them. When an agent looks a manifest up by name, your project's own manifest takes precedence over a platform manifest of the same name. Platform administrators publish manifests as templates, and Marketplace stacks can install manifests into your project; see Templates.
Through the API
Manifests are available under /manifests (including GET /manifests/by-name/{name}, POST /manifests/search, GET /manifests/{id}/validation and /consumers) and through the platform tools listed above plus create_manifest, update_manifest, delete_manifest and get_manifest_schema.
Example
A manifest of escalation rules, with a schema that keeps the thresholds numeric:
{
"name": "support-escalation-rules",
"type": "policy",
"version": "2.1",
"data": {
"refund_manager_threshold_nzd": 500,
"senior_transfer_sentiment": "angry",
"first_response_minutes": 2
},
"manifest_schema": {
"type": "object",
"required": ["refund_manager_threshold_nzd", "first_response_minutes"],
"properties": {
"refund_manager_threshold_nzd": { "type": "number" },
"senior_transfer_sentiment": { "type": "string" },
"first_response_minutes": { "type": "integer" }
}
}
}
Related
- Choosing How to Add Knowledge: manifest versus knowledge base, memory or data source
- Knowledge Bases
- Data Sources
- Elements