Files
git.stella-ops.org/docs/modules/notify/resources/schemas/api-deprecation-template@1.json
master ce5ec9c158
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
feat: Add in-memory implementations for issuer audit, key, repository, and trust management
- 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.
2025-12-11 19:47:43 +02:00

128 lines
3.6 KiB
JSON

{
"$id": "https://stella-ops.org/schemas/notify/api-deprecation@1.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "API Deprecation Notification Template",
"description": "Notification template schema for API deprecation announcements. Used by Notify service to render channel-specific messages.",
"type": "object",
"required": [
"schemaVersion",
"templateId",
"tenantId",
"channelType",
"key",
"locale",
"body",
"renderMode",
"format",
"createdAt",
"updatedAt"
],
"properties": {
"schemaVersion": {
"type": "string",
"const": "notify.template.api-deprecation@1"
},
"templateId": {
"type": "string",
"pattern": "^api-deprecation-[a-z]+(-[a-z0-9]+)*$",
"description": "Template identifier following api-deprecation-{channel}[-variant] pattern."
},
"tenantId": {
"type": "string",
"description": "Tenant scope for the template. Use '_system' for platform-wide defaults."
},
"channelType": {
"type": "string",
"enum": ["slack", "teams", "email", "webhook"],
"description": "Target notification channel."
},
"key": {
"type": "string",
"const": "api.deprecation.announced",
"description": "Event key this template handles."
},
"locale": {
"type": "string",
"default": "en-US",
"description": "Locale for the template content."
},
"body": {
"type": "string",
"description": "Template body with Mustache/Handlebars placeholders for deprecation fields."
},
"subject": {
"type": "string",
"description": "Email subject line (for email channel only)."
},
"description": {
"type": "string",
"description": "Human-readable description of the template."
},
"renderMode": {
"type": "string",
"enum": ["markdown", "html", "adaptiveCard", "plainText", "json"],
"description": "How the body should be rendered."
},
"format": {
"type": "string",
"enum": ["slack", "teams", "email", "webhook", "json"],
"description": "Output format for the rendered message."
},
"metadata": {
"type": "object",
"properties": {
"priority": {
"type": "string",
"enum": ["low", "normal", "high", "urgent"],
"default": "normal"
},
"category": {
"type": "string",
"const": "api-governance"
},
"tags": {
"type": "array",
"items": { "type": "string" }
}
},
"additionalProperties": { "type": "string" }
},
"placeholders": {
"type": "array",
"description": "Documented placeholders available in the template body.",
"items": {
"$ref": "#/$defs/placeholder"
}
},
"createdBy": { "type": "string" },
"createdAt": { "type": "string", "format": "date-time" },
"updatedBy": { "type": "string" },
"updatedAt": { "type": "string", "format": "date-time" }
},
"additionalProperties": false,
"$defs": {
"placeholder": {
"type": "object",
"required": ["name", "description"],
"properties": {
"name": {
"type": "string",
"description": "Placeholder name (e.g., {{service}})."
},
"description": {
"type": "string",
"description": "Description of what the placeholder contains."
},
"example": {
"type": "string",
"description": "Example value for the placeholder."
},
"required": {
"type": "boolean",
"default": true
}
}
}
}
}