learning_ai_common_plat/services/tracker-service
saravanakumardb1 4ae7a9d023 refactor(services): rewire lib/ to @bytelyst/* packages + add docker-compose
Rewired all 4 services:
- lib/errors.ts → re-exports from @bytelyst/errors
- lib/cosmos.ts → re-exports from @bytelyst/cosmos
- lib/product-config.ts → uses loadProductIdentity()/getProductId() from @bytelyst/config
- lib/config.ts → kept self-contained (zod v3/v4 type mismatch with loadConfig)

Added workspace deps (@bytelyst/errors, @bytelyst/cosmos, @bytelyst/config) to all 4 services.
Added docker-compose.yml with Loki, Grafana, Traefik, and all 4 services.
Added .env.example with required env vars.
Added passWithNoTests to vitest.config.ts.
Pinned root zod to ^3.24.0 to match service zod versions.

All 12 projects build. 175 tests passing.
2026-02-12 11:49:42 -08:00
..
src refactor(services): rewire lib/ to @bytelyst/* packages + add docker-compose 2026-02-12 11:49:42 -08:00
.gitignore feat(services): add tracker-service (items, comments, votes, public roadmap) 2026-02-12 11:39:17 -08:00
Dockerfile feat(services): add tracker-service (items, comments, votes, public roadmap) 2026-02-12 11:39:17 -08:00
package.json refactor(services): rewire lib/ to @bytelyst/* packages + add docker-compose 2026-02-12 11:49:42 -08:00
README.md feat(services): add tracker-service (items, comments, votes, public roadmap) 2026-02-12 11:39:17 -08:00
tsconfig.json feat(services): add tracker-service (items, comments, votes, public roadmap) 2026-02-12 11:39:17 -08:00

Tracker Service

Product-agnostic issue tracker for feature requests, bugs, and task management. Built with Fastify + TypeScript + Azure Cosmos DB.

Port

4004 (configurable via PORT env var)

Modules

  • items — CRUD for tracker items (bugs, features, tasks) with filtering, pagination, and stats
  • comments — Threaded discussion on items
  • votes — Upvote toggle (1 per user per item)

API Endpoints

Method Path Description
GET /items List/filter/search items
POST /items Create item
GET /items/stats Aggregate counts by type/status/priority
GET /items/:id Get single item
PUT /items/:id Update item
PATCH /items/:id/status Quick status transition
DELETE /items/:id Delete item
GET /items/:itemId/comments List comments
POST /items/:itemId/comments Add comment
PUT /items/:itemId/comments/:id Edit comment
DELETE /items/:itemId/comments/:id Delete comment
POST /items/:itemId/vote Toggle upvote
GET /items/:itemId/votes List voters
GET /health Health check

Setup

cp .env .env   # fill in values
npm install
npm run dev            # starts with tsx watch on port 4004

Testing

npm test               # vitest run (29 tests)

Environment Variables

See .env for required variables:

  • COSMOS_ENDPOINT — Azure Cosmos DB endpoint
  • COSMOS_KEY — Cosmos DB primary key
  • COSMOS_DATABASE — Database name
  • JWT_SECRET — Shared secret for JWT verification (from platform-service)
  • DEFAULT_PRODUCT_ID — Default product scope (e.g., lysnrai)
  • PORT — Server port (default 4004)