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>
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,ReleaseResolverySubscriptionResolver; solo llaman a services. - Tipos, inputs (con
class-validator) y enums de GraphQL (code-first). http/: controladores RESTProjectsController,IssuesController,CommentsController,ReleasesController(mismos services), DTOs con@nestjs/swaggeryRefs(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()yviewerOf(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.