Manifest File
The manifest file is a JSON document that contains all the metadata for a Record. It’s always named phaset.manifest.json and lives in your repository alongside your code.
When you update the manifest file and push to Git, your CI/CD pipeline automatically updates the Record in Phaset (given correct integration). This keeps documentation in sync with your actual software—no manual updates, no stale information.
Why Manifest Files Matter
Section titled “Why Manifest Files Matter”Documentation as code. Your Record metadata lives in Git, versioned alongside your software. Review it in pull requests. Track changes over time. Treat documentation like code. Update the manifest, push to Git, and the Record updates automatically. No logging into Phaset. No manual data entry. No forgetting to update documentation. The manifest file is authoritative. When someone asks “what’s the SLA for this service?” the answer is in Git, not someone’s head or a forgotten wiki.
Because manifests are handled like code, changes to Record metadata can go through code review. Want to change ownership? That’s a pull request. Want to mark something deprecated? That’s a pull request with a paper trail.
Manifest File Structure
Section titled “Manifest File Structure”Here’s a complete example showing all available fields:
{ "spec": { "name": "Test Component", "repo": "org/repo", "description": "A test component", "lifecycleStage": "development", "version": "1.0.0", "kind": "service", "group": "<random_id>", "system": "<random_id>", "domain": "<random_id>", "dataSensitivity": "internal", "businessCriticality": "high", "deploymentModel": "public_cloud", "sourcingModel": "custom" }, "baseline": { "id": "abcd1234" }, "contacts": [ { "relation": "owner" } ], "tags": [ "test", "example" ], "slo": [ { "title": "Availability", "description": "Service availability", "type": "availability", "target": "99.9%", "period": 30 } ], "links": [ { "url": "https://example.com", "title": "Example", "icon": "web" } ], "api": [ { "name": "TestAPI", "schemaPath": "/schema/test.json" } ], "dependencies": [ { "target": "abcde12345", "description": "A description here", "criticality": "medium" } ], "metadata": { "createdBy": "test-user" }}Key Sections
Section titled “Key Sections”| Section | Required | Description |
|---|---|---|
| spec | ✓ | Core Record information: identity (name, repo, description, version), organization (domain, system, group), and classification (kind, lifecycle stage, criticality); only name is required |
| baseline | - | Which Baseline ID to use for Standards checks |
| contacts | - | Who owns and maintains this software (up to 3 contacts) |
| tags | - | Searchable labels for filtering and organization (up to 5 tags) |
| slo | - | Service Level Objectives defining reliability targets (up to 20 SLOs) |
| links | - | Related resources like dashboards, documentation, and runbooks (up to 20 links) |
| api | - | API schemas and specifications (up to 20 APIs) |
| dependencies | - | Other Records this software depends on |
| metadata | - | Custom key-value pairs for additional context |
How It Works
Section titled “How It Works”- Create
phaset.manifest.jsonin your repository root - Add Record metadata as JSON
- Commit and push to your main branch
- CI/CD pipeline runs, sends manifest to Phaset via Integration API
- Record updates automatically in Phaset
From that point forward, any changes to the manifest automatically update the Record. Documentation stays in sync with zero manual effort.
Manual vs Automated Records
Section titled “Manual vs Automated Records”Records can be managed two ways:
Manual management: Create and update Records directly in the UI. Good for:
- Getting started quickly
- Managing external/third-party software
- Small teams or simple setups
Automated management: Records update via CI/CD. Good for:
- Keeping documentation in sync with code
- Scaling across many services
- Ensuring consistency through automation
Most organizations will use both: automation for their own services, manual entry for third-party tools and external dependencies.
Getting Started
Section titled “Getting Started”- Create a manifest file in one of your repositories
- Add basic metadata (name, description, repo at minimum)
- Set up CI/CD integration following the Integration Guide
- Push the manifest and verify the Record updates
- Expand gradually to more repositories
Start simple. A manifest with just name, description, and repo is enough to get started. Add more fields as you need them.
Validation and Schema
Section titled “Validation and Schema”The manifest file follows a specific schema. If you provide invalid data, the Integration API will reject it with an error message indicating what’s wrong.
See the Integration API documentation for complete schema details.