src_s3_url) and the target address (tgt_s3_url), and Starfort reads the original straight from the bucket, detects personal data (PII) and sensitive topics (Topic), and writes the de-identified (masked) file to the target location.
Starfort does the data movement. Starfort reads src and writes tgt using standard S3 operations (GetObject / PutObject). The caller has exactly three jobs — put the file in the bucket, grant access, and collect the result from tgt. There’s no transfer logic to build.
How it relates to the inline Guard API
The batch is a path added alongside the existing Guard API. The synchronous API stays as it is; existing callers are unaffected.
The inspection itself doesn’t change — the batch runs the same Guardian engine with the same policies and verdict rules as the inline path. Inspection policy is decided by the server (project settings), not the request; there is no batch-specific policy system.
Prerequisites
1
Prepare a project and Guardian
In the console, prepare a project and a Guardian that defines which policies to inspect with.
2
Register a Storage Connection
Register the integration settings that let Starfort reach your bucket — endpoint, access credentials, and allowed targets (read/write scopes). See Storage Connection.
3
Issue an API key
Issue one from the project’s API Keys menu. See Manage API keys.
inbox/) and the output folder (e.g. deidentified/) separate.
Authentication
The same API key system as the Guard API: send ansf_-prefixed key in the X-Starfort-Guard-Api-Key header, and jobs are scoped to the Project Guardian that key points to. See Authentication.
Job states
A batch job has four states:
After
PENDING → PROCESSING, a job finalizes as COMPLETED or FAILED, and a finalized state is terminal.
- Jobs are processed in intake order (FIFO). There is no priority tier.
- Completion is confirmed by polling. Check state with the job status API.
BLOCK is not a failure
BLOCK means the inspection completed normally and returned a blocking verdict, so it’s expressed asCOMPLETED + action: "BLOCK". FAILED means the inspection couldn’t be completed: no output file is written, and a failure is never treated as “nothing detected” — the same lineage as the inline API’s fail-closed principle.
While a Kill Switch is active, both job creation and status queries are rejected, and waiting or in-progress jobs are finalized as failed with no output. Outputs already written to
tgt are not retroactively recalled.Next steps
- Create & poll jobs — endpoints, request/response fields, and the polling pattern
- Storage Connection — S3 integration settings and allowed scopes
- Output rules & limits — per-verdict
tgtoutputs, supported formats, limits - Batch errors — intake-time HTTP errors and processing-time failure codes