Skip to main content

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_TOKEN or verdictan auth login.
  • Select the profile and region that contain the evidence.
  • Use a role or token with exports:read to list, examine, and download jobs.
  • Add exports:write to 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

CommandPurpose
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:

ValueOutputPurpose
csvCSV decision-event rowsSpreadsheet review and data exchange
jsonStructured JSON decision-event dataProgrammatic processing
compliance-aesiaJSON reportAESIA-aligned evidence review
compliance-aepdJSON reportAEPD-aligned evidence review
compliance-ensJSON reportENS-aligned evidence review
compliance-all.tar.gz bundleManifest 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

FlagDescription
--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.
--waitPoll until the job completes, fails, expires, or times out.
--wait-timeout-secs <n>Maximum poll time when --wait is set. The default is 120.
--jsonPrint structured output.

Understand lifecycle states

StateMeaningNext action
queuedThe API accepted the job. Processing has not started.Wait. Examine it again.
processingVerdictan is building the artifact.Wait. Do not create a duplicate.
completedProcessing finished.Make sure that download_ready is true. Download the artifact.
failedProcessing stopped.Read failure_message. Correct the cause. Create a new job.
expiredThe 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:

  1. Compare the file with the job's dates, format, row count, and filename.
  2. Examine a representative sample or the bundle manifest.
  3. Calculate SHA-256 with approved evidence tooling.
  4. Compare it with integrity.artifact_sha256 from list --json or get --json.
  5. If you must get the stored manifest, artifact inventory, and integrity record, retrieve /v1/exports/jobs/{job_id}/manifest.
  6. Store the artifact through the approved evidence process.
  7. 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:read for list, get, and download.
  • Use exports:write for 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.

Next steps