Capabilities

Milestones & Workstreams

Read governed delivery timeline geometry and run explicit Delivery milestone commands without letting advisory phase geometry become schedule authority.

Interfaces

RESTAvailable

REST exposes delivery timeline reads plus explicit milestone status, target-date, and progress commands.

MCPAvailable

MCP tools read the same delivery timeline surface and run the same confirmed milestone commands as REST.

GraphQLAvailable

GraphQL exposes deliveryTimeline, deliveryMilestones, deliveryMilestone, deliveryWorkstreams, and explicit milestone command mutations.

WebhooksAvailable

Milestone command facts are emitted through the durable webhook outbox for status, target-date, and progress changes.

Required scopes

delivery-timeline:readAPI key scoperequired
Read governed delivery milestones, workstreams, and timeline geometry without moving execution coordinates.
delivery-timeline:writeAPI key scoperequired
Run explicit milestone status, target-date, and progress commands through the governed Delivery command path.

Examples

Get delivery timeline view in REST API reference

curl -X GET "https://www.digitalstack360.com/api/v1/delivery/timeline?project_id=proj_abc123" \
  -H "Authorization: Bearer $DS_API_KEY"

List delivery milestones view in REST API reference

curl -X GET "https://www.digitalstack360.com/api/v1/delivery/milestones?project_id=proj_abc123" \
  -H "Authorization: Bearer $DS_API_KEY"

Retrieve a delivery milestone view in REST API reference

curl -X GET "https://www.digitalstack360.com/api/v1/delivery/milestones/dm_01k2..." \
  -H "Authorization: Bearer $DS_API_KEY"

List delivery workstreams view in REST API reference

curl -X GET "https://www.digitalstack360.com/api/v1/delivery/workstreams?project_id=proj_abc123" \
  -H "Authorization: Bearer $DS_API_KEY"

Update milestone status view in REST API reference

curl -X POST "https://www.digitalstack360.com/api/v1/delivery/milestones/dm_01k2.../status" \
  -H "Authorization: Bearer $DS_API_KEY" \
  -H "Idempotency-Key: milestone-status-42-v1" \
  -H "Content-Type: application/json" \
  -d '{"status":"at_risk","expected_updated_at":"2026-07-15T14:20:00Z","reason":"Provider evidence shows blocked scope.","confirm":true}'

Update milestone target date view in REST API reference

curl -X POST "https://www.digitalstack360.com/api/v1/delivery/milestones/dm_01k2.../target-date" \
  -H "Authorization: Bearer $DS_API_KEY" \
  -H "Idempotency-Key: milestone-target-42-v1" \
  -H "Content-Type: application/json" \
  -d '{"target_date":"2026-08-07","expected_updated_at":"2026-07-15T14:20:00Z","reason":"Customer dependency moved one week.","confirm":true}'

Update milestone progress view in REST API reference

curl -X POST "https://www.digitalstack360.com/api/v1/delivery/milestones/dm_01k2.../progress" \
  -H "Authorization: Bearer $DS_API_KEY" \
  -H "Idempotency-Key: milestone-progress-42-v1" \
  -H "Content-Type: application/json" \
  -d '{"completion_pct":70,"projected_date":"2026-08-02","expected_updated_at":"2026-07-15T14:20:00Z","confirm":true}'
Show me the delivery timeline for project {project_id}.
List milestones for project {project_id}.
Get milestone {milestone_id}.
List workstreams for project {project_id}.
After I confirm, mark milestone {milestone_id} at risk.
After I confirm, move milestone {milestone_id} target date to 2026-08-07.
After I confirm, update milestone {milestone_id} to 70% complete.

GraphQL examples

Read delivery timelineAvailabledelivery-timeline:read

Read milestones and workstreams together for one project.

query DeliveryTimeline($projectId: ID!) {
  deliveryTimeline(projectId: $projectId) {
    projectId
    milestones {
      id
      title
      status
      targetDate
      completionPct
      scopedWorkItemIds
    }
    workstreams {
      id
      name
      status
      isDefault
    }
  }
}
Update milestone statusAvailabledelivery-timeline:write

Apply one explicit governed milestone status command.

mutation UpdateDeliveryMilestoneStatus($input: UpdateDeliveryMilestoneStatusInput!) {
  updateDeliveryMilestoneStatus(input: $input) {
    ok
    milestone { id title status updatedAt }
    changedFields
    eventType
    idempotencyReplayed
    errors { code message path }
  }
}
Update target date and progressAvailabledelivery-timeline:write

Shift the explicit milestone target date and update progress without resizing a phase or moving execution work.

mutation UpdateDeliveryMilestonePlan($target: UpdateDeliveryMilestoneTargetDateInput!, $progress: UpdateDeliveryMilestoneProgressInput!) {
  updateDeliveryMilestoneTargetDate(input: $target) {
    ok
    milestone { id targetDate updatedAt }
    eventType
    errors { code message path }
  }
  updateDeliveryMilestoneProgress(input: $progress) {
    ok
    milestone { id completionPct projectedDate updatedAt }
    eventType
    errors { code message path }
  }
}

Webhook emits

milestone.status_changedAvailable

A governed milestone status command changed the Delivery milestone status.

Resource: milestone

milestone_idproject_idfrom_statusto_statusoccurred_at
milestone.target_date_changedAvailable

A governed milestone target-date command changed the explicit target date.

Resource: milestone

milestone_idproject_idprior_target_datetarget_dateoccurred_at
milestone.progress_updatedAvailable

A governed milestone progress command changed completion percentage and/or projected date.

Resource: milestone

milestone_idproject_idprior_completion_pctcompletion_pctprior_projected_dateprojected_dateoccurred_at

All webhook events use the shared v1 envelope, signed delivery, and minimal payload rule. Fetch by resource id for expanded data.

System boundaries

Systems commonly integrated with this capability. Each row states the boundary and its native status; it does not transfer canonical authority to the connected system.

DigitalStack owns

  • Delivery milestone identity, status, target date, projected date, progress, and audit-command path
  • Milestone-to-work scoping via delivery_milestone_scope
  • Read-only workstream projection through the execution read provider

Source systems own

  • Provider issue/board evidence that may inform milestone status and progress
  • Provider-native workstream/project labels unless explicitly promoted into DigitalStack authority

Typical integration patterns

DigitalStack Delivery
Authoritative milestone command path for status, target date, and progress.
Jira / Azure DevOps / Linear
Supply execution evidence and provider workstream context; they do not own DigitalStack milestone commands.DigitalStack has a native connection and ingestion foundation for this system already — public developer-platform exposure for this capability is still limited or planned.

Related guides