Skip to content

Manifest file

In an automated lifecycle, the information displayed in Starlite’s Records are stored in a structured JSON file: This is called the manifest file and is always named starlite.manifest.json. You keep and lifecycle-manage this manifest file in a Git repository.

Here’s an example of a manifest file:

{
"id": "my_record_id",
"organizationId": "my_org_id",
"lifecycleManagement": "manual",
"spec": {
"repo": "someorg/somerepo",
"name": "my-api",
"description": "My API is awesome",
"kind": "api",
"lifecycleStage": "beta",
"version": "1.0.0",
"contacts": [
{
"email": "[email protected]",
"relation": "Service Owner"
}
],
"baseline": {
"id": "your_baseline_id"
},
"team": "ThatAwesomeTeam",
"system": "some-system",
"domain": "some-domain",
"dataSensitivity": "public",
"tags": [
"typescript",
"backend"
]
},
"relations": [
"my-other-service"
],
"support": {
"resolverGroup": "ThatAwesomeTeam"
},
"slo": [
{
"description": "Max latency must be 350ms for the 90th percentile",
"type": "latency",
"implementation": "(sum:trace.aws.lambda.hits.by_http_status{http.status_class:2xx AND service IN (demoservice-user,demoservice-greet)} by {service}.as_count() - sum:trace.aws.lambda.errors.by_http_status{http.status_class:5xx AND service IN (demoservice-user,demoservice-greet)} by {service}.as_count()) / (sum:trace.aws.lambda.hits{service IN (demoservice-user,demoservice-greet)} by {service}.as_count())",
"target": "350ms",
"period": 30
}
],
"api": [
{
"name": "My API",
"schemaPath": "./api/schema.yml"
}
],
"metadata": {},
"links": [
{
"url": "https://my-confluence.atlassian.net/wiki/spaces/DEV/pages/123456789/",
"title": "Confluence documentation",
"icon": "documentation"
}
]
}