Some checks failed
devportal-offline / build-offline (push) Has been cancelled
Mirror Thin Bundle Sign & Verify / mirror-sign (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
api-governance / spectral-lint (push) Has been cancelled
oas-ci / oas-validate (push) Has been cancelled
- Introduced InMemoryIssuerAuditSink to retain audit entries for testing. - Implemented InMemoryIssuerKeyRepository for deterministic key storage. - Created InMemoryIssuerRepository to manage issuer records in memory. - Added InMemoryIssuerTrustRepository for managing issuer trust overrides. - Each repository utilizes concurrent collections for thread-safe operations. - Enhanced deprecation tracking with a comprehensive YAML schema for API governance.
37 lines
2.9 KiB
JSON
37 lines
2.9 KiB
JSON
{
|
|
"schemaVersion": "notify.template.api-deprecation@1",
|
|
"templateId": "api-deprecation-webhook",
|
|
"tenantId": "_system",
|
|
"channelType": "webhook",
|
|
"key": "api.deprecation.announced",
|
|
"locale": "en-US",
|
|
"subject": null,
|
|
"description": "Webhook payload template for API deprecation announcements (JSON format for external integrations)",
|
|
"body": "{\n \"event\": \"api.deprecation.announced\",\n \"version\": \"1\",\n \"timestamp\": \"{{timestamp}}\",\n \"data\": {\n \"service\": \"{{service}}\",\n \"endpoint\": {\n \"path\": \"{{path}}\",\n \"method\": \"{{method}}\",\n \"operationId\": \"{{operationId}}\"\n },\n \"deprecation\": {\n \"deprecatedAt\": \"{{deprecatedAt}}\",\n \"sunsetAt\": \"{{sunsetAt}}\",\n \"daysUntilSunset\": {{daysUntilSunset}},\n \"reason\": \"{{reason}}\"\n },\n \"migration\": {\n \"successorPath\": \"{{successorPath}}\",\n \"migrationGuide\": \"{{migrationGuide}}\",\n \"changelogUrl\": \"{{changelogUrl}}\"\n }\n }\n}",
|
|
"renderMode": "json",
|
|
"format": "webhook",
|
|
"metadata": {
|
|
"priority": "high",
|
|
"category": "api-governance",
|
|
"tags": ["deprecation", "api", "migration", "integration"]
|
|
},
|
|
"placeholders": [
|
|
{ "name": "timestamp", "description": "Event timestamp in ISO 8601 format", "example": "2025-12-11T10:00:00Z", "required": true },
|
|
{ "name": "service", "description": "Service name owning the deprecated endpoint", "example": "authority", "required": true },
|
|
{ "name": "path", "description": "API path of the deprecated endpoint", "example": "/v1/tokens", "required": true },
|
|
{ "name": "method", "description": "HTTP method", "example": "POST", "required": true },
|
|
{ "name": "operationId", "description": "OpenAPI operation ID", "example": "createToken", "required": false },
|
|
{ "name": "deprecatedAt", "description": "When the endpoint was deprecated", "example": "2025-01-15T00:00:00Z", "required": true },
|
|
{ "name": "sunsetAt", "description": "When the endpoint will be removed", "example": "2025-07-15T00:00:00Z", "required": true },
|
|
{ "name": "daysUntilSunset", "description": "Days remaining until sunset (integer)", "example": "180", "required": true },
|
|
{ "name": "reason", "description": "Deprecation reason", "example": "Replaced by v2 endpoint", "required": false },
|
|
{ "name": "successorPath", "description": "Replacement endpoint path", "example": "/v2/tokens", "required": false },
|
|
{ "name": "migrationGuide", "description": "URL to migration documentation", "example": "https://docs.stella-ops.org/migration/tokens-v2", "required": false },
|
|
{ "name": "changelogUrl", "description": "URL to the changelog entry", "example": "https://docs.stella-ops.org/changelog#2025-01-15", "required": false }
|
|
],
|
|
"createdBy": "api-governance-guild",
|
|
"createdAt": "2025-12-11T00:00:00Z",
|
|
"updatedBy": "api-governance-guild",
|
|
"updatedAt": "2025-12-11T00:00:00Z"
|
|
}
|