Changelog
Changelog
v0.2.0 — Monitoring & Data Export
Implemented in tasks TG-027 — TG-031
Observability (TG-027)
@terma/observabilitypackage — OpenTelemetry SDK for all services- Auto-instrumentation HTTP (
@opentelemetry/instrumentation-http) - PrometheusExporter — metrics on port
9090(api) /9091(bot) - OTLPTraceExporter — traces to Jaeger
- Grafana dashboards (auto-provisioned, 6 panels)
/api/healthwith OTel status (initialized,tracer,meter)- Structured JSON logs (pino) with
traceId/spanId - Jaeger: OTLP HTTP (port 4318), UI (port 16686)
Trace Propagation (TG-029)
- W3C Trace Context (
traceparent) on every HTTP call - Bot → API:
createApiClientwith automaticpropagation.inject() - Manual spans for Grammy commands:
withSpan("grammy.command.{name}", ...) - Filter traces by
error=trueandhttp.status_code>=500
Metric Instruments (TG-030)
http.server.duration— latency histogram (ms), p50/p95/p99http.server.request_count— request counter by route/statusprocess.memory.usage— memory consumptionprocess.cpu.utilization— CPU load- Grafana dashboard with tabs: metrics, tracing, logs
- Last 5xx Errors with clickable traceId links to Jaeger
CSV Export/Import (TG-031)
/export_passes— export all passes to CSV/export_blacklist— export blacklist to CSV/export_period— export passes for a date range (CSV)/import_passes— import passes from CSV
v1.0.0 — Initial Release
Implemented in tasks TG-001 — TG-007
Foundation (TG-001, TG-002)
- Turborepo + pnpm monorepo
- Fastify REST API (TypeScript)
- PostgreSQL + Drizzle ORM, Redis
- Grammy Telegram Bot
- Astro Starlight documentation
User & Role Management (TG-003)
/start,/menucommands- Invite system:
/invite_resident,/invite_guard,/invite_admin - Deep-link role activation:
https://t.me/bot?start=inv_<token> /requests— view active invitations- Roles:
user,resident,guard,admin
Pass Management (TG-005)
/pass_create— create pass (permanent / one-time / temporary)- Vehicle types: car, truck, special
- Russian and foreign plate support
- Blacklist check on creation
/my_passes— resident’s active passes list/pass_cancel— cancel pass (via inline buttons)/verify_pass— guard pass verification
Blacklist (TG-006)
/block_car— block vehicle with photo and reason- Automatic cancellation of all passes for the plate
- Pass owner Telegram notification
/check_block— check plate blacklist status/unblock_car— unblock vehicle (admin only)
Documentation & Mini App (TG-007)
- Full user documentation RU/EN
/miniappcommand → opens docs as Telegram Mini App- Mermaid flow diagrams
- Multilingual search (Pagefind)
- Docker
docsservice on nginx (port 4321)