Operation

Projects, tasks, teams, cycles, milestones, triage, and a GitHub issue integration.

Operation is the delivery-work plugin. Teams define statuses, cycles (sprints), and milestones; tasks carry assignees, priorities, estimate points, notes, and activity records. A per-team triage queue collects incoming work that converts into tasks. Tasks are a segment content type (operation:task.tasks), and other services can create tasks over tRPC: frontline calls task.createFromSource when a conversation converts into a task.

For workflow automation, see Automations & Approvals. For converting inbox conversations into tasks, see Frontline.

Enabling and ports

ENABLED_PLUGINS=operation
ProjectRoleDev port
operation_apiFederated GraphQL subgraph + tRPC, subscriptions, BullMQ workers3307
operation_uiModule Federation remote3006

main.ts mounts GraphQL and the tRPC app router (task.*, fields.getFieldList), plus an Express router for the GitHub integration endpoints (/pl:operation/integrations/github/*). It also registers permissions, automations, notifications, segments, properties, tags, and import/export.

Module map

ModulePurposeGuide
task, status, activity, note, triageTasks, per-team status sets, notes/activity, triage queueTasks & Statuses
project, cycle, milestoneProjects, sprints, milestone rollupsProjects, Cycles & Milestones
team, template, fieldsTeams, membership, estimate types, task templates, custom fieldsTeams & Templates
githubIntegration, automationsGitHub App config, issue sync, automation triggers/actionsGitHub Integration & Automations

Task ids are Mongo ObjectIds, not generated string ids. Keep this in mind when writing tRPC callers or segment producers.

Platform integrations

  • Segments: operation:task.tasks content type with filterable fields, member listing/counting, materialised segmentIds, and the user.assignedTasks / user.createdTasks relations.
  • Automations: segment triggers for tasks and projects plus custom completion triggers; "Create task" and "Create project" actions. See GitHub Integration & Automations.
  • Import/export: operation:task.task (import + export) and operation:project.project (export) producers.
  • Notifications: taskAssignee, taskStatus, projectAssignee, projectStatus events.
  • Properties: task and project property types with systemFields (code, name, type).
  • Subscriptions: operationTaskChanged, operationTaskListChanged, operationProjectChanged, operationProjectListChanged, operationActivityChanged.
  • Scheduled worker: operations-daily-cycles-check (hourly 0 * * * * UTC) ends cycles that finished yesterday and starts cycles beginning today, per tenant timezone (worker/index.ts).

Configuration

VariablePurpose
GITHUB_APP_ID / GITHUB_PRIVATE_KEYGitHub App credentials for the issue integration
GITHUB_WEBHOOK_SECRETHMAC-SHA256 verification on /integrations/github/webhook
MONGO_URLTenant MongoDB connection
DOMAINBuilds task links (e.g. automation outputs)
VERSIONsaas fans the daily cycle check out per organization
NODE_ENVSelects the compiled subscription plugin path
TIMEZONECore config (not env): tenant timezone used by the cycle checker
Was this helpful?