Guard Event Bus Topic

Topic name validator for b.agent.eventBus.registerTopic / publish / subscribe. Refuses:

- dot-count < 3 (operators must use .. shape so topic names are greppable + namespace-prefixed — mail.scan.malware-detected not malware) - non-ASCII (NFC + ASCII-only — operator-greppable across audit logs + JMAP wire + cross-process) - oversized (default 128 bytes — events are metadata, not bulk data; long names defeat the greppability rationale) - reserved framework.* prefix from operator code - path-traversal shapes (.. / / / \ / NUL / C0)

b.guardEventBusTopic.validate(name, opts?) #

stable0.9.25
{
  profile:   "strict" | "balanced" | "permissive",
  posture:   "hipaa" | "pci-dss" | "gdpr" | "soc2",
}

Validate an event-bus topic name. Returns the name on success; throws GuardEventBusTopicError on refusal.

b.guardEventBusTopic.validate("mail.scan.malware-detected");

b.guardEventBusTopic.compliancePosture(name) #

stable0.9.25hipaapci-dssgdprsoc2

Return the effective profile NAME for a compliance posture, or null for a name this parser does not map. Unlike the content-guard variant this returns the resolved profile string (every line-protocol parser composes gateContract.ALL_STRICT_POSTURES, so "hipaa" / "pci-dss" / "gdpr" / "soc2" all resolve to "strict") and never throws — the parser shape carries no overlay-clone, no buildProfile, and no loadRulePack. Wired by gateContract.defineParser.

b.guardEventBusTopic.compliancePosture("hipaa");                   // → "strict"
b.guardEventBusTopic.compliancePosture("not-a-regime");            // → null

Last updated 2026-08-08T16:39:49.652Z by seeder.