List historical configuration summaries
GET /api/v1/agents/{id}/configuration-history
Newest first, scoped to the tenant and agent. Cursor is an exclusive revision number. Summaries omit configured paths and targets. Use the revision endpoint for settings. Available after agent revocation for audit; restoration is not allowed for revoked agents.
Allowed roles: admin, analyst, viewer.
Authentication
The following OpenAPI alternatives describe accepted authentication. Browser mutations also require the canonical Origin header.
[
{
"organizationCredential": []
},
{
"browserSession": []
}
]
Parameters
[
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "string",
"format": "uuid"
}
},
{
"name": "before",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1
}
},
{
"name": "limit",
"in": "query",
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 20
}
}
]
Request body
No request body is defined.
Responses
{
"200": {
"description": "Success",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"revision": {
"type": "integer"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"updatedBy": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"pollSeconds": {
"type": "integer"
},
"tlsTargets": {
"type": "integer"
},
"sshTargets": {
"type": "integer"
},
"repositoryRoots": {
"type": "integer"
},
"captureRoots": {
"type": "integer"
}
},
"required": [
"revision",
"updatedAt",
"updatedBy",
"enabled",
"pollSeconds",
"tlsTargets",
"sshTargets",
"repositoryRoots"
]
}
},
"nextBefore": {
"type": [
"integer",
"null"
]
}
},
"required": [
"items",
"nextBefore"
]
}
}
}
},
"400": {
"description": "Validation error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"401": {
"description": "Missing/expired/revoked credential",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Insufficient role",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Not found",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"409": {
"description": "State or idempotency conflict",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"413": {
"description": "Body too large",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"415": {
"description": "Unsupported media type",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"429": {
"description": "Request budget exhausted; respect Retry-After",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"headers": {
"Retry-After": {
"schema": {
"type": "integer",
"minimum": 1
},
"description": "Seconds until sufficient budget is expected; concurrent traffic may consume replenished capacity."
}
}
},
"500": {
"description": "Internal error",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"503": {
"description": "Not configured",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
References such as #/components/schemas/Asset resolve in shared schemas. Download the OpenAPI contract for client generation. This page is generated; it describes the implemented development API, not planned endpoints.