Canonical-source statement (added 2026-04-18 by FM Audit & Optimization): This document is the canonical audit log for FM event consumers. The high-level matrix inFM_INTEGRATION_CONTRACTS.md§ Consumer Verification Matrix is a derived summary for spec authors. When the two disagree, this document wins, and a docs PR should reconcileFM_INTEGRATION_CONTRACTS.md. The deep review on 2026-04-17 surfaced one such drift (vendor_certification_expiring → PF-10was ✅ in the summary but missing from this audit log); it is now reflected below in § “Wave 0 — Already-implemented FM events”.
Platform Pattern Note: This document is the FM prototype of a platform-wide Consumer Verification Matrix pattern proposed for generalization as a PF-level spec (PF-Integration-Contract-Governance). Other cores should adopt the same structure once the PF spec is authored. See FM-14 Phase 4 for the governance rationale.
Purpose
This document tracks which event consumers have been verified to handle each FM-published event. Before a spec wave is considered “integration-ready”, all consumer rows for that wave’s events must have a verification status of ✅ Verified.How to mark a consumer ✅ Verified
A consumer row may be set to ✅ Verified only when all of the following hold:- The consumer handler exists in
supabase/functions/{handler-name}/index.ts(or equivalent in-app subscriber) and is deployed to all environments where the publisher is enabled. - The handler is registered against the publisher event in
EVENT_CONTRACTS.mdand routes through the platform notification / event bus (no ad-hoc HTTP webhooks for cross-core). - At least one integration test in
tests/integration/exercises the publisher → consumer path end-to-end (or a dedicatedtests/edge/Deno test for edge handlers). - The handler honours tenant isolation (
organization_idfilter on every query, RLS-friendly client) and uses_shared/auth.ts(verifyOrgAccess()/verifyOrgRole()) instead of inlinepf_user_role_assignmentsqueries. - The handler emits an audit log entry (or otherwise produces a verifiable trace) on success and failure.
- The row in this matrix is updated and the corresponding row in
FM_INTEGRATION_CONTRACTS.md § Consumer Verification Matrixis updated in the same PR.
Wave 0 — Already-implemented FM events
These rows reflect consumers that are wired today (not part of any forward-looking wave). They were missing from this document until the 2026-04-18 audit.Integration Readiness Gate Checklist
Before marking any FM spec as integration-complete, verify:- All FM events for the spec are defined in
FM_INTEGRATION_CONTRACTS.md - All FM events for the spec are listed in
EVENT_CONTRACTS.md - All consumer rows in this document for those events are ✅ Verified
- RLS test stubs exist for all new tables in the spec
- Consumer handlers in FA / GR / PF-10 are implemented or stubbed with tracked issues
-
npm run verify:fm-integration-gatespasses