Files
task-stream/libs/api/tracker/presenters
Josep Piguillem 034704e46f feat: alerts open bugs, and repeats of the same problem go to that bug
Owners and admins turn on a secret URL per project (Settings →
Integrations), POST /api/webhooks/alerts/{project}/{token}, that Sentry,
Uptime Kuma, Prometheus Alertmanager, Grafana or any tool sending JSON
with a title can call. A new problem opens a bug as TaskStream (label
«alerta», chosen type and priority); while that bug is open, the same
fingerprint goes to it (a comment at most every 30 minutes) and
«resolved» is said on it; once it is closed, a new bug names the old
one. Alerts of a project are handled one at a time, so two at once open
one bug, and a bug not yet projected still counts as open. Unknown
project, alerts off or a bad token all answer 403.

TaskStream may now comment as the system actor, like it already opened
tickets for public proposals. Stored in Mongo (alert_integrations,
alert_traces), not in the event store.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 12:36:55 +02:00
..
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00
2026-10-03 13:40:26 +02:00

api-tracker-presenters

API GraphQL y REST (OpenAPI) del tracker.

  • Import: @task-stream/api/tracker/presenters
  • Capa: presenters · Tags: scope:api-tracker, type:presenters

Contenido

  • Resolvers ProjectResolver, IssueResolver, CommentResolver, ReleaseResolver y SubscriptionResolver; solo llaman a services.
  • Tipos, inputs (con class-validator) y enums de GraphQL (code-first).
  • http/: controladores REST ProjectsController, IssuesController, CommentsController, ReleasesController (mismos services), DTOs con @nestjs/swagger y Refs (proyectos y tickets por id o clave; añade a cada ticket sus transiciones permitidas según el workflow de su proyecto).
  • ExploreController (GET /api/explore/projects, sin token). Las lecturas usan @OptionalAuth() y viewerOf(me) (null = anónimo) para servir proyectos públicos sin sesión.
  • common/settings.ts: configuración del proyecto con las transiciones como lista (lo que viaja por GraphQL y REST).

Operaciones disponibles: GraphQL y REST.

Comandos

npx nx lint api-tracker-presenters
npx nx test api-tracker-presenters    # Jest

Reglas de dependencia entre capas: Arquitectura.