wulf-pulse/app/api/notification-channels
lorentz 47cab788fc feat(09-06): owner column + role-scoped reads on notification channels
- GET /api/notification-channels: requireAuth(), admin sees all rows with owner_email JOIN, non-admin sees global-only
- GET accepts ?owner=global|personal|all filter parameter
- POST /api/notification-channels: requireAdmin(); preserves all four channel_type values (teams/telegram/ntfy/webhook); adds owner_user_id column
- [id] routes: requireAuth() + per-row authorization (isAdmin || isOwner); global rows require admin
- Admin channels page: Owner badge (Global vs Personal: email), Show filter select, disclaimer text for personal channels
2026-05-10 07:39:53 -04:00
..
[id] feat(09-06): owner column + role-scoped reads on notification channels 2026-05-10 07:39:53 -04:00
route.ts feat(09-06): owner column + role-scoped reads on notification channels 2026-05-10 07:39:53 -04:00