Data Source Scheduling Configuration

Configure priority scheduling and extraction times for data sources

Overview

The Data Source Scheduling Configuration APIs allow administrators to configure advanced scheduling options for individual data sources, including:

  • Priority scheduling: Assign priorities (1-100) to ensure extraction jobs are processed ahead of standard data sources

  • Scheduled extraction times: Define specific times of day when extractions should occur (in 30-minute intervals)

  • Day-of-week scheduling: Restrict extractions to precise days of the week

These APIs are intended primarily for use with Veza Lifecycle Management to ensure critical data sources (such as HR systems) are refreshed at predictable times to support downstream automation workflows.

Examples

Source of Identity Scheduling

Configure HR system data sources to extract at specific times to ensure identity data is current before provisioning workflows execute:

# Configure Workday to extract weekdays at 6 AM Eastern
curl -X POST "$BASE_URL/api/private/providers/datasources/{workday_datasource_id}/scheduling_config" \
  -H "authorization: Bearer $VEZA_TOKEN" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "priority": 100,
    "timezone": "America/New_York",
    "scheduled_extraction_times": ["06:00:00"],
    "scheduled_days_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"]
  }'

Prevent Extraction During Business Hours

Schedule non-critical extractions only on weekends to reduce workload during business hours:

curl -X POST "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
  -H "authorization: Bearer $VEZA_TOKEN" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "priority": 100,
    "timezone": "America/Los_Angeles",
    "scheduled_extraction_times": ["00:00:00", "12:00:00"],
    "scheduled_days_of_week": ["SATURDAY", "SUNDAY"]
  }'

Endpoints

Method
Endpoint
Description

POST

/api/private/providers/datasources/{datasource_id}/scheduling_config

Create or update scheduling configuration

GET

/api/private/providers/datasources/{datasource_id}/scheduling_config

Get configuration for a specific data source

GET

/api/private/providers/datasources/scheduling_configs

List all scheduling configurations

DELETE

/api/private/providers/datasources/{datasource_id}/scheduling_config

Remove scheduling configuration


Create or Update Scheduling Configuration

Endpoint

POST /api/private/providers/datasources/{datasource_id}/scheduling_config

Description

Creates or updates the scheduling configuration for a specific data source. If a configuration already exists for the data source, it will be updated with the new values; otherwise, a new configuration will be created.

Path Parameters

Parameter
Type
Required?
Description

datasource_id

string (UUID)

Required

The unique identifier of the data source

Request Body

The request body contains the configuration fields directly (no wrapper object needed):

Field
Type
Required?
Description

priority

integer

Required

Priority level (1-100). Must be 100 when scheduled_extraction_times are configured

timezone

string

Conditional

IANA timezone (e.g., America/New_York). Required if scheduled_extraction_times or scheduled_days_of_week are provided

scheduled_extraction_times

array[string]

Optional

Extraction times in HH:MM:SS format. Minutes must be :00 or :30, seconds must be :00. Times must be at least 1 hour apart

scheduled_days_of_week

array[string]

Optional

Days when extractions should run: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY. Requires scheduled_extraction_times to be set

Note: The datasource_id is specified in the URL path and should not be included in the request body.

Validation Rules

  • Priority: Must be between 1-100 (where 100 is the highest priority)

    • When scheduled_extraction_times are configured, priority must be 100 to ensure jobs are processed closest to the configured times

    • Priority 1-99 can be used without schedules for edge cases requiring a higher priority than standard periodic scheduling

    • Extraction and parsing jobs are picked up in decreasing order of priority, followed by creation timestamp

  • Timezone: Required when either scheduled_extraction_times or scheduled_days_of_week are provided. Must be a valid IANA timezone

  • Extraction times:

    • Must be in HH:MM:SS format

    • Minutes must be :00 or :30 (30-minute intervals only)

    • Seconds must be :00

    • Minimum 1-hour gap between adjacent times

  • Days of the week:

    • Requires scheduled_extraction_times to be non-empty

    • Automatically sorted (Sunday first)

    • Empty array or omitted means all days allowed

  • System limit: A maximum of 100 data sources can have scheduling configurations (limit will be enforced in a future release)

Request Examples

curl -X POST "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
  -H "authorization: Bearer $VEZA_TOKEN" \
  -H "Content-Type: application/json" \
  --data-raw '{
    "priority": 100,
    "timezone": "America/New_York",
    "scheduled_extraction_times": ["09:00:00", "13:30:00", "18:30:00"],
    "scheduled_days_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"]
  }'

Response Examples

Standard Response:

{
  "value": {
    "datasource_id": "019a0f2b-53cd-7c5d-904f-bf2588b876d5",
    "priority": "100",
    "datasource_name": "AWS S3 (527398259632)",
    "datasource_type": "EXTRACTOR",
    "timezone": "America/New_York",
    "scheduled_extraction_times": ["09:00:00", "13:30:00", "18:30:00"],
    "created_at": "2025-10-28T02:34:27.794138246Z",
    "updated_at": "2025-10-31T19:42:43.705828675Z",
    "scheduled_days_of_week": ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY"]
  }
}

Error Response (Invalid Time Format):

{
  "code": "INVALID_ARGUMENT",
  "message": "invalid time format '09:15:00': only 00 and 30 minutes of the hour are supported",
  "details": []
}

Error Response (Limit Reached):

{
  "code": "INVALID_ARGUMENT",
  "message": "Cannot create scheduling configuration. Limit of 100 configurations is reached.",
  "details": []
}

Get Scheduling Configuration

Endpoint

GET /api/private/providers/datasources/{datasource_id}/scheduling_config

Description

Retrieves the scheduling configuration for a specific data source.

Path Parameters

Parameter
Type
Required?
Description

datasource_id

string (UUID)

Required

The unique identifier of the data source

Request Examples

curl -X GET "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
  -H "authorization: Bearer $VEZA_TOKEN"

Response Examples

Standard Response:

{
  "value": {
    "datasource_id": "0199827a-402d-7554-af7b-cb3489b68402",
    "priority": "100",
    "datasource_name": "AWS IAM Volatile (527398259632)",
    "datasource_type": "EXTRACTOR",
    "timezone": "America/New_York",
    "scheduled_extraction_times": ["09:00:00", "13:30:00", "18:30:00"],
    "created_at": "2025-10-10T12:52:11.659562336Z",
    "updated_at": "2025-10-10T12:52:11.659562336Z",
    "scheduled_days_of_week": ["MONDAY", "WEDNESDAY", "FRIDAY"]
  }
}

Error Response (Not Found):

{
  "code": "NOT_FOUND",
  "message": "datasource_scheduling_config not found",
  "details": []
}

List Scheduling Configurations

Endpoint

GET /api/private/providers/datasources/scheduling_configs

Description

Returns all scheduling configurations across all data sources in your organization.

Query Parameters

Parameter
Type
Required?
Description

datasource_type

string

Optional

Filter by datasource type: EXTRACTOR, DISCOVERER, or PARSER

Request Examples

curl -X GET "$BASE_URL/api/private/providers/datasources/scheduling_configs" \
  -H "authorization: Bearer $VEZA_TOKEN"

Response Examples

Standard Response:

{
  "values": [
    {
      "datasource_id": "0199827a-3d32-7342-9ccd-2f928ccc6855",
      "priority": "100",
      "datasource_name": "AWS Cognito (527398259632)",
      "datasource_type": "EXTRACTOR",
      "timezone": "America/New_York",
      "scheduled_extraction_times": ["00:00:00", "01:30:00", "03:00:00"],
      "created_at": "1970-01-01T00:00:01.758832260Z",
      "updated_at": "1970-01-01T00:00:01.758832260Z",
      "scheduled_days_of_week": ["MONDAY", "WEDNESDAY", "FRIDAY"]
    },
    {
      "datasource_id": "0199827a-402d-7554-af7b-cb3489b68402",
      "priority": "100",
      "datasource_name": "AWS IAM Volatile (527398259632)",
      "datasource_type": "EXTRACTOR",
      "timezone": "America/New_York",
      "scheduled_extraction_times": ["09:00:00", "13:30:00", "18:30:00"],
      "created_at": "2025-10-10T12:52:11.659562336Z",
      "updated_at": "2025-10-10T12:52:11.659562336Z",
      "scheduled_days_of_week": []
    }
  ]
}

Delete Scheduling Configuration

Endpoint

DELETE /api/private/providers/datasources/{datasource_id}/scheduling_config

Description

Removes the scheduling configuration for a specific data source. The data source will revert to standard scheduling behavior.

Path Parameters

Parameter
Type
Required?
Description

datasource_id

string (UUID)

Required

The unique identifier of the data source

Request Examples

curl -X DELETE "$BASE_URL/api/private/providers/datasources/{datasource_id}/scheduling_config" \
  -H "authorization: Bearer $VEZA_TOKEN"

Response Examples

Standard Response:

{}

Last updated

Was this helpful?