Ensign Bug Tracker
A unified internal bug tracking tool for Ensign's product suite, designed for fast triage, centralised reporting, and multi-product visibility. Built as a standalone Next.js + Postgres app with ensign-sso integration for access control and audit trails. Features Linear-inspired UX, GitHub version context, and client-specific issue tracking.
Goals
- Reduce average time-to-resolution for internal bug reports
- Centralise bug tracking across all Ensign products in one self-hosted tool
- Enforce access control and audit logging via ensign-sso integration
Features
- Bug Creation — Submit new bugs with title, description, product, version, priority, status, and optional client association.
- Bug Assignment & Triage — Assign bugs to internal users, update priority/status, and sort by product/version/team.
- Commenting — Threaded comments on bugs for discussion and progress updates.
- Search & Filtering — Full-text search and filters by product, status, priority, assignee, and client.
- GitHub Integration (Read-only) — Pull version/branch/release context from GitHub for accurate bug-product linkage.
- Client Tracking — Associate bugs with client entities and track metrics like issue count and reply rate.
- Audit Trail — Log creation, updates, assignment, and status changes with user, timestamp, and diff.
- Dashboarding — View bug trends, resolution times, open counts, and team workload.
- File Attachments — Upload and store screenshots/logs via S3-compatible object storage.
Milestones
- Core Domain & Auth — Establish multi-tenant bug tracking entities, ensign-sso integration, and audit logging.
- Bug Lifecycle — Implement CRUD, assignment, status/priority updates, and commenting.
- Search & GitHub Linking — Enable full-text search and populate version context from GitHub repos.
- Client Metrics & Dashboards — Introduce client entity, link bugs, and surface key metrics via dashboards.
- Attachments & Polish — Add S3-backed file uploads and refine UX for mobile/tablet responsiveness.
Tasks
Core Domain & Auth
- Set up Next.js + Drizzle project with multi-tenancy (Urgent · 1d)
- Create Bug, Client, and related Drizzle schemas (Urgent · 1d)
- Integrate ensign-sso JWT verification and RequestContextService (Urgent · 1d)
- Implement audit trail middleware for bug entity changes (High · 1d)
Bug Lifecycle
- Build Bug CRUD API endpoints (Urgent · 2d)
- Implement server actions for bug creation and updates (Urgent · 1d)
- Add UI for bug creation/editing using React Hook Form + Zod (Urgent · 2d)
- Implement comment threading on bug detail view (High · 1d)
Search & GitHub Linking
- Build TanStack Table-based bug list with sorting/filtering (Urgent · 2d)
- Add full-text search to bug listing query (High · 1d)
- Integrate GitHub API read-only client for repo/version lookup (High · 2d)
- Design and seed fixed taxonomy for status/priority enums (Medium · 0.5d)
Client Metrics & Dashboards
- Create Client entity with issue count and reply rate fields (High · 1d)
- Link Bugs to Clients and expose via API (High · 1d)
- Build dashboard view with Recharts for bug trends (High · 2d)
Attachments & Polish
- Implement S3-compatible file upload endpoint and storage (Medium · 2d)
- Add file attachment UI on bug creation/view (Medium · 1d)
- Optimise layout for mobile/tablet responsiveness (Medium · 1d)
Out of scope
- Email alerts or notifications
- Configurable status/priority taxonomies (fixed only in v1)
- Offline submission support
- GitHub issue auto-creation or commit linkage
- Third-party bug reporter integrations (e.g. crash logs)
- Advanced role-based permissions beyond ensign-sso