Owners and admins can set rules of the kind «when a ticket is created, moves, gets assigned, gets a comment or its pull request merges; if it is of this type, priority, area or label; then move it, assign it, label it, change its priority, comment or put it in the active sprint». Rules act as TaskStream within the workflow, run once per event and trigger no others. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
api-tracker-application
Casos de uso del tracker (CQRS).
- Import:
@task-stream/api/tracker/application - Capa:
application· Tags:scope:api-tracker,type:application
Contenido
- Services:
ProjectsService,IssuesService,CommentsService,ReleasesService,ChangesService(subscriptions),WorkflowsService(workflow de cada proyecto para presentar tickets, con una caché de 2 s). commands/: un fichero por command y otro por handler; cargan conWriteAccess(rehydrator) y guardan concommitAndWait().queries/: un fichero por query y otro por handler; leen de los puertosFind*Repositoryy comprueban el acceso (ReadAccess: miembros, o cualquiera si el proyecto es público;viewerIdnull = anónimo);SearchMyIssuesQueryyGetUpcomingReleasesQuerycruzan todos los proyectos del usuario («Mi trabajo»).event-handlers/: proyecciones (@EventsHandler) hacia el read model (incluida la línea temporal de cada ticket), notificaciones en tiempo real y feed de actividad.sagas/:ProjectDeletionSaga(cascada al borrar un proyecto y sus tickets),ReleaseArchivedSaga(los tickets sin terminar salen de una release archivada) yUserDeactivatedSaga(desasigna los tickets abiertos de un usuario que Pireon desactiva). Las ejecuta elEventsBridge; sus comandos son internos e idempotentes. Tests ensagas.spec.ts.analytics/: estadísticas y burnup calculados con funciones puras sobre la línea temporal (con tests).ports/: lookups de escritura,Find*,UpsertMaterialized*,ReleaseIssuesRepository,ChangeFeed,UserDirectory.TrackerApplicationModule.withInfrastructure(...).
Cómo añadir un caso de uso: Desarrollo.
Comandos
npx nx lint api-tracker-application
npx nx test api-tracker-application # Jest
Reglas de dependencia entre capas: Arquitectura.