iliad_object_storage
ActiveTool of AXIS Toolbox — Agentic Commerce Codebase Intelligence
AXIS-owned signed-URL minter backed by Cloudflare R2. Returns a pre-signed PUT or GET URL scoped to the calling account (keys are prefixed with `accounts/<account_id>/` server-side, so accounts can't reach each other's objects). Requires Authorization: Bearer <api_key>. Returns the URL plus expires_at (ISO 8601), bucket, and scoped_key. Returns `{_not_configured: true, ...}` when the operator has not provisioned R2_* env vars (no crash, no leaked secrets). TTL is capped at 86400 seconds (24h). Engineer mode (X-Agent-Mode: engineer — Managed Bucket, $0.05): adds delete + list + copy (server-side, no bytes through the agent) operations, content-addressed dedup keys (content_sha256), and mint-time PUT policy (pin content_type / exact content_length as signed headers R2 enforces).
Parameters schema
{
"type": "object",
"required": [
"key",
"operation"
],
"properties": {
"ext": {
"type": "string",
"description": "Engineer mode: optional extension appended to the content-addressed key (e.g. 'png')."
},
"key": {
"type": "string",
"description": "Object key (max 1024 chars), or the prefix for operation=list. Path traversal and leading-/ are rejected."
},
"operation": {
"enum": [
"put",
"get",
"delete",
"list",
"copy"
],
"type": "string",
"description": "put / get (standard). delete / list / copy and content-addressed put require X-Agent-Mode: engineer (Managed Bucket)."
},
"source_key": {
"type": "string",
"description": "Engineer mode (operation=copy): source object key to copy from, scoped to your account; `key` is the destination. Echo the returned required_headers on the PUT."
},
"ttl_seconds": {
"type": "number",
"description": "Signed-URL lifetime, 1..86400. Defaults to 3600."
},
"content_type": {
"type": "string",
"description": "Engineer mode (put): pin the Content-Type the upload must send (signed; R2 rejects a mismatch). Printable ASCII type/subtype, ≤255 chars. Echo via required_headers."
},
"content_length": {
"type": "number",
"description": "Engineer mode (put): pin the EXACT byte size the upload must be (signed; ≤5 GiB). Pairs with content_sha256 for verified content-addressed writes."
},
"content_sha256": {
"type": "string",
"description": "Engineer mode: 64-char hex sha256 of the bytes you'll PUT. When set, the object lands under accounts/<id>/cas/<sha256> so identical content dedupes."
}
}
}No endpoints wrapped at confidence ≥ 0.70.
Parent server
AXIS Toolbox — Agentic Commerce Codebase Intelligence
https://github.com/lastmanupinc-hub/Toolbox
1/7 registries