Summary
- Added bulk create/delete endpoints for organization notification channels.
- Added cursor-based pagination to the daily-usage, deployment-usage, and workspace-usage endpoints, alongside the existing offset pagination.
- Moved the per-deployment and per-workspace usage endpoints from under
/billingto/usages— a breaking path change for existing callers. - Added
computeType/workerQueueNameto the daily-usage response, andbillingCurrency/x_ComputeType/x_WorkerQueueNameto its FOCUS-format variant, so cost rows from different worker queues at the same compute size are no longer indistinguishable.
Added
- Endpoints
POST /organizations/{organizationId}/notification-channels(LabsCreateNotificationChannels): Create up to 30 notification channels for an organization in one atomic request. Not idempotent — a retry after an unacknowledged2xxresponse creates the channels a second time. Returns aNotificationChannelsList.DELETE /organizations/{organizationId}/notification-channels(LabsDeleteNotificationChannels): Delete up to 30 notification channels for an organization in one atomic request. Fails the whole batch if any channel is not found, is still used by an alert or a monitor, or the caller cannot delete it.
- Schemas
NotificationChannel,NotificationChannelsList: a single notification channel and the list returned by the bulk create endpoint.BulkCreateNotificationChannelsRequest,BulkDeleteNotificationChannelsRequest: request bodies for the bulk create/delete endpoints (at most 30 channels or IDs per request).CreateNotificationChannelRequest: discriminated bytype, with one variant per channel type —CreateSlackNotificationChannelRequest,CreateEmailNotificationChannelRequest,CreatePagerDutyNotificationChannelRequest,CreateOpsgenieNotificationChannelRequest,CreateDagTriggerNotificationChannelRequest.SlackNotificationChannelDefinition,EmailNotificationChannelDefinition,PagerDutyNotificationChannelDefinition,OpsgenieNotificationChannelDefinition,DagTriggerNotificationChannelDefinition: the type-specific channel configuration (webhook URL, recipients, integration key, API key, or DAG trigger details).
- Properties
pageSize,pageToken(query parameters), andnextPageToken,pageSize,previousPageToken(response fields, all required): added to the daily-usage, deployment-usage, and workspace-usage endpoints, enabling cursor-mode pagination (AIP-158) alongside the existingoffset/limitmode.computeType,workerQueueName(strings): added toDailyUsage. The compute instance type and worker queue a cost row is attributed to, if applicable.billingCurrency(string, required),x_ComputeType,x_WorkerQueueName: added toFocusDailyUsage, the FOCUS-format equivalent of the above.
Changed
GET /organizations/{organizationId}/billing/aggregate/deployment-usageand.../workspace-usagemoved toGET /organizations/{organizationId}/usages/aggregate/deployment-usageand.../workspace-usage. This is a breaking path change for existing callers; thedaily-usage(cost) endpoint path is unchanged.sortson the daily-usage, deployment-usage, and workspace-usage endpoints is now a closed enum of<field>:asc/<field>:descvalues instead of an unconstrained string.limit’s minimum on these endpoints changed from0to1.- Endpoint descriptions no longer reference the internal Sigma cost breakdown export system that backs this data.
Summary
- Added bulk create/delete endpoints for organization allowed IP address ranges.
- Added an endpoint to retrieve Organization audit logs for a time period.
- Added three billing usage endpoints: daily usage, per-deployment usage, and per-workspace usage, synced from the org’s Sigma cost breakdown export.
Added
- Endpoints
POST /organizations/{organizationId}/allowed-ip-address-ranges(LabsCreateAllowedIpAddressRanges): Bulk create up to 1,000 allowed IP address (CIDR) ranges for an organization in one atomic request. Not idempotent — a retry after an unacknowledged2xxmay return409. Returns anAllowedIpAddressRangesList.DELETE /organizations/{organizationId}/allowed-ip-address-ranges(LabsDeleteAllowedIpAddressRanges): Bulk delete up to 1,000 allowed IP address ranges for an organization in one atomic request. Unknown or duplicate IDs are accepted and ignored.GET /organizations/{organizationId}/audit-logs(LabsGetOrganizationAuditLogs): Retrieve an organization’s audit logs for a time period, filtered withstartDateandendDate. Returns a raw byte stream (application/octet-stream).GET /organizations/{organizationId}/billing/daily-usage(LabsListDailyUsage): List daily deployment resource cost data. Filter bystartDate/endDate(max 12 months),workspaceId, ordeploymentId(up to 1,000 each), and choose the response shape withformat(astronomerorfocus— FOCUS format). Paginate withoffset/limitand sort withsorts. Enterprise+ tier only.GET /organizations/{organizationId}/billing/aggregate/deployment-usage(LabsListDeploymentUsage): List per-deployment task, DAG, and operator activity metrics, aggregated by day, week, or month (timeGrain). Filter bystartDate/endDate(max 12 months),workspaceId, ordeploymentId. Enterprise+ tier only.GET /organizations/{organizationId}/billing/aggregate/workspace-usage(LabsListWorkspaceUsage): List per-workspace task, DAG, and operator activity metrics, aggregated by day, week, or month (timeGrain). Filter bystartDate/endDate(max 12 months) orworkspaceId. Enterprise+ tier only.
- Schemas
AllowedIpAddressRange,AllowedIpAddressRangesList: represent a single allowed IP range and a paginated list of them.BulkCreateAllowedIpAddressRangesRequest,BulkDeleteAllowedIpAddressRangesRequest: request bodies for the bulk create/delete endpoints.DailyUsage,DailyUsageVariants,DailyUsagesPaginated: standard-format daily usage records and paginated response.FocusDailyUsage,FocusDailyUsagesPaginated: FOCUS-format daily usage records and paginated response.DeploymentUsage,DeploymentUsagesPaginated: per-deployment usage records and paginated response.WorkspaceUsage,WorkspaceUsagesPaginated: per-workspace usage records and paginated response.
Summary
- Added a
LabsListAlertsendpoint to the Labs API.GET /organizations/{organizationId}/alertslists alerts and their notification channels, with filtering by alert or deployment IDs.
Added
- Endpoints
GET /organizations/{organizationId}/alerts(LabsListAlerts): List alerts, including their notification channels. Filter withalertIdsordeploymentIds(up to 1,000 IDs each) and paginate withoffsetandlimit(default 20, maximum 1,000). Returns anAlertsList.
Summary
- Added bulk alert management to the Labs API. New
create-alerts,update-alerts, anddelete-alertsendpoints let clients manage up to 30, 30, and 20 alerts per request across six alert types: Dag success, Dag failure, Dag duration, Dag timeliness, task duration, and task failure.
Added
-
Endpoints
POST /organizations/{organizationId}/create-alerts(LabsCreateAlerts): Bulk create up to 30 alerts. Takes aCreateAlertsRequestand returns anAlertsList.POST /organizations/{organizationId}/update-alerts(LabsUpdateAlerts): Bulk update up to 30 alerts. Takes anUpdateAlertsRequestand returns anAlertsList.POST /organizations/{organizationId}/delete-alerts(LabsDeleteAlerts): Bulk delete up to 20 alerts. Takes aDeleteAlertsRequest. Returns204with no response body.
-
Schemas
Alert,AlertsList,AlertNotificationChannel,AlertRules,BasicSubjectProfile: Response shapes for an alert, a list of alerts, a notification channel, an alert’s rules, and the profile of the user or API token that created or updated an alert.CreateAlertsRequest,UpdateAlertsRequest,DeleteAlertsRequest: Bulk request wrappers.CreateAlertsRequestandUpdateAlertsRequesteach wrap a list ofCreateAlertRequestorUpdateAlertRequest, atype-discriminated union over the six alert types.DeleteAlertsRequestwraps a list ofalertIds.- Per-type request, properties, and rules schemas: each of the six alert types (
DAG_SUCCESS,DAG_FAILURE,DAG_DURATION,DAG_TIMELINESS,TASK_DURATION, andTASK_FAILURE) gets its own create and update request, properties, and rules schemas, for exampleCreateDagDurationAlertRequest,CreateDagDurationAlertProperties, andCreateDagDurationAlertRulesfor Dag duration alerts. Each type’s properties schema holds its type-specific configuration, for exampledagDurationSecondsfor Dag duration alerts ordagDeadlineanddaysOfWeekfor Dag timeliness alerts. PatternMatch,PatternMatchRequest: Scope an alert to specific Dag or task IDs using anentityType(DAG_IDorTASK_ID) andoperatorType(IS,IS_NOT,INCLUDES, orEXCLUDES).
Summary
- Initial release of the Astro Labs API, an experimental surface for Labs features.
- Adds Observability endpoints for AI-powered Dag-failure diagnosis: start a diagnosis run, poll its status, and stream its events over Server-Sent Events.
- Adds a demonstration
Exampleendpoint that shows how Labs minor-version pinning behaves through theX-Labs-API-Versionheader.
Added
-
Endpoints
POST /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs: Start an asynchronous Dag-failure diagnosis run.GET /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs/{diagnosisRunId}/status: Get the status of a diagnosis run.GET /organizations/{organizationId}/observability/deployments/{deploymentId}/dag-failure-diagnosis/runs/{diagnosisRunId}/events: Stream diagnosis events over Server-Sent Events, with reconnection through thelastEventIdquery parameter.
-
Schemas
DagFailureDiagnosisRun: A started diagnosis run. IncludesrunId,status, andcreatedAt.DagFailureDiagnosisRunStatus: The current status of a diagnosis run. IncludesrunId,status,createdAt, andupdatedAt.StartDagFailureDiagnosisRequest: The request body for starting a run. Required:dagId,runId. Optional:taskId,tryNumbers,skipCacheRead.Example: The demonstration response. Includesid,createdAt, andproofOfConcept.Error: The error response shape. Includesmessage,statusCode, andrequestId.