Back to work
Backend
Rocket.Chat Logs Viewer App
Rocket.Chat app for log triage: guarded Loki queries, RBAC checks, and a separate web UI for deeper inspection.

Rocket.Chat · TypeScript · Node.js · React · Vite · Tailwind · Loki · RBAC
Overview
Rocket.Chat app for log triage during incidents.
- Loki/Grafana stay the observability backend
/logsslash command with room and thread context- Query logic runs through a server-side guarded proxy
Features
/logsslash command with room and thread context- Private app API endpoints for query, audit, actions, saved views, and targets
- RBAC checks and request audit trail
- React web UI for filtering and row-level actions
- Validation, rate limits, selector enforcement, and redaction
Workflow
- Triage starts in chat
- Longer reads move to the web UI when needed
- Shared snapshots stay scoped to the room or thread
Source
Outcomes
Guarded Loki queries inside Rocket.Chat, plus a web UI for longer log reads.
Challenges and solutions
Challenges
- Restoring fast log access after Rocket.Chat removed in-app log visibility
- Blocking direct client-side Loki queries and permission bypasses
- Handling large result sets without cloning a full observability UI
- Keeping in-chat sharing scoped and traceable
Solutions
- Slash command carries room and thread context into triage actions
- Server-side Loki proxy with RBAC checks, validation, bounds, and audit logging
- React web UI with virtualization for longer reads
- Snapshot-backed share flows scoped to the room or thread
Technology stack
Backend
TypeScript · Node.js · Rocket.Chat Apps-Engine
Frontend
React · Vite · Tailwind
Observability
Loki
Security
RBAC · Rate limiting · Audit trail · Redaction
Packaging
Bun · Private app packaging · Optional same-origin deployment