List storage-deletion outbox jobs
Platform-operator surface. Requires an authentic first-party dashboard SESSION whose realm is platform AND whose email is in AUTH_PLATFORM_ADMIN_EMAILS; API keys and OIDC-issued bearer tokens are refused outright, whatever their scopes. Lists jobs from the transactional storage-deletion outbox, newest-first, keyset-paginated on (created_at, id). dead = pending jobs past the dead-letter attempt threshold (still retrying — the threshold is a visibility line, not an abandon point). The listing is instance-global: rows carry the bucket + in-bucket key of objects belonging to ANY organization. Does NOT require X-Org-Id: the operator may belong to no organization. Rate-limited to 60/min.
/api/admin/storage-deletion-jobsCookie session from Better Auth. Requires X-Org-Id header for org-scoped routes.
In: cookie
Query Parameters
"pending""pending" | "dead" | "completed"501 <= value <= 200Cursor — the id of the last job of the previous page. Follow the RFC 5988 Link: <…>; rel="next" response header instead of building it by hand.
curl -X GET "https://your-instance/api/admin/storage-deletion-jobs"{
"object": "list",
"data": [
{
"id": "sdj_0c9f…",
"bucket": "files",
"storage_key": "spc_abc/file_def/report.pdf",
"reason": "string",
"attempts": 0,
"next_attempt_at": "2019-08-24T14:15:22Z",
"completed_at": "2019-08-24T14:15:22Z",
"last_error": "string",
"createdAt": "2019-08-24T14:15:22Z"
}
],
"hasMore": true
}{
"type": "https://docs.appstrate.dev/errors/validation-failed",
"title": "Validation Failed",
"status": 400,
"detail": "name: Invalid input: expected string, received undefined (+2 more)",
"code": "validation_failed",
"request_id": "req_abc123",
"errors": [
{
"field": "name",
"code": "required",
"message": "Invalid input: expected string, received undefined"
},
{
"field": "email",
"code": "invalid_format",
"message": "Invalid email address"
},
{
"field": "age",
"code": "invalid_type",
"message": "Invalid input: expected number, received string"
}
]
}{
"type": "https://docs.appstrate.dev/errors/unauthorized",
"title": "Unauthorized",
"status": 401,
"detail": "Invalid or missing session",
"code": "unauthorized",
"request_id": "req_abc123"
}{
"type": "https://docs.appstrate.dev/errors/forbidden",
"title": "Forbidden",
"status": 403,
"detail": "Insufficient permissions",
"code": "forbidden",
"request_id": "req_abc123"
}{
"type": "https://docs.appstrate.dev/errors/rate-limited",
"title": "Rate Limited",
"status": 429,
"detail": "Too many requests. Please try again shortly.",
"code": "rate_limited",
"request_id": "req_abc123",
"retry_after": 30
}