Get a health report for a project.
GET <your-unleash-url>/api/admin/projects/:projectId/health-report
Authorization
name: Authorizationtype: apiKeyin: header
This endpoint returns a health report for the specified project. This data is used for the technical debt dashboard
Request
Path Parameters
- projectId string required
- 200
- 401
- 403
- 404
healthReportSchema
- application/json
- Schema
- Example (from schema)
Schema
- version integer required
The project overview version.
- name string required
The project's name
- description string nullable
The project's description
- defaultStickiness string required
A default stickiness for the project affecting the default stickiness value for variants and Gradual Rollout strategy
- mode string required
Possible values: [
open
,protected
,private
]The project's collaboration mode. Determines whether non-project members can submit change requests or not.
- featureLimit number nullable
A limit on the number of features allowed in the project. Null if no limit.
- members integer required
The number of users/members in the project.
- health integer required
The overall health rating of the project.
environments object[]required
features object[]required
- updatedAt date-time nullable
When the project was last updated.
- createdAt date-time nullable
When the project was last updated.
- favorite boolean
Indicates if the project has been marked as a favorite by the current user requesting the project health overview.
stats object
featureNaming object
- potentiallyStaleCount number required
The number of potentially stale feature toggles.
- activeCount number required
The number of active feature toggles.
- staleCount number required
The number of stale feature toggles.
{
"version": 1,
"name": "enterprisegrowth",
"description": "The project for all things enterprisegrowth",
"defaultStickiness": "userId",
"mode": "open",
"featureLimit": 100,
"members": 5,
"health": 95,
"environments": [
{
"environment": "development",
"changeRequestsEnabled": true,
"defaultStrategy": {
"name": "flexibleRollout",
"title": "Gradual Rollout 25-Prod",
"disabled": false,
"sortOrder": 9999,
"constraints": [
{
"values": [
"1",
"2"
],
"inverted": false,
"operator": "IN",
"contextName": "appName",
"caseInsensitive": false
}
],
"variants": [
{
"name": "blue_group",
"weight": 0,
"weightType": "fix",
"stickiness": "custom.context.field",
"payload": {
"type": "json",
"value": "{\"color\": \"red\"}"
}
}
],
"parameters": {
"groupId": "some_new",
"rollout": "25",
"stickiness": "sessionId"
},
"segments": [
1,
2
]
}
}
],
"features": [
{
"name": "disable-comments",
"type": "kill-switch",
"description": "Controls disabling of the comments section in case of an incident",
"archived": true,
"project": "dx-squad",
"enabled": true,
"stale": false,
"favorite": true,
"impressionData": false,
"createdAt": "2023-01-28T15:21:39.975Z",
"archivedAt": "2023-01-29T15:21:39.975Z",
"environments": [
{
"name": "my-dev-env",
"featureName": "disable-comments",
"environment": "development",
"type": "development",
"enabled": true,
"sortOrder": 3,
"variantCount": 0,
"strategies": [
{
"id": "6b5157cb-343a-41e7-bfa3-7b4ec3044840",
"name": "flexibleRollout",
"title": "Gradual Rollout 25-Prod",
"disabled": false,
"featureName": "myAwesomeFeature",
"sortOrder": 9999,
"segments": [
1,
2
],
"constraints": [
{
"contextName": "appName",
"operator": "IN",
"caseInsensitive": false,
"inverted": false,
"values": [
"my-app",
"my-other-app"
],
"value": "my-app"
}
],
"variants": [
{
"name": "blue_group",
"weight": 0,
"weightType": "fix",
"stickiness": "custom.context.field",
"payload": {
"type": "json",
"value": "{\"color\": \"red\"}"
}
}
],
"parameters": {}
}
],
"variants": [
{
"name": "blue_group",
"weight": 0,
"weightType": "variable",
"stickiness": "custom.context.field",
"payload": {
"type": "json",
"value": "{\"color\": \"red\"}"
},
"overrides": [
{
"contextName": "userId",
"values": [
"red",
"blue"
]
}
]
}
],
"lastSeenAt": "2023-01-28T16:21:39.975Z",
"hasStrategies": true,
"hasEnabledStrategies": true
}
],
"tags": [
{
"value": "a-tag-value",
"type": "simple"
}
],
"children": [
"some-feature"
],
"dependencies": [
{
"feature": "some-feature",
"enabled": true,
"variants": [
"some-feature-blue-variant"
]
}
]
}
],
"updatedAt": "2023-04-19T08:15:14.000Z",
"createdAt": "2023-04-19T08:15:14.000Z",
"favorite": true,
"stats": {
"avgTimeToProdCurrentWindow": 10,
"createdCurrentWindow": 15,
"createdPastWindow": 15,
"archivedCurrentWindow": 5,
"archivedPastWindow": 5,
"projectActivityCurrentWindow": 100,
"projectActivityPastWindow": 100,
"projectMembersAddedCurrentWindow": 1
},
"featureNaming": {
"pattern": "^[A-Za-z]+\\.[A-Za-z]+\\.[A-Za-z0-9-]+$",
"example": "dx.feature1.1-135",
"description": "<project>.<featureName>.<ticket>\n\nThe flag name should contain the project name, the feature name, and the ticket number, each separated by a dot."
},
"potentiallyStaleCount": 5,
"activeCount": 2,
"staleCount": 10
}
Authorization information is missing or invalid. Provide a valid API token as the authorization
header, e.g. authorization:*.*.my-admin-token
.
- application/json
- Schema
- Example (from schema)
Schema
- id string
The ID of the error instance
- name string
The name of the error kind
- message string
A description of what went wrong.
{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "AuthenticationRequired",
"message": "You must log in to use Unleash. Your request had no authorization header, so we could not authorize you. Try logging in at /auth/simple/login."
}
The provided user credentials are valid, but the user does not have the necessary permissions to perform this operation
- application/json
- Schema
- Example (from schema)
Schema
- id string
The ID of the error instance
- name string
The name of the error kind
- message string
A description of what went wrong.
{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "NoAccessError",
"message": "You need the \"UPDATE_ADDON\" permission to perform this action in the \"development\" environment."
}
The requested resource was not found.
- application/json
- Schema
- Example (from schema)
Schema
- id string
The ID of the error instance
- name string
The name of the error kind
- message string
A description of what went wrong.
{
"id": "9c40958a-daac-400e-98fb-3bb438567008",
"name": "NotFoundError",
"message": "Could not find the addon with ID \"12345\"."
}
Authorization
name: Authorizationtype: apiKeyin: header
Request
Request
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'
curl -L -X GET '<your-unleash-url>/api/admin/projects/:projectId/health-report' \
-H 'Accept: application/json' \
-H 'Authorization: <API_KEY_VALUE>'