schemaVersion: 1 releaseProfiles: - releaseProfileId: messaging-first-r2-polling-producer-release.v1 compatibilityProfileId: messaging-first-r2-polling-producer.v1 selectedCardIds: - messaging-outbox-publish.v1 - kafka-spring-acknowledged-idempotent.v1 - postgresql-polling-outbox.v2 - postgresql-per-record-jit-claim.v1 - json-schema-envelope.v1 - external-topic-validated.v1 - kafka-sasl-ssl-scram-sha-512.v1 - kafka-compression-none.v1 - per-key-normal-path-sequence-detectable.v1 - same-postgresql-transaction-resource.v1 - authenticated-internal-web-disposition.v1 requiredCardMaturity: release-eligible expectedProfileHash: "" expectedCatalogHash: "" expectedSchemaHash: "" expectedSettingsHash: "" requiredEvidenceTasks: - verifyMessagingContracts - verifyMessagingJsonSchemaV1 - verifyMessagingPollingOutboxR2 - verifyMessagingKafkaProducerR2 - verifyMessagingSecurityR2 - verifyMessagingReleaseProfile - verifyMessagingTargetBindingPreflight - verifyMessagingTargetBinding - verifyMessagingDeploymentCutover - verifyMessagingCleanupTargetBinding - verifyMessagingFinalR2Profile requiredScenarios: - messaging.release.contracts-schema.v1 - messaging.release.polling-outbox.v2 - messaging.release.kafka-producer.v1 - messaging.release.security-topology.v1 - messaging.release.shutdown-rotation.v1 runbookIds: - runbook.messaging-producer-unavailable-or-unauthorized.v1 - runbook.messaging-outbox-backlog-and-stale-lease.v1 - runbook.messaging-delivery-indeterminate-and-duplicate-burst.v1 - runbook.messaging-schema-poison-or-record-too-large.v1 - runbook.messaging-terminal-delivery-disposition.v1 - runbook.messaging-topic-policy-or-partition-change.v1 - runbook.messaging-shutdown-deploy-and-secret-rotation.v1 - runbook.messaging-legacy-to-v2-relay-authority-cutover.v1 evidencePolicy: rejectMissing: true rejectSkipped: true rejectStale: true rejectWrongSource: true rejectMismatchedProfile: true maximumAgeSeconds: 86400