feat: phase 1c/1d - Connect Slack (OAuth), SlackApi, readiness and health, templates, PHI guard #5

Merged
KofTwentyTwo merged 4 commits from feature/api-connect into develop 2026-10-14 17:37:42 +00:00
4 Commits
Author SHA1 Message Date
james.maes ce903dc5c1 Merge remote-tracking branch 'origin/develop' into feature/api-connect 2026-10-14 12:28:55 -05:00
james.maesandClaude Opus 5.5 f58c2318a3 feat(api): SlackApi public package, readiness and optional health check
isInstalled/send/sendOnce/reply/update/lookups/readiness/connectionsFor/
listTargets/ensureTemplate with token-free projections; readiness checks for
app, workspace, connection, registered channels and outbox, Check readiness
action, scheduled refresh; health registered only when qqq-middleware-health is
present.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:28:25 -05:00
james.maesandClaude Opus 5.5 c795e9fa01 feat(oauth): Connect Slack per user and Install per tenant
Signed, expiring OAuth state bound to user, tenant and session (stateless across
pods; per-pod replay set), callback route via the javalin extension (provided),
row-bound encrypted tokens, Disconnect (auth.revoke) and Uninstall actions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:28:24 -05:00
james.maesandClaude Opus 5.5 34035be6b2 feat(templates): Slack template engine and PHI payload guard
Email-compatible variable language with mrkdwn escaping, Block Kit variables in
string positions only, size and block limits, built-in notification, digest and
delivery templates; PHI/PII variables tokenized or refused, SSN/MRN patterns
refused, SECURITY sends title and link only, canary test.
STAND-IN(core=QRun-IO/qqq#1142, removeBy=4.1.0-RC.8) for classified value tokens.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 12:28:22 -05:00