tests fixes and some product advisories tunes ups

This commit is contained in:
master
2026-01-30 07:57:43 +02:00
parent 644887997c
commit 55744f6a39
345 changed files with 26290 additions and 2267 deletions

View File

@@ -0,0 +1,17 @@
{
"templateId": "tmpl-attest-expiry-warning-email",
"tenantId": "bootstrap",
"channelType": "Email",
"key": "tmpl-attest-expiry-warning",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Html",
"format": "Html",
"description": "Email notification for attestation expiry warning",
"metadata": {
"eventKind": "attestor.expiry.warning",
"category": "attestation",
"subject": "[WARNING] Attestation Expiring Soon: {{ event.attestationId }}"
},
"body": "<!DOCTYPE html>\n<html>\n<head><style>body{font-family:sans-serif;line-height:1.5;}.section{margin:1em 0;padding:1em;background:#f8f9fa;border-radius:4px;}.label{font-weight:bold;color:#666;}.mono{font-family:monospace;background:#e9ecef;padding:2px 6px;border-radius:3px;}.warning{color:#ffc107;}</style></head>\n<body>\n<h2 class=\"warning\">Attestation Expiry Warning</h2>\n<div class=\"section\">\n<p><span class=\"label\">Attestation ID:</span> <span class=\"mono\">{{ event.attestationId }}</span></p>\n<p><span class=\"label\">Artifact Digest:</span> <span class=\"mono\">{{ event.artifactDigest }}</span></p>\n<p><span class=\"label\">Expires At (UTC):</span> {{ event.expiresAtUtc }}</p>\n<p><span class=\"label\">Days Until Expiry:</span> {{ event.daysUntilExpiry }}</p>\n</div>\n{{ #if event.signerIdentity }}<div class=\"section\">\n<p><span class=\"label\">Signer:</span> <span class=\"mono\">{{ event.signerIdentity }}</span></p>\n</div>{{ /if }}\n<hr>\n<p style=\"font-size:0.85em;color:#666;\">Event ID: {{ event.eventId }} | Occurred: {{ event.occurredAtUtc }}</p>\n</body>\n</html>"
}

View File

@@ -0,0 +1,16 @@
{
"templateId": "tmpl-attest-expiry-warning-slack",
"tenantId": "bootstrap",
"channelType": "Slack",
"key": "tmpl-attest-expiry-warning",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Markdown",
"format": "Json",
"description": "Slack notification for attestation expiry warning",
"metadata": {
"eventKind": "attestor.expiry.warning",
"category": "attestation"
},
"body": ":warning: *Attestation Expiry Warning*\n\n*Attestation ID:* `{{ event.attestationId }}`\n*Artifact:* `{{ event.artifactDigest }}`\n*Expires At:* {{ event.expiresAtUtc }}\n*Days Until Expiry:* {{ event.daysUntilExpiry }}\n\n{{ #if event.signerIdentity }}*Signer:* `{{ event.signerIdentity }}`\n{{ /if }}\n---\n_Event ID: {{ event.eventId }} | {{ event.occurredAtUtc }}_"
}

View File

@@ -0,0 +1,17 @@
{
"templateId": "identity-matched-email",
"tenantId": "bootstrap",
"channelType": "Email",
"key": "identity-matched",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Html",
"format": "Html",
"description": "Email notification for identity watchlist matches",
"metadata": {
"eventKind": "attestor.identity.matched",
"category": "attestation",
"subject": "[{{ event.severity | upper }}] Identity Watchlist Alert: {{ event.watchlistEntryName }}"
},
"body": "<!DOCTYPE html>\n<html>\n<head><style>body{font-family:sans-serif;line-height:1.5;}.severity-critical{color:#dc3545;}.severity-warning{color:#ffc107;}.severity-info{color:#0dcaf0;}.section{margin:1em 0;padding:1em;background:#f8f9fa;border-radius:4px;}.label{font-weight:bold;color:#666;}.mono{font-family:monospace;background:#e9ecef;padding:2px 6px;border-radius:3px;}</style></head>\n<body>\n<h2 class=\"severity-{{ event.severity }}\">Identity Watchlist Alert</h2>\n<div class=\"section\">\n<p><span class=\"label\">Severity:</span> <strong>{{ event.severity }}</strong></p>\n<p><span class=\"label\">Watchlist Entry:</span> {{ event.watchlistEntryName }}</p>\n</div>\n<div class=\"section\">\n<h3>Matched Identity</h3>\n{{ #if event.matchedIdentity.issuer }}<p><span class=\"label\">Issuer:</span> <span class=\"mono\">{{ event.matchedIdentity.issuer }}</span></p>{{ /if }}\n{{ #if event.matchedIdentity.subjectAlternativeName }}<p><span class=\"label\">Subject Alternative Name:</span> <span class=\"mono\">{{ event.matchedIdentity.subjectAlternativeName }}</span></p>{{ /if }}\n{{ #if event.matchedIdentity.keyId }}<p><span class=\"label\">Key ID:</span> <span class=\"mono\">{{ event.matchedIdentity.keyId }}</span></p>{{ /if }}\n</div>\n<div class=\"section\">\n<h3>Rekor Entry</h3>\n<p><span class=\"label\">UUID:</span> <span class=\"mono\">{{ event.rekorEntry.uuid }}</span></p>\n<p><span class=\"label\">Log Index:</span> {{ event.rekorEntry.logIndex }}</p>\n<p><span class=\"label\">Artifact SHA-256:</span> <span class=\"mono\">{{ event.rekorEntry.artifactSha256 }}</span></p>\n<p><span class=\"label\">Integrated Time (UTC):</span> {{ event.rekorEntry.integratedTimeUtc }}</p>\n</div>\n{{ #if (gt event.suppressedCount 0) }}<p><em>{{ event.suppressedCount }} duplicate alerts suppressed</em></p>{{ /if }}\n<hr>\n<p style=\"font-size:0.85em;color:#666;\">Event ID: {{ event.eventId }} | Occurred: {{ event.occurredAtUtc }}</p>\n</body>\n</html>"
}

View File

@@ -0,0 +1,16 @@
{
"templateId": "identity-matched-slack",
"tenantId": "bootstrap",
"channelType": "Slack",
"key": "identity-matched",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Markdown",
"format": "Json",
"description": "Slack notification for identity watchlist matches",
"metadata": {
"eventKind": "attestor.identity.matched",
"category": "attestation"
},
"body": "{{ #if (eq event.severity \"critical\") }}:rotating_light:{{ else if (eq event.severity \"warning\") }}:warning:{{ else }}:information_source:{{ /if }} *Identity Watchlist Alert*\n\n*Severity:* `{{ event.severity }}`\n*Watchlist Entry:* {{ event.watchlistEntryName }}\n\n*Matched Identity:*\n{{ #if event.matchedIdentity.issuer }}> Issuer: `{{ event.matchedIdentity.issuer }}`\n{{ /if }}{{ #if event.matchedIdentity.subjectAlternativeName }}> SAN: `{{ event.matchedIdentity.subjectAlternativeName }}`\n{{ /if }}{{ #if event.matchedIdentity.keyId }}> Key ID: `{{ event.matchedIdentity.keyId }}`\n{{ /if }}\n*Rekor Entry:*\n> UUID: `{{ event.rekorEntry.uuid }}`\n> Log Index: {{ event.rekorEntry.logIndex }}\n> Artifact: `{{ event.rekorEntry.artifactSha256 }}`\n> Integrated: {{ event.rekorEntry.integratedTimeUtc }}\n\n{{ #if (gt event.suppressedCount 0) }}:mute: {{ event.suppressedCount }} duplicate alerts suppressed\n{{ /if }}---\n_Event ID: {{ event.eventId }}_"
}

View File

@@ -0,0 +1,17 @@
{
"templateId": "identity-matched-teams",
"tenantId": "bootstrap",
"channelType": "Teams",
"key": "identity-matched",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "None",
"format": "Json",
"description": "Microsoft Teams adaptive card for identity watchlist matches",
"metadata": {
"eventKind": "attestor.identity.matched",
"category": "attestation",
"contentType": "application/json"
},
"body": "{\"type\":\"message\",\"attachments\":[{\"contentType\":\"application/vnd.microsoft.card.adaptive\",\"content\":{\"$schema\":\"http://adaptivecards.io/schemas/adaptive-card.json\",\"type\":\"AdaptiveCard\",\"version\":\"1.4\",\"body\":[{\"type\":\"TextBlock\",\"text\":\"Identity Watchlist Alert\",\"weight\":\"bolder\",\"size\":\"large\",\"color\":\"{{ #if (eq event.severity 'critical') }}attention{{ else if (eq event.severity 'warning') }}warning{{ else }}default{{ /if }}\"},{\"type\":\"FactSet\",\"facts\":[{\"title\":\"Severity\",\"value\":\"{{ event.severity }}\"},{\"title\":\"Watchlist Entry\",\"value\":\"{{ event.watchlistEntryName }}\"}]},{\"type\":\"TextBlock\",\"text\":\"Matched Identity\",\"weight\":\"bolder\",\"spacing\":\"medium\"},{\"type\":\"FactSet\",\"facts\":[{{ #if event.matchedIdentity.issuer }}{\"title\":\"Issuer\",\"value\":\"{{ event.matchedIdentity.issuer }}\"},{{ /if }}{{ #if event.matchedIdentity.subjectAlternativeName }}{\"title\":\"SAN\",\"value\":\"{{ event.matchedIdentity.subjectAlternativeName }}\"},{{ /if }}{{ #if event.matchedIdentity.keyId }}{\"title\":\"Key ID\",\"value\":\"{{ event.matchedIdentity.keyId }}\"},{{ /if }}{\"title\":\"\",\"value\":\"\"}]},{\"type\":\"TextBlock\",\"text\":\"Rekor Entry\",\"weight\":\"bolder\",\"spacing\":\"medium\"},{\"type\":\"FactSet\",\"facts\":[{\"title\":\"UUID\",\"value\":\"{{ event.rekorEntry.uuid }}\"},{\"title\":\"Log Index\",\"value\":\"{{ event.rekorEntry.logIndex }}\"},{\"title\":\"Artifact\",\"value\":\"{{ event.rekorEntry.artifactSha256 }}\"},{\"title\":\"Integrated\",\"value\":\"{{ event.rekorEntry.integratedTimeUtc }}\"}]}{{ #if (gt event.suppressedCount 0) }},{\"type\":\"TextBlock\",\"text\":\"{{ event.suppressedCount }} duplicate alerts suppressed\",\"isSubtle\":true,\"spacing\":\"small\"}{{ /if }}],\"msteams\":{\"width\":\"Full\"}}}]}"
}

View File

@@ -0,0 +1,17 @@
{
"templateId": "identity-matched-webhook",
"tenantId": "bootstrap",
"channelType": "Webhook",
"key": "identity-matched",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "None",
"format": "Json",
"description": "Webhook payload for identity watchlist matches",
"metadata": {
"eventKind": "attestor.identity.matched",
"category": "attestation",
"contentType": "application/json"
},
"body": "{\"alertType\":\"identity-watchlist-match\",\"severity\":\"{{ event.severity }}\",\"watchlist\":{\"entryId\":\"{{ event.watchlistEntryId }}\",\"entryName\":\"{{ event.watchlistEntryName }}\"},\"matchedIdentity\":{\"issuer\":{{ #if event.matchedIdentity.issuer }}\"{{ event.matchedIdentity.issuer }}\"{{ else }}null{{ /if }},\"subjectAlternativeName\":{{ #if event.matchedIdentity.subjectAlternativeName }}\"{{ event.matchedIdentity.subjectAlternativeName }}\"{{ else }}null{{ /if }},\"keyId\":{{ #if event.matchedIdentity.keyId }}\"{{ event.matchedIdentity.keyId }}\"{{ else }}null{{ /if }}},\"rekorEntry\":{\"uuid\":\"{{ event.rekorEntry.uuid }}\",\"logIndex\":{{ event.rekorEntry.logIndex }},\"artifactSha256\":\"{{ event.rekorEntry.artifactSha256 }}\",\"integratedTimeUtc\":\"{{ event.rekorEntry.integratedTimeUtc }}\"},\"eventId\":\"{{ event.eventId }}\",\"occurredAtUtc\":\"{{ event.occurredAtUtc }}\",\"suppressedCount\":{{ event.suppressedCount }}}"
}

View File

@@ -0,0 +1,17 @@
{
"templateId": "tmpl-attest-key-rotation-email",
"tenantId": "bootstrap",
"channelType": "Email",
"key": "tmpl-attest-key-rotation",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Html",
"format": "Html",
"description": "Email notification for attestation signing key rotation",
"metadata": {
"eventKind": "attestor.key.rotation",
"category": "attestation",
"subject": "[INFO] Signing Key Rotated: {{ event.keyAlias }}"
},
"body": "<!DOCTYPE html>\n<html>\n<head><style>body{font-family:sans-serif;line-height:1.5;}.section{margin:1em 0;padding:1em;background:#f8f9fa;border-radius:4px;}.label{font-weight:bold;color:#666;}.mono{font-family:monospace;background:#e9ecef;padding:2px 6px;border-radius:3px;}</style></head>\n<body>\n<h2>Signing Key Rotated</h2>\n<div class=\"section\">\n<p><span class=\"label\">Key Alias:</span> <span class=\"mono\">{{ event.keyAlias }}</span></p>\n<p><span class=\"label\">Previous Key ID:</span> <span class=\"mono\">{{ event.previousKeyId }}</span></p>\n<p><span class=\"label\">New Key ID:</span> <span class=\"mono\">{{ event.newKeyId }}</span></p>\n<p><span class=\"label\">Rotated At (UTC):</span> {{ event.rotatedAtUtc }}</p>\n</div>\n{{ #if event.rotatedBy }}<div class=\"section\">\n<p><span class=\"label\">Rotated By:</span> <span class=\"mono\">{{ event.rotatedBy }}</span></p>\n</div>{{ /if }}\n<hr>\n<p style=\"font-size:0.85em;color:#666;\">Event ID: {{ event.eventId }} | Occurred: {{ event.occurredAtUtc }}</p>\n</body>\n</html>"
}

View File

@@ -0,0 +1,17 @@
{
"templateId": "tmpl-attest-key-rotation-webhook",
"tenantId": "bootstrap",
"channelType": "Webhook",
"key": "tmpl-attest-key-rotation",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "None",
"format": "Json",
"description": "Webhook payload for attestation signing key rotation",
"metadata": {
"eventKind": "attestor.key.rotation",
"category": "attestation",
"contentType": "application/json"
},
"body": "{\"alertType\":\"attestation-key-rotation\",\"keyAlias\":\"{{ event.keyAlias }}\",\"previousKeyId\":\"{{ event.previousKeyId }}\",\"newKeyId\":\"{{ event.newKeyId }}\",\"rotatedAtUtc\":\"{{ event.rotatedAtUtc }}\",\"rotatedBy\":{{ #if event.rotatedBy }}\"{{ event.rotatedBy }}\"{{ else }}null{{ /if }},\"eventId\":\"{{ event.eventId }}\",\"occurredAtUtc\":\"{{ event.occurredAtUtc }}\"}"
}

View File

@@ -0,0 +1,16 @@
{
"templateId": "tmpl-attest-transparency-anomaly-slack",
"tenantId": "bootstrap",
"channelType": "Slack",
"key": "tmpl-attest-transparency-anomaly",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Markdown",
"format": "Json",
"description": "Slack notification for transparency log anomaly detection",
"metadata": {
"eventKind": "attestor.transparency.anomaly",
"category": "attestation"
},
"body": ":rotating_light: *Transparency Log Anomaly Detected*\n\n*Anomaly Type:* {{ event.anomalyType }}\n*Log Source:* `{{ event.logSource }}`\n*Description:* {{ event.description }}\n\n{{ #if event.affectedEntryUuid }}*Affected Entry:* `{{ event.affectedEntryUuid }}`\n{{ /if }}{{ #if event.expectedValue }}*Expected:* `{{ event.expectedValue }}`\n*Actual:* `{{ event.actualValue }}`\n{{ /if }}\n---\n_Event ID: {{ event.eventId }} | {{ event.occurredAtUtc }}_"
}

View File

@@ -0,0 +1,17 @@
{
"templateId": "tmpl-attest-transparency-anomaly-webhook",
"tenantId": "bootstrap",
"channelType": "Webhook",
"key": "tmpl-attest-transparency-anomaly",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "None",
"format": "Json",
"description": "Webhook payload for transparency log anomaly detection",
"metadata": {
"eventKind": "attestor.transparency.anomaly",
"category": "attestation",
"contentType": "application/json"
},
"body": "{\"alertType\":\"transparency-anomaly\",\"anomalyType\":\"{{ event.anomalyType }}\",\"logSource\":\"{{ event.logSource }}\",\"description\":\"{{ event.description }}\",\"affectedEntryUuid\":{{ #if event.affectedEntryUuid }}\"{{ event.affectedEntryUuid }}\"{{ else }}null{{ /if }},\"expectedValue\":{{ #if event.expectedValue }}\"{{ event.expectedValue }}\"{{ else }}null{{ /if }},\"actualValue\":{{ #if event.actualValue }}\"{{ event.actualValue }}\"{{ else }}null{{ /if }},\"eventId\":\"{{ event.eventId }}\",\"occurredAtUtc\":\"{{ event.occurredAtUtc }}\"}"
}

View File

@@ -0,0 +1,17 @@
{
"templateId": "tmpl-attest-verify-fail-email",
"tenantId": "bootstrap",
"channelType": "Email",
"key": "tmpl-attest-verify-fail",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Html",
"format": "Html",
"description": "Email notification for attestation verification failure",
"metadata": {
"eventKind": "attestor.verify.fail",
"category": "attestation",
"subject": "[ALERT] Attestation Verification Failed: {{ event.artifactDigest }}"
},
"body": "<!DOCTYPE html>\n<html>\n<head><style>body{font-family:sans-serif;line-height:1.5;}.section{margin:1em 0;padding:1em;background:#f8f9fa;border-radius:4px;}.label{font-weight:bold;color:#666;}.mono{font-family:monospace;background:#e9ecef;padding:2px 6px;border-radius:3px;}.alert{color:#dc3545;}</style></head>\n<body>\n<h2 class=\"alert\">Attestation Verification Failed</h2>\n<div class=\"section\">\n<p><span class=\"label\">Artifact Digest:</span> <span class=\"mono\">{{ event.artifactDigest }}</span></p>\n<p><span class=\"label\">Policy:</span> {{ event.policyName }}</p>\n<p><span class=\"label\">Failure Reason:</span> {{ event.failureReason }}</p>\n</div>\n<div class=\"section\">\n{{ #if event.attestationId }}<p><span class=\"label\">Attestation ID:</span> <span class=\"mono\">{{ event.attestationId }}</span></p>{{ /if }}\n{{ #if event.signerIdentity }}<p><span class=\"label\">Signer:</span> <span class=\"mono\">{{ event.signerIdentity }}</span></p>{{ /if }}\n</div>\n<hr>\n<p style=\"font-size:0.85em;color:#666;\">Event ID: {{ event.eventId }} | Occurred: {{ event.occurredAtUtc }}</p>\n</body>\n</html>"
}

View File

@@ -0,0 +1,16 @@
{
"templateId": "tmpl-attest-verify-fail-slack",
"tenantId": "bootstrap",
"channelType": "Slack",
"key": "tmpl-attest-verify-fail",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Markdown",
"format": "Json",
"description": "Slack notification for attestation verification failure",
"metadata": {
"eventKind": "attestor.verify.fail",
"category": "attestation"
},
"body": ":x: *Attestation Verification Failed*\n\n*Artifact:* `{{ event.artifactDigest }}`\n*Policy:* {{ event.policyName }}\n*Failure Reason:* {{ event.failureReason }}\n\n{{ #if event.attestationId }}*Attestation ID:* `{{ event.attestationId }}`\n{{ /if }}{{ #if event.signerIdentity }}*Signer:* `{{ event.signerIdentity }}`\n{{ /if }}\n---\n_Event ID: {{ event.eventId }} | {{ event.occurredAtUtc }}_"
}

View File

@@ -0,0 +1,17 @@
{
"templateId": "tmpl-attest-verify-fail-webhook",
"tenantId": "bootstrap",
"channelType": "Webhook",
"key": "tmpl-attest-verify-fail",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "None",
"format": "Json",
"description": "Webhook payload for attestation verification failure",
"metadata": {
"eventKind": "attestor.verify.fail",
"category": "attestation",
"contentType": "application/json"
},
"body": "{\"alertType\":\"attestation-verify-fail\",\"artifactDigest\":\"{{ event.artifactDigest }}\",\"policyName\":\"{{ event.policyName }}\",\"failureReason\":\"{{ event.failureReason }}\",\"attestationId\":{{ #if event.attestationId }}\"{{ event.attestationId }}\"{{ else }}null{{ /if }},\"signerIdentity\":{{ #if event.signerIdentity }}\"{{ event.signerIdentity }}\"{{ else }}null{{ /if }},\"eventId\":\"{{ event.eventId }}\",\"occurredAtUtc\":\"{{ event.occurredAtUtc }}\"}"
}

View File

@@ -0,0 +1,19 @@
{
"templateId": "tmpl-api-deprecation-email",
"tenantId": "bootstrap",
"channelType": "Email",
"key": "tmpl-api-deprecation",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Html",
"format": "Html",
"description": "Email notification for API deprecation notice",
"metadata": {
"eventKind": "platform.api.deprecation",
"category": "deprecation",
"version": "1.0.0",
"author": "stella-ops",
"subject": "[DEPRECATION] API Endpoint Deprecated: {{ event.endpoint }}"
},
"body": "<!DOCTYPE html>\n<html>\n<head><style>body{font-family:sans-serif;line-height:1.5;}.section{margin:1em 0;padding:1em;background:#f8f9fa;border-radius:4px;}.label{font-weight:bold;color:#666;}.mono{font-family:monospace;background:#e9ecef;padding:2px 6px;border-radius:3px;}.warning{color:#e67e22;}</style></head>\n<body>\n<h2 class=\"warning\">API Deprecation Notice</h2>\n<div class=\"section\">\n<p><span class=\"label\">Endpoint:</span> <span class=\"mono\">{{ event.endpoint }}</span></p>\n<p><span class=\"label\">API Version:</span> <span class=\"mono\">{{ event.apiVersion }}</span></p>\n<p><span class=\"label\">Deprecation Date:</span> {{ event.deprecationDate }}</p>\n<p><span class=\"label\">Sunset Date:</span> {{ event.sunsetDate }}</p>\n</div>\n<div class=\"section\">\n<p><span class=\"label\">Migration Guide:</span> <a href=\"{{ event.migrationGuideUrl }}\">{{ event.migrationGuideUrl }}</a></p>\n{{ #if event.replacementEndpoint }}<p><span class=\"label\">Replacement Endpoint:</span> <span class=\"mono\">{{ event.replacementEndpoint }}</span></p>{{ /if }}\n</div>\n<hr>\n<p style=\"font-size:0.85em;color:#666;\">Event ID: {{ event.eventId }} | Occurred: {{ event.occurredAtUtc }}</p>\n</body>\n</html>"
}

View File

@@ -0,0 +1,18 @@
{
"templateId": "tmpl-api-deprecation-slack",
"tenantId": "bootstrap",
"channelType": "Slack",
"key": "tmpl-api-deprecation",
"locale": "en-US",
"schemaVersion": "1.0.0",
"renderMode": "Markdown",
"format": "Json",
"description": "Slack notification for API deprecation notice",
"metadata": {
"eventKind": "platform.api.deprecation",
"category": "deprecation",
"version": "1.0.0",
"author": "stella-ops"
},
"body": ":warning: *API Deprecation Notice*\n\n*Endpoint:* `{{ event.endpoint }}`\n*API Version:* `{{ event.apiVersion }}`\n*Deprecation Date:* {{ event.deprecationDate }}\n*Sunset Date:* {{ event.sunsetDate }}\n\n*Migration Guide:* {{ event.migrationGuideUrl }}\n\n{{ #if event.replacementEndpoint }}*Replacement:* `{{ event.replacementEndpoint }}`\n{{ /if }}\n---\n_Event ID: {{ event.eventId }} | {{ event.occurredAtUtc }}_"
}