Your First Record
This tutorial walks you through creating your first Record in Phaset. You’ll learn both manual and automated approaches, so you can choose what works best for your workflow.
What you’ll accomplish
Section titled “What you’ll accomplish”By the end of this tutorial, you’ll have:
- Created a Record representing a piece of software
- Understood the difference between manual and automated lifecycle management
- (Optional) Set up automated updates via CI/CD
Time required: 10-15 minutes (manual) or 20-30 minutes (with automation)
Prerequisites
Section titled “Prerequisites”- Phaset installed and running
- Access to your Phaset organization
- (For automation) A Git repository with CI/CD capabilities
Step 1: Choose your lifecycle approach
Section titled “Step 1: Choose your lifecycle approach”Records in Phaset can be managed in two ways:
Manual lifecycle — You update Record information directly through the Phaset web interface. Best for getting started, external tools, or SaaS products you don’t control.
Automated lifecycle — Record information lives in a phaset.manifest.json file in your Git repository and updates automatically via CI/CD. Best for custom-developed software where you want automation.
Step 2: Create your first Record
Section titled “Step 2: Create your first Record”-
Log into Phaset and navigate to the Catalog view.
-
Click Create Record.
-
Click Edit Record.
-
Fill in the basic information:
- Name: e.g., “Payment API”
- Description: Brief description of what this software does
- Kind: Select the type (service, library, website, etc.)
- Lifecycle stage: Current stage (production, development, etc.)
-
Add ownership information:
- Owner email: The primary person or team responsible
- Relation: Set to “owner”
-
(Optional) Add additional context:
- Tags: Keywords for easy searching
- Links: Documentation, dashboards, or related URLs
- System/Domain/Group: Organizational structure
-
Click Save or Create.
You’re done! Your first Record is now visible in the Catalog. You can update it anytime by clicking into the Record and editing fields directly.
-
In your Git repository, create a file named
phaset.manifest.jsonat the root level. -
Add the basic Record structure:
{ "spec": { "name": "Payment API", "repo": "myorg/payment-api", "description": "Handles payment processing for our platform", "lifecycleStage": "production", "version": "1.0.0", "kind": "service", "group": "Platform Team", "system": "Payment System", "domain": "Financial Services", "dataSensitivity": "sensitive", "businessCriticality": "high" }, "contacts": [ { "relation": "owner" } ], "tags": [ "payments", "critical" ], "links": [ { "url": "https://docs.example.com/payment-api", "title": "Documentation", "icon": "docs" } ]}-
Commit this file to your repository.
-
Log into Phaset and navigate to the Catalog view.
-
Click Create Record.
-
Click the Integrations tab.
-
Phaset will display:
- Your Organization ID
- The Record ID for this Record
- An API token that is unique for this Record
-
Save these credentials securely—you’ll need them for CI/CD setup.
Next: Set up your CI/CD integration to automatically sync changes. See Step 3 below.
Step 3 (Optional): Automate updates via CI/CD
Section titled “Step 3 (Optional): Automate updates via CI/CD”Once you have a Record in automated lifecycle, set up CI/CD to push updates automatically.
-
In your GitHub repository, go to Settings > Secrets and variables > Actions.
-
Add these secrets:
PHASET_API_KEY: Your API key from Step 2PHASET_ENDPOINT: Your Phaset URL (e.g.,https://phaset.example.com/integration)PHASET_ORG_ID: Your Organization IDPHASET_RECORD_ID: Your Record ID
-
Create
.github/workflows/phaset.ymlin your repository:
name: Update Phaset
on: push: branches: [main]
jobs: phaset: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4
- name: Update Phaset Record uses: phasetdev/phaset-action@v0 with: endpoint: ${{ secrets.PHASET_ENDPOINT }} api-key: ${{ secrets.PHASET_API_KEY }} org-id: ${{ secrets.PHASET_ORG_ID }} record-id: ${{ secrets.PHASET_RECORD_ID }}-
Commit and push this workflow file.
-
The workflow will run automatically on the next push to
main, updating your Record in Phaset.
-
In your GitLab project, go to Settings > CI/CD > Variables.
-
Add these variables:
PHASET_API_KEY: Your API key from Step 2PHASET_ENDPOINT: Your Phaset URLPHASET_ORG_ID: Your Organization IDPHASET_RECORD_ID: Your Record ID
-
Create
.gitlab-ci.ymlin your repository:
image: node:latest
phaset: stage: deploy script: - curl -Lso phaset.sh https://raw.githubusercontent.com/phasetdev/phaset-action-alpha/main/phaset.sh - bash ./phaset.sh --org-id "${PHASET_ORG_ID}" --record-id "${PHASET_RECORD_ID}" --token "${PHASET_API_KEY}" --endpoint "${PHASET_ENDPOINT}" --action "record" only: - main- Commit and push this file. The pipeline will run on the next push to
main.
For other CI/CD platforms, you can use the Phaset shell script directly:
curl -Lso phaset.sh https://raw.githubusercontent.com/phasetdev/phaset-action-alpha/main/phaset.shbash ./phaset.sh \ --org-id "YOUR_ORG_ID" \ --record-id "YOUR_RECORD_ID" \ --token "YOUR_API_KEY" \ --endpoint "YOUR_ENDPOINT" \ --action "record"Configure your CI/CD tool to run this script when changes are pushed to your main branch.
Step 4: Verify your Record
Section titled “Step 4: Verify your Record”-
Navigate to the Catalog in Phaset.
-
Find your newly updated Record (use search or filters if needed).
-
Click on the Record to view its details.
-
Verify that all information appears correctly.
For automated Records, make a small change to phaset.manifest.json, commit it, and verify that Phaset updates automatically after your CI/CD runs.
What’s next?
Section titled “What’s next?”Now that you have your first Record, consider:
Add Standards tracking — Define quality standards and automatically track compliance. See the Standards guide. TODO
Set up Metrics — Configure webhooks to track DORA metrics and engineering productivity. See the Integration guide. TODO
Create more Records — Document your entire software landscape for complete visibility.
Define Baselines — Set organizational standards that Records should meet. See the Baselines guide. TODO
Troubleshooting
Section titled “Troubleshooting”Record not appearing in Catalog?
- Verify your Organization ID is correct
- Check that you saved/created the Record
- For automated Records, ensure the CI/CD job ran successfully
CI/CD integration failing?
- Double-check all secrets/variables are set correctly
- Verify the
phaset.manifest.jsonfile is valid JSON - Check your CI/CD logs for specific error messages
- Ensure Node.js is available in your CI environment
Need help?
Section titled “Need help?”- Review the Integration guide for detailed setup instructions
- Check the Records documentation for all available fields
- See the Architecture page to understand how components work together