Cybersecurity-Projects/PROJECTS/intermediate/credential-rotation-enforcer/spec/unit/notifiers
CarterPerez-dev 67d65a934f feat(notifiers): structured-log subscriber + Telegram bidirectional bot
LogNotifier subscribes (Drop overflow) and emits stdlib Log lines with
structured kwargs (credential_id, rotation_id, severity, etc.) suitable
for downstream ingestion by journald/vector/fluentd.

Telegram is a thin HTTP::Client wrapper for sendMessage and getUpdates.
TelegramSubscriber sends emoji-prefixed alerts on RotationFailed,
DriftDetected, PolicyViolation, AlertRaised; success notifications gated
by the notify_on_success flag. Errors are swallowed so a flaky bot never
blocks the engine.

TelegramBot does long-polling getUpdates and dispatches commands:
- viewer tier: /status /queue /history /alerts /help
- operator tier: viewer + /rotate + /snooze
ACL is by chat_id allowlist (bot token + chat IDs in env vars).
/rotate publishes RotationScheduled to the bus.

11 unit specs cover send_message + error handling + getUpdates parsing,
subscriber dispatch, success-suppression flag, and bot ACL enforcement
(unauthorized / viewer-blocked-from-mutations / operator-can-rotate).
2026-04-29 01:07:44 -04:00
..
.gitkeep feat(cre): source tree skeleton with empty module dirs and CI workflow 2026-04-28 23:54:59 -04:00
log_notifier_spec.cr feat(notifiers): structured-log subscriber + Telegram bidirectional bot 2026-04-29 01:07:44 -04:00
telegram_bot_spec.cr feat(notifiers): structured-log subscriber + Telegram bidirectional bot 2026-04-29 01:07:44 -04:00
telegram_spec.cr feat(notifiers): structured-log subscriber + Telegram bidirectional bot 2026-04-29 01:07:44 -04:00