T-HUB/apps/api/migrations
glass beadian d58db63fe6 Add group cloud: files index api, web UI, archive sync bot
The Telegram-like group file contract (packages/core shared-files.ts) becomes
a working subsystem, built in three parallel tracks:

API (NestJS): migration 029 group_files (chat_media_archive metadata-only
index with partial replay-unique + RLS, group_file_shares with sha256 token
persistence, archive_sync_state/outbox durable-claim seam incl. a unique
claim_key index), group-files module (list/search with cursor pagination,
direct upload ≤20 MiB streamed+hashed to oCIS WebDAV, download with ACL +
retention rechecks, share links with expiry, retention modes incl.
legalHold) — RBAC group-membership authz + audit chain events.

Web: Files section per group — group picker, drag-drop upload (20 MiB cap),
search + MIME/origin filters, cursor pagination, download via authenticated
blob fetch, share dialog with expiry + shown-once token, admin retention
dialog; bilingual EN/ES (wiki i18n pattern); nav sidebar/palette/bottom-nav
wiring; MIME classes aligned to the DB CHECK (document/other).

Archive bot (apps/archive-bot): plain sync-loop Matrix bot mirroring
attachments from explicitly-mapped unencrypted archive rooms — raw /sync
with durable since-cursor, outbox-claimed ingestion (hash-verified stream,
no temp files), magic-byte MIME sniffing, safe-name normalization, WebDAV
upload, indexed + replied with link, redaction→unavailable; health endpoint;
Dockerfile. Tests 74/74, typecheck clean across api/web/bot.
2026-10-11 08:21:11 +00:00
..
001_tenants.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
002_rbac_seed.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
003_app_role.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
004_policy_nullif.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
005_epoch_fix.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
006_publishing.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
007_auth.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
008_groups.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
009_video.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
010_audit_hash_v2.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
012_live_sources.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
013_production.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
014_live_chat.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
015_archive.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
016_username_auth.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
017_invite_links.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
018_publishing_execution.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
019_publishing_integration.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
020_analytics.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
021_stream_columns.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
022_live_destinations.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
023_virtual_channel_import.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
024_chatgov.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
025_archive_search.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
025_chatgov_p2.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
026_columns_p1.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
027_intake.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
028_instance_settings.sql Tactical Media Broadcast Hub — initial release 2026-10-10 11:56:42 +00:00
029_group_files.sql Add group cloud: files index api, web UI, archive sync bot 2026-10-11 08:21:11 +00:00