Download OpenAPI specification:
Standalone AWS microservice for managing scheduled API orchestrations.
The Scheduler Service handles all scheduling and execution responsibilities for the Cronverse platform. It operates independently from the main application, accepting fully denormalized configurations and managing the entire lifecycle of scheduled API orchestrations.
The service can send webhook notifications to configured URLs when executions complete (success or failure). Webhooks are signed with HMAC-SHA256 for authenticity verification.
Creates a new schedule in EventBridge Scheduler with the provided configuration. The configuration must include at least one endpoint and specify the execution strategy.
required | object (Configuration) |
{- "configuration": {
- "schedule": {
- "expression": "cron(0 9 * * ? *)",
- "timezone": "America/New_York",
- "enabled": true
}, - "executionStrategy": "parallel",
- "aggregationMode": "aggregate",
- "continueOnFailure": false,
- "endpoints": [
- {
- "id": "endpoint-1",
- "name": "User API",
- "method": "GET",
- "timeout": 30
}
], - "integrations": [ ]
}
}{- "scheduleId": "arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123",
- "createdAt": "2025-01-16T10:30:00Z"
}Retrieves the configuration and state of a specific schedule from EventBridge Scheduler.
| scheduleId required | string Example: arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123 The unique identifier for the schedule (EventBridge Scheduler ARN or name).
Example: |
{- "scheduleId": "arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123",
- "configuration": {
- "schedule": {
- "expression": "cron(0 9 * * ? *)",
- "timezone": "America/New_York",
- "enabled": true
}, - "executionStrategy": "parallel",
- "aggregationMode": "aggregate",
- "continueOnFailure": false,
- "endpoints": [
], - "integrations": [ ]
}, - "state": "ENABLED",
- "createdAt": "2025-01-16T10:30:00Z",
- "modifiedAt": "2025-01-16T10:30:00Z"
}Updates an existing schedule's configuration. Supports partial updates. Changes take effect immediately for future executions.
| scheduleId required | string Example: arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123 The unique identifier for the schedule (EventBridge Scheduler ARN or name).
Example: |
required | object Partial configuration update (all fields optional) |
{- "configuration": {
- "schedule": {
- "expression": "cron(0 10 * * ? *)"
}
}
}{- "scheduleId": "arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123",
- "modifiedAt": "2025-01-16T11:45:00Z"
}Deletes a schedule from EventBridge Scheduler. This stops all future executions. Historical execution data in DynamoDB is preserved.
| scheduleId required | string Example: arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123 The unique identifier for the schedule (EventBridge Scheduler ARN or name).
Example: |
{- "scheduleId": "arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123",
- "deletedAt": "2025-01-16T12:00:00Z"
}Retrieves execution history from DynamoDB for a specific schedule. Results are ordered by start time (newest first) with pagination support.
| scheduleId required | string Example: arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123 The unique identifier for the schedule (EventBridge Scheduler ARN or name).
Example: |
| limit | integer [ 1 .. 100 ] Default: 20 Maximum number of executions to return (1-100) |
| nextToken | string Pagination token from previous response |
{- "executions": [
- {
- "executionId": "exec-20250116-abc123",
- "scheduleId": "arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123",
- "status": "SUCCEEDED",
- "startedAt": "2025-01-16T09:00:00Z",
- "stoppedAt": "2025-01-16T09:05:30Z"
}, - {
- "executionId": "exec-20250115-def456",
- "scheduleId": "arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123",
- "status": "RUNNING",
- "startedAt": "2025-01-15T09:00:00Z"
}
], - "nextToken": "eyJzY2hlZHVsZUlkIjoiYXJuOmF3czpzY2hlZHVsZXI6ZXUtY2VudHJhbC0xOjEyMzQ1Njc4OTAxMjpzY2hlZHVsZS9jcm9udmVyc2Uvc2NoZWR1bGUtYWJjMTIzIiwiZXhlY3V0aW9uSWQiOiJleGVjLTIwMjUwMTE1LWRlZjQ1NiJ9"
}Retrieves detailed information about a specific execution from DynamoDB. For successful executions, includes a signed S3 URL to download the consolidated data.
| scheduleId required | string Example: arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123 The unique identifier for the schedule (EventBridge Scheduler ARN or name).
Example: |
| executionId required | string Example: exec-20250116-abc123 The unique identifier for the execution.
Example: |
{- "execution": {
- "executionId": "exec-20250116-abc123",
- "scheduleId": "arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123",
- "status": "SUCCEEDED",
- "startedAt": "2025-01-16T09:00:00Z",
- "stoppedAt": "2025-01-16T09:05:30Z"
}, - "expiresAt": "2025-01-17T09:05:30Z"
}Manually starts a Step Functions execution for the specified schedule. This is independent of the schedule's cron expression and does not affect future scheduled executions.
| scheduleId required | string Example: arn:aws:scheduler:eu-central-1:123456789012:schedule/cronverse/schedule-abc123 The unique identifier for the schedule (EventBridge Scheduler ARN or name).
Example: |
{- "executionId": "exec-manual-20250116-xyz789",
- "startedAt": "2025-01-16T14:30:00Z"
}The scheduler service sends this webhook when an execution completes (either successfully or with failure).
Webhooks are signed using HMAC-SHA256 with the secret provided in the notification.secret field.
The signature is sent in the X-Scheduler-Signature header as a hex-encoded string.
To verify the webhook:
X-Scheduler-Signature headerconst crypto = require('crypto');
const signature = crypto
.createHmac('sha256', secret)
.update(JSON.stringify(payload))
.digest('hex');
Failed webhook deliveries are retried with exponential backoff:
| X-Scheduler-Signature required | string Example: a1b2c3d4e5f6... HMAC-SHA256 signature of the request body (hex-encoded) |
| status required | string |
| startedAt required | string <date-time> ISO 8601 timestamp when execution started |
| finishedAt required | string <date-time> ISO 8601 timestamp when execution completed |
object Custom metadata from configuration | |
| dataUrl required | string <uri> Signed S3 URL for downloading consolidated payload (24-hour expiry) |
{- "status": "succeeded",
- "startedAt": "2025-01-16T09:00:00Z",
- "finishedAt": "2025-01-16T09:05:30Z",
- "metadata": {
- "customField": "customValue"
},
}