Proxy Discovery
Section titled “Proxy Discovery”The Proxy Discovery endpoints expose read-only views over a container’s proxy configuration. Use them to enumerate which groups and services are configured, then inspect the merged access view for a single service. The merged view returned here is a debug snapshot — for authoritative writes, use the dedicated permissions and hooks endpoints.
All endpoints are scoped to a single container and require its 24-character hexadecimal ObjectId.
Groups
Section titled “Groups”GET /api/v1/containers/{id}/proxy/groups
Section titled “GET /api/v1/containers/{id}/proxy/groups”Returns every defined group name along with the number of auth rules it owns.
Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | Container ID |
curl -X GET https://api.hoody.com/api/v1/containers/507f1f77bcf86cd799439012/proxy/groups \ -H "Authorization: Bearer <token>"import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://api.hoody.com', token: process.env.HOODY_TOKEN });
await client.api.proxyDiscovery.listContainerProxyGroups('507f1f77bcf86cd799439012');{ "statusCode": 200, "message": "OK", "data": { "groups": [ { "name": "admins", "auth_rule_count": 12 }, { "name": "editors", "auth_rule_count": 5 }, { "name": "viewers", "auth_rule_count": 3 } ], "file_version": 7, "etag": "W/\"a1b2c3d4e5f6\"" }}Services
Section titled “Services”GET /api/v1/containers/{id}/proxy/services
Section titled “GET /api/v1/containers/{id}/proxy/services”Returns every service name referenced by at least one permission cell or hook rule in the container’s proxy configuration.
Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | Container ID |
curl -X GET https://api.hoody.com/api/v1/containers/507f1f77bcf86cd799439012/proxy/services \ -H "Authorization: Bearer <token>"import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://api.hoody.com', token: process.env.HOODY_TOKEN });
await client.api.proxyDiscovery.listContainerProxyServices('507f1f77bcf86cd799439012');{ "statusCode": 200, "message": "OK", "data": { "services": ["api", "db", "cache", "worker"], "file_version": 7, "etag": "W/\"a1b2c3d4e5f6\"" }}GET /api/v1/containers/{id}/proxy/services/{service}
Section titled “GET /api/v1/containers/{id}/proxy/services/{service}”Returns the merged debug view for a single service, including per-group access cells (permissions_raw), hook rules, the effective default (allow or deny), and whether the service appears on the reject list.
Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
id | path | string | Yes | Container ID |
service | path | string | Yes | Service name |
curl -X GET https://api.hoody.com/api/v1/containers/507f1f77bcf86cd799439012/proxy/services/api \ -H "Authorization: Bearer <token>"import { HoodyClient } from 'hoody-sdk';
const client = new HoodyClient({ baseURL: 'https://api.hoody.com', token: process.env.HOODY_TOKEN });
await client.api.proxyDiscovery.getContainerProxyService('507f1f77bcf86cd799439012', 'api');{ "statusCode": 200, "message": "OK", "data": { "service": "api", "is_reject_listed": false, "permissions_raw": { "admins": { "allow": ["read", "write", "delete"] }, "editors": { "allow": ["read", "write"] }, "viewers": { "allow": ["read"] } }, "hooks": [ { "phase": "before_request", "script": "audit-log.py" } ], "effective_default": "deny", "file_version": 7, "etag": "W/\"a1b2c3d4e5f6\"" }}