// redis's events entrypoint, loaded by the per-node tool host (the provisioner container runs // ./provisioner separately). The cache lifecycle events are EMITTED from the provisioner, where the // lifecycle actually happens (novox/hq ADR 0041/0042): // module.redis.cache.provisioned — a consumer's ACL user + keyspace was created // module.redis.cache.deprovisioned — that user was removed // Here in the tool host we react to them, keeping a lightweight audit trail of who was granted a // cache and who lost one — observability the provider itself is best placed to log. import { on } from "@novox/mesh-sdk/events"; interface CacheEvent { consumer: string; username: string; keyspacePrefix?: string; } await on("cache.provisioned", async (e) => { console.log(`[redis] cache provisioned for ${e.body.consumer} (user ${e.body.username})`); }); await on("cache.deprovisioned", async (e) => { console.log(`[redis] cache deprovisioned for ${e.body.consumer} (user ${e.body.username})`); }); console.log("[redis] auditing cache lifecycle events");