The org's policy as an OPA bundle
Serves the org's policy as a gzipped OPA bundle for gate's OPA plugin to fetch directly. Authenticated with the org API key gate already holds for telemetry, so enabling policy enforcement introduces no new credential to provision or rotate.
No x-rbac-enabled: the caller is a gate process, not a console session.
Responds 200 with application/gzip — a tarball containing /policy.rego and /.manifest — or 304 when the caller's If-None-Match matches the current revision's ETag. An org with no policy, or a policy with enabled: false, gets a valid permit-everything bundle rather than a 404: gate must always end up with a compilable bundle, and a fetch error would leave whatever policy it activated last in force indefinitely.
Header Parameters
- SlashID-OrgID string required
The organization ID
Example: af5fbd30-7ce7-4548-8b30-4cd59cb2aba1 - If-None-Match string
ETag from a previous fetch. Send it to get a 304 when nothing changed.
- 200
- 304
- 401
- 403
The bundle. The ETag header carries the policy revision.
Response Headers
ETag string
Opaque; echo it back as
If-None-Matchon the next poll.
- application/gzip
- Schema
Schema
- string binary
Not modified — the caller's If-None-Match matches the current revision.
Unauthorized
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
Cursors are opaque. Follow the tokens the server returns; never construct, parse or modify one.
limit integernext_cursor stringOpaque token addressing the next page. Absent on the last page.
prev_cursor stringOpaque token addressing the previous page. Absent on the first page.
last_cursor stringOpaque token addressing the final page directly, so a client can jump to the end without a total count.
total_count int64Total number of matching items. Returned on the FIRST page only; clients cache it for the remainder of the walk.
errors object[]
httpcode integermessage stringcode stringMachine-readable reason, present only for errors that define one. Values today:
unserved_org_region(the organization is homed in a region this deployment does not serve),wrong_region(the request must be sent to the organization's home region),region_route_missing(this instance has no route to the organization's home region).
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"next_cursor": "string",
"prev_cursor": "string",
"last_cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string",
"code": "string"
}
]
}
Forbidden
- application/json
- Schema
- Example (from schema)
Schema
meta object
pagination object
limit integeroffset integertotal_count int64cursor_pagination object
Cursors are opaque. Follow the tokens the server returns; never construct, parse or modify one.
limit integernext_cursor stringOpaque token addressing the next page. Absent on the last page.
prev_cursor stringOpaque token addressing the previous page. Absent on the first page.
last_cursor stringOpaque token addressing the final page directly, so a client can jump to the end without a total count.
total_count int64Total number of matching items. Returned on the FIRST page only; clients cache it for the remainder of the walk.
errors object[]
httpcode integermessage stringcode stringMachine-readable reason, present only for errors that define one. Values today:
unserved_org_region(the organization is homed in a region this deployment does not serve),wrong_region(the request must be sent to the organization's home region),region_route_missing(this instance has no route to the organization's home region).
{
"meta": {
"pagination": {
"limit": 0,
"offset": 0,
"total_count": 0
},
"cursor_pagination": {
"limit": 0,
"next_cursor": "string",
"prev_cursor": "string",
"last_cursor": "string",
"total_count": 0
}
},
"errors": [
{
"httpcode": 0,
"message": "string",
"code": "string"
}
]
}