Owners and admins turn it on in Configuración → General, pick what it
shows (tickets per status, the sprint under way, release forecasts,
open epics and activity per day) and can renew or drop the link. Whoever
has it sees /share/{token} without an account: only those blocks, no
people nor single tickets but the epics, no links into the app, read
again every minute. A renewed or dropped link says it no longer works.
REST (GET/PUT/DELETE /api/projects/{project}/share and the public
GET /api/shared/dashboards/{token}) and GraphQL (dashboardShare,
shareDashboard, unshareDashboard, sharedDashboard). The token is kept
in dashboard_shares and goes with the project.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
api-tracker-domain
El modelo del producto: proyectos, tickets, comentarios y releases.
- Import:
@task-stream/api/tracker/domain - Capa:
domain· Tags:scope:api-tracker,type:domain
Contenido
- Agregados event-sourced:
Project,Issue,Comment,Release. Validan en sus métodos y cambian de estado enon<Evento>. events/: un fichero por evento (IssueCreatedEvent,IssueStatusChangedEvent…), todos con@AutowiredEvent.- Proyectos públicos (
Project.isPublic) y borrado:Project.delete(propietario, confirmando la clave),Issue.delete,Release.delete(los usa la cascada);SYSTEM_ACTOR_IDpara cambios que no hace una persona. factories/:ProjectFactory,IssueFactory,CommentFactory,ReleaseFactory(@Injectable()).project/project-settings.ts: configuración por proyecto (estados con categoría, transiciones, tipos, áreas), sus valores por defecto,ProjectWorkflow(lo que consultan tickets y queries) yvalidateProjectSettings(archivar, nunca borrar).read-models/: forma de las vistas de lectura (ProjectReadModel,IssueReadModel…), incluida la línea temporal de los tickets y las estadísticas (analytics.read-model.ts).
Reglas y workflow: API.
Comandos
npx nx lint api-tracker-domain
npx nx test api-tracker-domain # Jest
Reglas de dependencia entre capas: Arquitectura.