Skip to main content
Programmatically view, clone, and manage jobs using the commands below.

Jobs Download

Description

Clones a remote job to your local machine, under a new directory with the name of the job_id.

Sample

$ hotglue jobs download <job_root>
 Finished: Verifying user and authorizing.
 Finished: Scanning for downloadable files.
┌─────────────────────────────────────────────────┬─────────┬──────────────────────┐
 File Size LastModified
├─────────────────────────────────────────────────┼─────────┼──────────────────────┤
 job-details.json 571 2/9/2022, 6:29:30 PM
├─────────────────────────────────────────────────┼─────────┼──────────────────────┤
 sync-output/products-20220209T222727.csv 3226419 2/9/2022, 5:27:34 PM
└─────────────────────────────────────────────────┴─────────┴──────────────────────┘
 Finished: Downloading file: default/flows/bTHIweD0W/jobs/2022/02/2/09/22/KfKW1X/job-details.json.
 Finished: Downloading file: default/flows/bTHIweD0W/jobs/2022/02/2/09/22/KfKW1X/sync-output/products-20220209T222727.csv.

Parameters

OptionDescription
job_rootThe s3_root (known as the job root) of the job to clone. Can be found in Job Details or in the URL of the hotglue job page.
The job root is of the form: tenant_id/flows/flow_id/jobs/2025/01/1/01/01/job_id

Jobs List

Description

Lists the most recent jobs in the hotglue environment for a specific tenant/flow in chronological order.

Sample

$ hotglue jobs list
✔ Finished: Retrieving jobs for environment: dev.hotglue.acme.com flow: bTHIweD0W tenant: default....
┌────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ name           │ details                                                                                            │
├────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ test:H3XnhScoo │ {                                                                                                  │
│                │   "job_id": "KfKW1X",                                                                              │
│                │   "env_id": "dev.hotglue.acme.com",                                                                │
│                │   "flow_id": "bTHIweD0W",                                                                          │
│                │   "job_name": "test:H3XnhScoo",                                                                    │
│                │   "tenant": "default",                                                                             │
│                │   "started_by": "default",                                                                         │
│                │   "s3_root": "default/flows/bTHIweD0W/jobs/2022/02/2/09/22/KfKW1X",                                │
│                │   "start_time": "2022-02-09T22:22:19.173879+00:00",                                                │
│                │   "state": {},                                                                                     │
│                │   "tap": "cin7",                                                                                   │
│                │   "status": "JOB_COMPLETED",                                                                       │
│                │   "scheduled_job": false,                                                                          │
│                │   "message": "Status for Job (KfKW1X) was updated to JobStatus.JOB_COMPLETED; (flow: bTHIweD0W) ", │
│                │   "task_id": "864256547fa34584aa61d46eac0d08c5",                                                   │
│                │   "last_updated": "2022-02-09T23:29:29.791107+00:00",                                              │
│                │   "processed_rows": 0                                                                              │
│                │ }                                                                                                  │
├────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤

Parameters

OptionDefaultDescription
--count5Number of jobs to return. Defaults to 5.
--tenant
-udefaultTenant Id to query jobs for. Defaults to default, the admin user.
--env
-eEnvironment Id to query jobs for.

Jobs Bulk Run

Description

Runs multiple jobs in bulk from a JSON file. The command reads a JSON file containing an array of job configurations, validates each job, checks flow versions, and runs all jobs in parallel. Results are displayed in a table format with a summary of successes and failures.

Sample

$ hotglue jobs bulk-run --file ./jobs.json
 Finished: Reading jobs file: ./jobs.json.
 Finished: Checking flow versions....
 Finished: Running 3 job(s)....
┌───────┬──────────┬─────────┬─────────┬────────────────────────────────────────────────────────────┐
 Index Flow Tenant Status Response/Error
├───────┼──────────┼─────────┼─────────┼────────────────────────────────────────────────────────────┤
 0 bTHIweD0W│ default SUCCESS {
   "job_id": "KfKW1X",
   "status": "JOB_STARTED"
 }
├───────┼──────────┼─────────┼─────────┼────────────────────────────────────────────────────────────┤
 1 cXYZ1234 default SUCCESS {
   "job_id": "AbC123",
   "status": "JOB_STARTED"
 }
├───────┼──────────┼─────────┼─────────┼────────────────────────────────────────────────────────────┤
 2 dEFG5678 tenant1 FAILED {
   "statusCode": 404,
   "statusText": "Not Found",
   "message": "Flow not found"
 }
└───────┴──────────┴─────────┴─────────┴────────────────────────────────────────────────────────────┘
Summary: 2 succeeded, 1 failed out of 3 total.
Example JSON file format (jobs.json):
[
  {
    "flow": "bTHIweD0W",
    "tenant": "tenant1",
    "tap": "salesforce"
  },
  {
    "flow": "cXYZ1234",
    "tenant": "tenant2",
    "tap": "salesforce",
    "override_start_date": "2023-11-07T05:31:56Z"
  },
  {
    "flow": "dEFG5678",
    "tenant": "tenant3",
    "tap": "quickbooks",
    "job_name": "test-job"
  }
]

Parameters

OptionDescription
--file -fRequired. Path to JSON file containing an array of job objects to run. Each job object must include flow and tenant fields. Additional job arguments can be included and will be passed to the body of the job trigger endpoint.

Jobs Bulk Kill

Description

Kills multiple running jobs in bulk. The command fetches jobs from the last month with statuses JOB_CREATED, SYNC_STARTED, SYNC_SUCCESS, ETL_STARTED, ETL_SUCCESS, or EXPORT_STARTED, optionally filters them by tenant IDs and/or flow IDs, and kills all matching jobs in parallel. Results are displayed in a table format with a summary of successes and failures.

Sample

$ hotglue jobs bulk-kill --tenant-ids tenant1,tenant2 --flow-ids bTHIweD0W --reason "Maintenance"
 Found 5 job(s) with specified status.
 Finished: Killing 5 job(s)....
┌───────┬──────────┬─────────┬──────────────────────────────────────────────────────┬─────────┬────────────────────────────────────────────────────────────┐
 Index Flow Tenant Job Root Status Response/Error
├───────┼──────────┼─────────┼──────────────────────────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────┤
 0 bTHIweD0W│ tenant1 tenant1/flows/bTHIweD0W/jobs/2025/01/1/01/01/KfKW1X SUCCESS {
   "status": "JOB_KILLED"
 }
├───────┼──────────┼─────────┼──────────────────────────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────┤
 1 bTHIweD0W│ tenant2 tenant2/flows/bTHIweD0W/jobs/2025/01/1/01/02/AbC123 SUCCESS {
   "status": "JOB_KILLED"
 }
├───────┼──────────┼─────────┼──────────────────────────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────┤
 2 bTHIweD0W│ tenant1 tenant1/flows/bTHIweD0W/jobs/2025/01/1/01/03/dEF567 FAILED {
   "statusCode": 404,
   "statusText": "Not Found",
   "message": "Job not found"
 }
└───────┴──────────┴─────────┴──────────────────────────────────────────────────────┴─────────┴────────────────────────────────────────────────────────────┘
Summary: 2 succeeded, 1 failed out of 3 total.

Parameters

OptionDescription
--tenant-ids --tenantsComma-separated list of tenant IDs to filter jobs by. Only jobs belonging to these tenants will be killed. If not provided, all matching jobs will be considered.
--flow-ids
--flowsComma-separated list of flow IDs to filter jobs by. Only jobs for these flows will be killed. If not provided, all matching jobs will be considered.
--reasonOptional reason for killing the jobs. This reason will be included in the kill request for all jobs.

Jobs Bulk Retrigger

Description

Retriggers multiple jobs in bulk from a JSON file containing job roots. The command reads a JSON file containing an array of job root strings, groups them by tenant and flow, and retriggers jobs with parallel processing across groups and sequential processing within each group. For each group, the command waits for a job to complete before retriggering the next job in that group. Results are displayed in a table format with a summary of successes and failures.

Sample

$ hotglue jobs bulk-retrigger --file ./jobRoots.json
 Finished: Reading jobRoots file: ./jobRoots.json.
Found 5 jobRoot(s) grouped into 2 tenant/flow group(s).
 Finished: Retriggering 5 job(s) across 2 group(s)....
┌─────────┬──────────┬──────────────────────────────────────────────────────┬─────────┬────────────────────────────────────────────────────────────┐
 Tenant Flow Job Root Status Response/Error
├─────────┼──────────┼──────────────────────────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────┤
 tenant1 bTHIweD0W│ tenant1/flows/bTHIweD0W/jobs/2025/01/1/01/01/KfKW1X│ SUCCESS {
   "job_id": "KfKW1X",
   "status": "JOB_STARTED"
 }
├─────────┼──────────┼──────────────────────────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────┤
 tenant1 bTHIweD0W│ tenant1/flows/bTHIweD0W/jobs/2025/01/1/01/02/AbC123 SUCCESS {
   "job_id": "AbC123",
   "status": "JOB_STARTED"
 }
├─────────┼──────────┼──────────────────────────────────────────────────────┼─────────┼────────────────────────────────────────────────────────────┤
 tenant2 cXYZ1234 tenant2/flows/cXYZ1234/jobs/2025/01/1/01/03/dEF567 FAILED {
   "statusCode": 404,
   "statusText": "Not Found",
   "message": "Job not found"
 }
└─────────┴──────────┴──────────────────────────────────────────────────────┴─────────┴────────────────────────────────────────────────────────────┘
Summary: 2 succeeded, 1 failed out of 3 total.
Example JSON file format (jobRoots.json):
[
  "tenant1/flows/bTHIweD0W/jobs/2025/01/1/01/01/KfKW1X",
  "tenant1/flows/bTHIweD0W/jobs/2025/01/1/01/02/AbC123",
  "tenant2/flows/cXYZ1234/jobs/2025/01/1/01/03/dEF567"
]

Parameters

OptionDescription
--file -fRequired. Path to JSON file containing an array of job root strings to retrigger. Each job root must follow the format: {tenantId}/flows/{flowId}/jobs/.... Jobs are automatically grouped by tenant and flow, and processed sequentially within each group (waiting for completion) while groups are processed in parallel.