Xeonr Developer Docs

ResolvePortalRequest

POST
/uplim.api.v1.InternalPortalService/ResolvePortalRequest

Resolve one portal/S3 request to a serve/deny decision. Never returns a Connect error for ordinary not-found/denied outcomes — those are the denied result — so the worker can map them per protocol (portal 404 vs S3 XML NoSuchKey/AccessDenied).

AuthorizationBearer <token>

JWT access token obtained via OAuth2 flow or service account

In: header

Header Parameters

Connect-Protocol-Version*number

Define the version of the Connect protocol

Value in1
Connect-Timeout-Ms?number

Define the timeout, in ms

Request Body

application/json

bucketRef?|

Reference to a bucket by ID or hostname

path?string

Full path including slug (e.g. "/photos/image.jpg", "/" for root listing).

Length1 <= length <= 512
aliasPassword?string|null
verifiedAccessKeyId?string|null

Set when the worker has verified a SigV4 signature (header or presigned query) for this access key on the current request. The api loads the key, checks it is live + enabled, and applies its grants — private content is served when the key covers the bucket at READ or above.

[key: string]?never

Response Body

application/json

application/json

curl -X POST "https://uploads-api.xeonr.io/uplim.api.v1.InternalPortalService/ResolvePortalRequest" \  -H "Connect-Protocol-Version: 1" \  -H "Content-Type: application/json" \  -d '{}'
{
  "portalConfig": {
    "cdnMode": true
  },
  "cacheVersion": "string",
  "canonicalUrl": "string",
  "aliasAccessRequired": {
    "sizeBytes": 0,
    "requirement": "ALIAS_ACCESS_REQUIREMENT_UNSPECIFIED",
    "thumbnailContentTypeUrn": "string"
  }
}
{
  "code": "not_found",
  "message": "string",
  "details": [
    {
      "type": "string",
      "value": "string",
      "debug": {}
    }
  ]
}