verdictan export-jobs
verdictan export-jobs creates and downloads date-bounded decision-event artifacts.
Jobs continue after the terminal closes. They apply to the authenticated
organization and selected API region.
This command group exports Events. It does not export immutable Trail change records or History content.
Prerequisites
- Authenticate with
VERDICTAN_API_TOKENorverdictan auth login. - Select the profile and region that contain the evidence.
- Use a role or token with
exports:readto list, examine, and download jobs. - Add
exports:writeto create jobs. - Make sure that the related application traffic generated Events in the control plane.
All subcommands accept the standard connection overrides:
--config <path>, --api-url <url>, --profile <name>, and --region <region>.
Authenticate with VERDICTAN_API_TOKEN or a stored profile from verdictan auth login.
Command summary
| Command | Purpose |
|---|---|
verdictan export-jobs list [--json] | List the organization's export jobs and lifecycle states. |
verdictan export-jobs get --job-id <id> [--json] | Read one job's active lifecycle record. |
verdictan export-jobs create ... | Create a new asynchronous Events export. |
verdictan export-jobs download --job-id <id> | Stream a completed artifact to stdout. |
Supported formats
The asynchronous API and this command use the same format set:
| Value | Output | Purpose |
|---|---|---|
csv | CSV decision-event rows | Spreadsheet review and data exchange |
json | Structured JSON decision-event data | Programmatic processing |
compliance-aesia | JSON report | AESIA-aligned evidence review |
compliance-aepd | JSON report | AEPD-aligned evidence review |
compliance-ens | JSON report | ENS-aligned evidence review |
compliance-all | .tar.gz bundle | Manifest plus the selected organization reports. The bundle includes all three reports when the job has no supported selection. |
Compliance reports are evidence summaries, not compliance certifications.
The direct verdictan events export workflow implements only csv and json. It is
different from these asynchronous formats. If you must export filtered immutable
Trail records, use verdictan trail export.
List jobs
verdictan export-jobs list
Plain output prints one row for each job:
<job-id> <status> <format> <requested-at>
Use --json to preserve the full API response. Completed job objects can
include integrity. This object records:
- artifact SHA-256
- manifest SHA-256
- byte size
- event count
- append-only indicator
- recording time
verdictan export-jobs list --json
Examine one job
JOB_ID="exp_replace_with_created_id"
verdictan export-jobs get --job-id "$JOB_ID"
Plain output includes the job ID, state, format, request time, and inclusive
date window. It also includes the row count and failure message when available.
--json prints the matching job object.
The command reads from the organization-scoped job list. It reports a job from a different organization, profile, or region as not found.
Create a job
Create a job with a relative window or with a start date and an end date.
Relative window
verdictan export-jobs create --since 30d --format csv
--since accepts a positive integer followed by h or d, such as 24h,
7d, or 30d. Zero and negative durations fail locally. The CLI subtracts
that duration from the UTC time when the command runs. It sends the resulting start and end
calendar dates. The API exports the two dates in full. Thus, the window uses
calendar days and is not an accurate rolling-hour query.
If a reviewer supplies calendar boundaries, use a start date and an end date.
Start and end dates
START_DATE="YYYY-MM-DD"
END_DATE="YYYY-MM-DD"
verdictan export-jobs create \
--start-date "$START_DATE" \
--end-date "$END_DATE" \
--format json
You must supply a start date and an end date. The two dates are inclusive. When
you supply them, the command does not use --since. If you supply only one
date, the command returns an error. This also applies when you supply --since.
Each value must use YYYY-MM-DD.
The start date must be on or before the end date.
Wait for a terminal state
verdictan export-jobs create \
--since 7d \
--format csv \
--wait \
--wait-timeout-secs 180
With --wait, the CLI polls the job list at two-second intervals. It stops when the
created job has one of these states:
completed: uses exit code zero.failed: exits with the job's failure message when available.expired: exits with an error because no downloadable artifact is available.
The default timeout is 120 seconds. A timeout stops local polling. It does not
cancel the server-side job. Use list or get to continue the status checks.
Without --wait, --json prints the create response and its job record. With
--wait, --json prints the terminal job object.
Create options
| Flag | Description |
|---|---|
--since <duration> | Relative duration expressed with h or d. |
--start-date <YYYY-MM-DD> | Inclusive start date. Use with --end-date. |
--end-date <YYYY-MM-DD> | Inclusive end date. Use with --start-date. |
--format <format> | One of the six values in Supported formats. |
--wait | Poll until the job completes, fails, expires, or times out. |
--wait-timeout-secs <n> | Maximum poll time when --wait is set. The default is 120. |
--json | Print structured output. |
Understand lifecycle states
| State | Meaning | Next action |
|---|---|---|
queued | The API accepted the job. Processing has not started. | Wait. Examine it again. |
processing | Verdictan is building the artifact. | Wait. Do not create a duplicate. |
completed | Processing finished. | Make sure that download_ready is true. Download the artifact. |
failed | Processing stopped. | Read failure_message. Correct the cause. Create a new job. |
expired | The stored artifact is no longer available. | Create a replacement from the recorded window and format. |
Download an artifact
Select an extension that matches the job format:
JOB_ID="exp_replace_with_completed_id"
verdictan export-jobs download --job-id "$JOB_ID" > export-evidence.csv
The command writes only artifact bytes to stdout, which makes shell redirection
safe. Download succeeds only for a completed job with an available artifact.
After download:
- Compare the file with the job's dates, format, row count, and filename.
- Examine a representative sample or the bundle manifest.
- Calculate SHA-256 with approved evidence tooling.
- Compare it with
integrity.artifact_sha256fromlist --jsonorget --json. - If you must get the stored manifest, artifact inventory, and integrity
record, retrieve
/v1/exports/jobs/{job_id}/manifest. - Store the artifact through the approved evidence process.
- Share the artifact through the approved evidence process.
The API can return a temporary redirect when it uses S3-compatible storage.
verdictan export-jobs download follows that redirect before it writes bytes to
stdout.
Examine the stored manifest
There is no manifest subcommand. Use the authenticated API route:
curl --fail --silent --show-error \
--header "Authorization: Bearer $VERDICTAN_API_TOKEN" \
"$VERDICTAN_API_URL/v1/exports/jobs/$JOB_ID/manifest"
The response includes manifest, artifact_inventory, and integrity.
Compare the downloaded bytes with integrity.artifact_sha256. Do not compare
them with manifest_sha256. That value is for the manifest record.
End-to-end example
# Create the export and copy the returned job ID.
verdictan export-jobs create --since 30d --format csv
JOB_ID="exp_replace_with_created_id"
# Read the lifecycle record until status is completed.
verdictan export-jobs get --job-id "$JOB_ID"
# Save the completed artifact.
verdictan export-jobs download --job-id "$JOB_ID" > export-evidence.csv
For automation, prefer structured output:
verdictan export-jobs create \
--since 30d \
--format json \
--wait \
--wait-timeout-secs 300 \
--json
If the wait succeeds, the artifact is not automatically saved. create --wait
tracks the job. download is a different command.
Troubleshooting
Authentication or authorization fails
- Make sure that the API URL, profile, organization, and region are correct.
- Make sure that the token is active.
- Use
exports:readfor list, get, and download. - Use
exports:writefor create.
The job is not found
Examine the job ID for a transcription error. Make sure that get uses the same
organization, profile, and region as job creation.
Create rejects the window
Supply a positive --since duration or a start date and an end date. A date pair
with one missing value fails when --since is supplied. Use YYYY-MM-DD. Keep
the start date on or before the end date.
Wait times out
The job continues server-side. Run verdictan export-jobs get --job-id <id> rather
than creating a duplicate. If the job remains queued or processing longer than
your approved threshold, preserve the ID and contact Verdictan support.
The job failed
Run get --json. Preserve failure_message with the job ID. Correct the
reported cause. Request a new job. You cannot download a failed job.
Download is not available or the artifact expired
Examine the job state and download_ready. Wait for completed. If the job is
expired, create a replacement with the recorded dates and format.
The artifact is empty or does not contain all records
Make sure that the organization, region, and inclusive dates are correct. Make sure that the application generated Events in the control plane. If the review must include Trail, History, or Inbox evidence, use that evidence as an alternative. If the review scope allows a wider window, widen the window.