aidp-volumes — volume files & PAR transfers
Manage AIDP volumes and their contents — the staging area for larger/binary data, distinct from the
workspace filesystem. Primary engine: the official Oracle aidp CLI volume group (same REST API +
auth); oci raw-request is the fallback when the CLI isn't installed.
When to use
- "List volumes / what's in volume X", "upload/download a file to/from a volume", "make a directory in a volume", staging large or binary files.
CLI (preferred)
Per references/aidp-cli-map.md: volume list | get | create | list-files | make-dir | upload-file[-with-par] | download-file[-with-par] | delete-file | delete-dir. All take
--instance-id <DATALAKE_OCID> --auth api_key --profile DEFAULT --region <r>.
Mutating ops (create/make-dir/upload-file[-with-par]/delete-file/delete-dir): persist the body
to .aidp/payloads/ and confirm with the user before running (see references/payloads.md).
Fallback (no CLI) — same REST + auth via oci raw-request against
…/20240831/dataLakes/<DATALAKE_OCID>/… (auth ladder in references/oci-raw-request.md):
GET /volumes?catalogKey=<cat>&schemaKey=<cat.schema> (both params required; a bare path / single param
returns 400 InvalidParameter — the error names the missing key) · GET /volumes/<key> · files under
GET /volumes/<key>/files · PAR upload/download via POST /volumes/<key>/actions/… then PUT/GET the
bytes to the returned PAR URL · POST /volumes/<key>/actions/makeDir.
Verify-first (no-fabrication): the volumes routes are UNVERIFIED here —
GET /volumes?catalogKey=…alone returned 400 (also needsschemaKey). Confirm the exact params with a liveGET/volume listbefore any write/upload; record the working shape inreferences/rest-endpoint-map.md.Live-verified 2026-06-10 on de-agent — correction: the route EXISTS (not removed). A bare
GET …/volumesreturns 400 InvalidParameter naming both missing keys — "query param schemaKey must not be null; query param catalogKey must not be null" — so listing volumes requires bothcatalogKeyandschemaKeyquery params.
Workflow
- Verify:
aidp volume list --catalog-key <cat> --schema-key <cat.schema>(read back the required-param shape from the 400 if it errors). - Browse: list volumes →
list-files <key>;get <key>for one volume's details. - Upload:
upload-file-with-par; download:download-file-with-par(PAR bytes move directly to/from Object Storage, not through the JSON API). - Dirs:
make-dir. - Confirm before destructive/overwrite operations.
Volume-object lifecycle (the volume itself, not its files)
Beyond file ops, the volume object has its own CRUD: aidp volume create | update | delete
(REST POST /volumes · PUT /volumes/<key> · DELETE /volumes/<key>), plus directory ops
make-dir | update-dir | delete-dir. Create body carries displayName, catalogKey, schemaKey (+
type/location) — confirm the exact fields with aidp help volume create / a live read before writing
(routes need real catalog/schema keys, like list). Grants on a volume → aidp-roles-access (volume row).
Persist create/update/delete bodies to .aidp/payloads/ and confirm first.
Notes
- PAR transfers are byte-accurate — they carry binary fine (wheels/jars/parquet) as well as text.
- Async (202): PAR-provisioning or dir actions may return
202with an operation key — poll the async-ops endpoint until terminal (seeaidp-observability/oci-raw-request.md). - Volumes are the right home for big staging files before
aidp-ingest-file-to-table. - Workspace/catalog-scoped — confirm the workspace and catalog before listing.
References
- references/aidp-cli-map.md · references/payloads.md · references/oci-raw-request.md · references/no-mcp-rest-map.md · references/rest-endpoint-map.md · pairs with
aidp-ingest-file-to-table,aidp-workspace-files
