Perimeter Resolver API
Read this page in wide view mode from here
Perimeter Resolver API (0.3.0)
A Perimeter Resolver is a microservice responsible to supply resources to the Witboost Computational Governance.
When a policy or metric is being run from Witboost, the Perimeter Resolver gets invoked to get a list of resources of the policy/metric declared resource type together with additional filters.
Perimeter Resolver fetches resources for which is responsible to from an underlying storage or catalog. The resources are filtered based on the environment and the resource type.
Once you develop a microservice that implements the Perimeter Resolver API, you can register it with the Witboost Computational Governance API. The registration process requires an HTTP call to this API.
Retrieve resources to be evaluated by policies or metrics defined in Witboost Computational Governance
query Parameters
| environment required | string Example: environment=development Environment where to look for resources |
| resource-types | string Example: resource-types=type1,type2,type3 Comma-separated list of resource types to filter on. Ignored if the perimeter resolver doesn't provide more than one resource type |
| id | string Example: id=rf2e-3f2f-3f2f-3f2f A resource id to retrieve |
| offset | integer Default: 0 Example: offset=0 Number of resources to skip before retrieving data. Used for pagination. |
| limit | integer <= 50 Default: 5 Example: limit=5 Maximum number of resources to retrieve. Used for pagination. |
Responses
Response samples
- 200
- 400
- 500
{- "resources": [
- {
- "id": "system-my-namespace-my-system",
- "displayName": "My System",
- "version": "1.0.0",
- "content": "apiVersion: v1\nkind: System\nmetadata:\n name: my-system\n namespace: my-namespace\n labels:\n app: my-app\nspec:\n owner: team-a\n description: Core backend system\n"
}, - {
- "id": "system-my-namespace-my-system-2",
- "displayName": "My System 2",
- "version": "2.1.3",
- "content": "apiVersion: v1\nkind: System\nmetadata:\n name: my-system-2\n namespace: my-namespace\n labels:\n app: my-app-2\nspec:\n owner: team-b\n description: Payments processing system\n"
}, - {
- "id": "system-my-namespace-my-system-3",
- "displayName": "My System 3",
- "version": "3",
- "content": "apiVersion: v1\nkind: System\nmetadata:\n name: my-system-3\n namespace: my-namespace\n labels:\n app: my-app-3\nspec:\n owner: team-c\n description: Analytics pipeline\n"
}
], - "page": {
- "offset": 0,
- "limit": 5,
- "count": 3
}
}Retrieve resources
query Parameters
| environment required | string Example: environment=development Environment where to look for resources |
| resource-types | string Example: resource-types=type1,type2,type3 Comma-separated list of resource types to filter on. Ignored if the perimeter resolver doesn't provide more than one resource type |
| id | string Example: id=rf2e-3f2f-3f2f-3f2f A resource id to retrieve |
| offset | integer Default: 0 Example: offset=0 Number of resources to skip before retrieving data. Used for pagination. |
| limit | integer <= 50 Default: 5 Example: limit=5 Maximum number of resources to retrieve. Used for pagination. |
Responses
Response samples
- 200
- 400
- 500
{- "content": [
- "apiVersion: v1\nkind: System\nmetadata:\n name: my-system\n namespace: my-namespace\n labels:\n app: my-app",
- "apiVersion: v1\nkind: System\nmetadata:\n name: my-system-2\n namespace: my-namespace\n labels:\n app: my-app",
- "apiVersion: v1\nkind: System\nmetadata:\n name: my-system-3\n namespace: my-namespace\n labels:\n app: my-app"
], - "page": {
- "offset": 0,
- "limit": 5,
- "count": 3
}
}