Tactical Media Broadcast Hub — initial release

Self-hosted multi-platform broadcast newsroom for activist collectives:
publishing pipeline with group approval and DST-proof scheduling, TweetDeck-style
column wall with hostile-content-safe rendering, live control room with Auto
Director, bridged chat governance with polls and quorum, distributed sandboxed
transcode workers, encrypted content-addressed archive, monthly analytics.

MIT licensed. See README.md and docs/.
This commit is contained in:
glass beadian 2026-10-10 11:56:42 +00:00
commit aa5e262f3a
880 changed files with 111042 additions and 0 deletions

View file

@ -0,0 +1,16 @@
-- 004: pooled sessions can carry an empty-string GUC placeholder after
-- SET LOCAL commits; NULLIF makes the RLS expressions fail closed cleanly
-- instead of raising a cast error.
DROP POLICY IF EXISTS tenant_isolation ON memberships;
DROP POLICY IF EXISTS tenant_isolation ON connections;
DROP POLICY IF EXISTS tenant_isolation ON credentials;
DROP POLICY IF EXISTS tenant_audit ON audit_log;
CREATE POLICY tenant_isolation ON memberships
USING (workspace_id = NULLIF(current_setting('app.workspace_id', true), '')::uuid);
CREATE POLICY tenant_isolation ON connections
USING (workspace_id = NULLIF(current_setting('app.workspace_id', true), '')::uuid);
CREATE POLICY tenant_isolation ON credentials
USING (workspace_id = NULLIF(current_setting('app.workspace_id', true), '')::uuid);
CREATE POLICY tenant_audit ON audit_log
USING (workspace_id = NULLIF(current_setting('app.workspace_id', true), '')::uuid);