Proxy permissions define which requests reach your container’s services and which programs each authenticated identity may use. Use these endpoints to read, replace, mutate, or delete the authentication groups, program access rules, default policy, and proxy enable-state on a project or on a specific container. Every write operation requires the If-Match: file:v precondition header; read the current file_version from GET first (use file:v0 to bootstrap when no document is stored).
The set of supported authentication group types is jwt, password, ip, token, and hoody-identity. Each project/container stores one document containing both the groups and the per-group program permissions.
Retrieve the full proxy access control configuration for a single container, including authentication groups, per-group program permissions, default policy, and proxy enable-state.
Name In Type Required Description idpath string Yes Container ID
" message " : " Container proxy permissions retrieved successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Container not found "
curl https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions
await client . api . proxyPermissionsContainer . get ( " 507f1f77bcf86cd799439012 " );
Replace the entire container proxy permissions document. Requires If-Match: file:v (428 when absent, 412 when stale).
Name In Type Required Description idpath string Yes Container ID if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description projectstring Yes Project ID owning this container containerstring Yes Container ID (must match path id) groupsobject Yes Authentication groups configuration permissionsobject Yes Per-group program access rules defaultstring (allow | deny) No Defaults to deny if omitted enable_proxyboolean No Enable or disable the proxy. Defaults to true hooksobject No Per-service proxy hook arrays
" message " : " Container proxy permissions updated successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Invalid proxy permissions configuration "
curl -X PUT https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions \
-H " Content-Type: application/json " \
"project": "507f1f77bcf86cd799439011",
"container": "507f1f77bcf86cd799439012",
await client . api . proxyPermissionsContainer . replace (
" 507f1f77bcf86cd799439012 " ,
project : " 507f1f77bcf86cd799439011 " ,
container : " 507f1f77bcf86cd799439012 " ,
Delete the container proxy permissions document.
Name In Type Required Description idpath string Yes Container ID if-matchheader string No file:v ETag precondition - read current file_version from GET first
" message " : " Container proxy permissions deleted successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Container not found "
curl -X DELETE https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions \
await client . api . proxyPermissionsContainer . delete (
" 507f1f77bcf86cd799439012 " ,
Update only the container default access policy (allow or deny) without touching groups or program permissions.
Name In Type Required Description idpath string Yes Container ID if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description defaultstring (allow | deny) Yes Default access policy for unmatched requests
" message " : " Default policy updated successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
curl -X PATCH https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/default \
-H " Content-Type: application/json " \
-d ' {"default": "allow"} '
await client . api . proxyPermissionsContainer . updateDefault (
" 507f1f77bcf86cd799439012 " ,
Enable or disable the proxy for a single container.
Name In Type Required Description idpath string Yes Container ID if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description enable_proxyboolean Yes Enable or disable the proxy entirely
" message " : " Proxy state updated successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
curl -X PATCH https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/state \
-H " Content-Type: application/json " \
-d ' {"enable_proxy": true} '
await client . api . proxyPermissionsContainer . updateState (
" 507f1f77bcf86cd799439012 " ,
Configure named authentication groups for a container. Each group belongs to one of the supported types: jwt, password, ip, token, or hoody-identity.
Create or replace a JWT authentication group on a container. The JWT is verified against the configured secret/algorithm; required claims must match exactly.
This group verifies JWTs your app issues - not Hoody identity claims
The identity_claim returned by Hoody login is a detached-signature ED25519 bundle, not a JWT, and cannot be validated by a jwt group. If you want to gate your container on a real Hoody identity, use the native hoody-identity group type instead. A jwt group expects the caller to mint its own tokens (HS256/RS256/ES256) using a key the container document holds.
The hoody-identity group config is { audience (REQUIRED), sources? (header-only, X-Hoody-Identity- namespace), allow_types?, users?, max_age_seconds? (≥300), expose_type? } and never carries key material - the operator owns the trust keyring. See Hoody Identity Authentication and Identity Claims .
Name In Type Required Description idpath string Yes Container ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description secretstring Yes JWT secret key used to verify token signatures. For HS256: any string. For RS256/ES256: PEM-encoded SPKI public key. algorithmstring (HS256 | RS256 | ES256) Yes JWT algorithm to use for signature verification. sourcesarray Yes Where to look for JWT tokens. Format: header:Name or cookie:Name. claimsobject No Optional JWT claims that must be present and match exactly. Values must be string, number, or boolean.
" message " : " JWT authentication group configured successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Invalid JWT configuration "
curl -X PUT https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/groups/admin/jwt \
-H " Content-Type: application/json " \
"secret": "shared-secret-change-me",
"sources": ["header:Authorization"],
"claims": { "role": "admin" }
await client . api . proxyPermissionsContainer . setJwtGroup (
" 507f1f77bcf86cd799439012 " ,
secret : " shared-secret-change-me " ,
sources : [ " header:Authorization " ],
claims : { role : " admin " }
Create or replace a password authentication group on a container. Passwords are stored as SHA256(salt + password) in lowercase hex.
Name In Type Required Description idpath string Yes Container ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description usernamestring Yes Username for authentication. Must match exactly what the client provides. passwordstring Yes Password for authentication. Can be plaintext (will be hashed) or pre-hashed SHA256(salt + password) in lowercase hex format. algorithmstring (sha256) No Hashing algorithm used for password verification. Currently only SHA256 is supported. saltstring Yes Salt used for password hashing. Should be unique per user/group for security.
" message " : " Password authentication group configured successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Invalid password configuration "
curl -X PUT https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/groups/users/password \
-H " Content-Type: application/json " \
await client . api . proxyPermissionsContainer . setPasswordGroup (
" 507f1f77bcf86cd799439012 " ,
Create or replace an IP-range authentication group on a container. Matches are evaluated against the request’s source IPv4 address.
Name In Type Required Description idpath string Yes Container ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description rangestring Yes IPv4 CIDR range specifying allowed IP addresses. Format: IP/mask where mask is 0-32. Examples: 192.168.1.0/24, 10.0.0.0/8, 203.0.113.5/32.
" message " : " IP authentication group configured successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Invalid IP CIDR range "
curl -X PUT https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/groups/office/ip \
-H " Content-Type: application/json " \
-d ' {"range": "192.168.1.0/24"} '
await client . api . proxyPermissionsContainer . setIpGroup (
" 507f1f77bcf86cd799439012 " ,
{ range : " 192.168.1.0/24 " },
Create or replace a static-token authentication group on a container. The token must be supplied in exactly one location: a header, a cookie, or a query parameter.
Name In Type Required Description idpath string Yes Container ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Supply exactly one of the following shapes:
Header token - header (string, required) and value (string, required)
Cookie token - cookie (string, required) and value (string, required)
Query param token - param (string, required) and value (string, required)
" message " : " Token authentication group configured successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Invalid token configuration "
curl -X PUT https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/groups/external-api/token \
-H " Content-Type: application/json " \
-d ' {"header": "X-API-Key", "value": "tok_4f12a8"} '
await client . api . proxyPermissionsContainer . setTokenGroup (
" 507f1f77bcf86cd799439012 " ,
{ header : " X-API-Key " , value : " tok_4f12a8 " },
Remove an authentication group from a container. Program permissions that referenced the group remain in the document but will no longer match any authenticated identity.
Name In Type Required Description idpath string Yes Container ID groupNamepath string Yes Group name to remove if-matchheader string No file:v ETag precondition - read current file_version from GET first
" message " : " Authentication group removed successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Container or group not found "
curl -X DELETE https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/groups/admin \
await client . api . proxyPermissionsContainer . removeAuthGroup (
" 507f1f77bcf86cd799439012 " ,
Per-group program access rules. Each rule defines WHICH instances/ports are ALLOWED, not which exist. Use true to allow all, false to deny all, a port number for a single port, an array of ports, a "8000-8100" range, or "*" as the wildcard.
Set or replace one program access rule for a container group.
Name In Type Required Description idpath string Yes Container ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description programstring Yes Program name to set the access rule for (e.g., http, terminal, ssh, files, exec, services, notifications). accessboolean | number | array | string Yes Access control rule: true = allow all, false = deny all; a number = allow only that port; an array of numbers = allow only those ports; a "8000-8100" string = allow a port range; "*" = allow all (same as true). For files, services, notifications, exec only boolean is allowed.
" message " : " Group program permission set successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
" message " : " Invalid permission value "
curl -X PUT https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/permissions/admin \
-H " Content-Type: application/json " \
-d ' { "program": "http", "access": [80, 443] } '
await client . api . proxyPermissionsContainer . setGroup (
" 507f1f77bcf86cd799439012 " ,
{ program : " http " , access : [ 80 , 443 ] },
Remove every program permission defined for a container group. The group’s authentication configuration is left untouched.
Name In Type Required Description idpath string Yes Container ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
" message " : " All group permissions removed successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
curl -X DELETE https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/permissions/admin \
await client . api . proxyPermissionsContainer . removeGroup (
" 507f1f77bcf86cd799439012 " ,
Remove a single program permission from a container group.
Name In Type Required Description idpath string Yes Container ID groupNamepath string Yes Group name programpath string Yes Program name (e.g., http, ssh, files) if-matchheader string No file:v ETag precondition - read current file_version from GET first
" message " : " Program permission removed successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" container " : " 507f1f77bcf86cd799439012 " ,
curl -X DELETE https://api.hoody.icu/api/v1/containers/507f1f77bcf86cd799439012/proxy/permissions/permissions/admin/http \
await client . api . proxyPermissionsContainer . removeProgram (
" 507f1f77bcf86cd799439012 " ,
Project-level documents apply to every container in the project that does not carry its own container-level proxy document. The set of supported group types is jwt, password, ip, token, and hoody-identity.
Retrieve the full proxy access control configuration for a project.
Name In Type Required Description idpath string Yes Project ID
" message " : " Project proxy permissions retrieved successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Project not found "
Error Code Title Description Resolution PROJECT_NOT_FOUNDProject not found The specified project ID does not exist or you do not have access to it Verify the project ID is correct and that you have permission to access this project
curl https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions
await client . api . proxyPermissionsProject . get ( " 507f1f77bcf86cd799439011 " );
Replace the entire project proxy permissions document. Requires If-Match: file:v (428 when absent, 412 when stale).
Name In Type Required Description idpath string Yes Project ID if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description projectstring Yes Project ID (must match path id) groupsobject Yes Authentication groups configuration. Key is group name, value is group config. permissionsobject Yes Per-group program permissions. Key is group name, value is a map of program -> access-rule. defaultstring (allow | deny) No Default access policy when no rules match (defaults to deny if omitted) enable_proxyboolean No Enable or disable the proxy. Defaults to true.
" message " : " Project proxy permissions updated successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Invalid permissions configuration "
Error Code Title Description Resolution VALIDATION_ERRORInvalid input parameters The proxy permissions configuration contains invalid data or missing required fields Check that all required fields are present and properly formatted according to the schema INVALID_JWT_CONFIGInvalid JWT configuration JWT authentication group has invalid secret, algorithm, or sources configuration Ensure JWT secret is valid for the algorithm, sources are properly formatted, and claims are scalar values INVALID_IP_RANGEInvalid IP CIDR range IP authentication group has an invalid IPv4 CIDR notation Use valid IPv4 CIDR format like 192.168.1.0/24 or 10.0.0.1/32
" message " : " Project not found "
Error Code Title Description Resolution PROJECT_NOT_FOUNDProject not found The specified project ID does not exist or you do not have access to it Verify the project ID is correct and that you have permission to access this project
curl -X PUT https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions \
-H " Content-Type: application/json " \
"project": "507f1f77bcf86cd799439011",
await client . api . proxyPermissionsProject . replace (
" 507f1f77bcf86cd799439011 " ,
project : " 507f1f77bcf86cd799439011 " ,
Remove all proxy access control from a project, reverting it to open access with default allow.
Name In Type Required Description idpath string Yes Project ID if-matchheader string No file:v ETag precondition - read current file_version from GET first
" message " : " Project proxy permissions deleted successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Project not found "
Error Code Title Description Resolution PROJECT_NOT_FOUNDProject not found The specified project ID does not exist or you do not have access to it Verify the project ID is correct and that you have permission to access this project
curl -X DELETE https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions \
await client . api . proxyPermissionsProject . delete (
" 507f1f77bcf86cd799439011 " ,
Update only the project default access policy. The default is the fallback for requests that match no authentication group.
Name In Type Required Description idpath string Yes Project ID if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description defaultstring (allow | deny) Yes Default access policy for unmatched requests
" message " : " Default policy updated successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Invalid default policy value "
Error Code Title Description Resolution VALIDATION_ERRORInvalid default policy The default policy must be either allow or deny Provide a valid default value: allow or deny
" message " : " Project not found "
Error Code Title Description Resolution PROJECT_NOT_FOUNDProject not found The specified project ID does not exist or you do not have access to it Verify the project ID is correct and that you have permission to access this project
curl -X PATCH https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/default \
-H " Content-Type: application/json " \
await client . api . proxyPermissionsProject . updateDefault (
" 507f1f77bcf86cd799439011 " ,
Enable or disable the proxy for a project. Disabling is a kill-switch: requests that reach the proxy permission layer are denied with 403, evaluated before authentication groups, permission rules, and the default policy. Containers keep running; only proxy reachability is cut.
Note
The project value applies only to containers that do not set enable_proxy themselves. A container document with enable_proxy: true overrides a disabled project, and saving a container permissions document persists an explicit true. Use the container-level endpoint to disable a specific container reliably.
Name In Type Required Description idpath string Yes Project ID if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description enable_proxyboolean Yes Enable or disable the proxy entirely
" message " : " Proxy state updated successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Invalid enable_proxy value "
Error Code Title Description Resolution VALIDATION_ERRORInvalid enable_proxy value The enable_proxy field must be a boolean (true or false) Provide a valid boolean value: true to enable proxy, false to disable
" message " : " Project not found "
Error Code Title Description Resolution PROJECT_NOT_FOUNDProject not found The specified project ID does not exist or you do not have access to it Verify the project ID is correct and that you have permission to access this project
curl -X PATCH https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/state \
-H " Content-Type: application/json " \
-d ' {"enable_proxy": false} '
await client . api . proxyPermissionsProject . updateState (
" 507f1f77bcf86cd799439011 " ,
Configure named authentication groups at the project level. Each group belongs to one of: jwt, password, ip, token, or hoody-identity.
Create or replace a JWT authentication group at the project level.
This group verifies JWTs your app issues - not Hoody identity claims
The identity_claim returned by Hoody login is a detached-signature ED25519 bundle, not a JWT, and cannot be validated by a jwt group. If you want to gate your project on a real Hoody identity, use the native hoody-identity group type instead. A jwt group expects the caller to mint its own tokens (HS256/RS256/ES256) using a key the project document holds.
The hoody-identity group config is { audience (REQUIRED), sources? (header-only, X-Hoody-Identity- namespace), allow_types?, users?, max_age_seconds? (≥300), expose_type? } and never carries key material - the operator owns the trust keyring. See Hoody Identity Authentication and Identity Claims .
Name In Type Required Description idpath string Yes Project ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description secretstring Yes JWT secret key used to verify token signatures. For HS256: any string. For RS256/ES256: PEM-encoded SPKI public key. algorithmstring (HS256 | RS256 | ES256) Yes JWT algorithm to use for signature verification. sourcesarray Yes Where to look for JWT tokens. Format: header:Name or cookie:Name. claimsobject No Optional JWT claims that must be present and match exactly. Values must be string, number, or boolean.
" message " : " JWT authentication group configured successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Invalid JWT configuration "
curl -X PUT https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/groups/admin/jwt \
-H " Content-Type: application/json " \
"secret": "shared-secret-change-me",
"sources": ["header:Authorization"],
"claims": { "role": "admin" }
await client . api . proxyPermissionsProject . setJwtGroup (
" 507f1f77bcf86cd799439011 " ,
secret : " shared-secret-change-me " ,
sources : [ " header:Authorization " ],
claims : { role : " admin " }
Create or replace a password authentication group at the project level. Passwords are stored as SHA256(salt + password) in lowercase hex.
Name In Type Required Description idpath string Yes Project ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description usernamestring Yes Username for authentication. Must match exactly what the client provides. passwordstring Yes Password for authentication. Can be plaintext (will be hashed) or pre-hashed SHA256(salt + password) in lowercase hex format. algorithmstring (sha256) No Hashing algorithm used for password verification. Currently only SHA256 is supported. saltstring Yes Salt used for password hashing. Should be unique per user/group for security.
" message " : " Password authentication group configured successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Invalid password configuration "
curl -X PUT https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/groups/users/password \
-H " Content-Type: application/json " \
await client . api . proxyPermissionsProject . setPasswordGroup (
" 507f1f77bcf86cd799439011 " ,
Create or replace an IP-range authentication group at the project level.
Name In Type Required Description idpath string Yes Project ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description rangestring Yes IPv4 CIDR range specifying allowed IP addresses. Format: IP/mask where mask is 0-32. Examples: 192.168.1.0/24, 10.0.0.0/8, 203.0.113.5/32.
" message " : " IP authentication group configured successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" range " : " 192.168.1.0/24 "
" message " : " Invalid IP CIDR range "
curl -X PUT https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/groups/office/ip \
-H " Content-Type: application/json " \
-d ' {"range": "192.168.1.0/24"} '
await client . api . proxyPermissionsProject . setIpGroup (
" 507f1f77bcf86cd799439011 " ,
{ range : " 192.168.1.0/24 " },
Create or replace a static-token authentication group at the project level. Supply exactly one location: header, cookie, or param.
Name In Type Required Description idpath string Yes Project ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Supply exactly one of the following shapes:
Header token - header (string, required) and value (string, required)
Cookie token - cookie (string, required) and value (string, required)
Query param token - param (string, required) and value (string, required)
" message " : " Token authentication group configured successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Invalid token configuration "
curl -X PUT https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/groups/api-clients/token \
-H " Content-Type: application/json " \
-d ' {"header": "X-API-Key", "value": "tok_4f12a8"} '
await client . api . proxyPermissionsProject . setTokenGroup (
" 507f1f77bcf86cd799439011 " ,
{ header : " X-API-Key " , value : " tok_4f12a8 " },
Remove an authentication group from a project. Program permissions referencing the group remain in the document but will no longer match any authenticated identity.
Name In Type Required Description idpath string Yes Project ID groupNamepath string Yes Group name to remove if-matchheader string No file:v ETag precondition - read current file_version from GET first
" message " : " Authentication group removed successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Project or group not found "
curl -X DELETE https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/groups/admin \
await client . api . proxyPermissionsProject . removeAuthGroup (
" 507f1f77bcf86cd799439011 " ,
Per-group program access rules at the project level. Each rule defines WHICH instances/ports are ALLOWED, not which exist.
Set or replace one program access rule for a project group.
Name In Type Required Description idpath string Yes Project ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
Field Type Required Description programstring Yes Program name to set the access rule for (e.g., http, terminal, ssh, files, exec, services, notifications). accessboolean | number | array | string Yes Access control rule: true = allow all, false = deny all; a number = allow only that port; an array of numbers = allow only those ports; a "8000-8100" string = allow a port range; "*" = allow all (same as true). For files, services, notifications, exec only boolean is allowed.
" message " : " Group program permission set successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
" message " : " Invalid permission value "
curl -X PUT https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/permissions/admin \
-H " Content-Type: application/json " \
-d ' { "program": "http", "access": [8080] } '
await client . api . proxyPermissionsProject . setGroup (
" 507f1f77bcf86cd799439011 " ,
{ program : " http " , access : [ 8080 ] },
Remove every program permission defined for a project group. The group’s authentication configuration is left untouched.
Name In Type Required Description idpath string Yes Project ID groupNamepath string Yes Group name if-matchheader string No file:v ETag precondition - read current file_version from GET first
" message " : " All group permissions removed successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
curl -X DELETE https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/permissions/admin \
await client . api . proxyPermissionsProject . removeGroup (
" 507f1f77bcf86cd799439011 " ,
Remove a single program permission from a project group.
Name In Type Required Description idpath string Yes Project ID groupNamepath string Yes Group name programpath string Yes Program name (e.g., http, ssh, files) if-matchheader string No file:v ETag precondition - read current file_version from GET first
" message " : " Program permission removed successfully " ,
" project " : " 507f1f77bcf86cd799439011 " ,
curl -X DELETE https://api.hoody.icu/api/v1/projects/507f1f77bcf86cd799439011/proxy/permissions/permissions/admin/http \
await client . api . proxyPermissionsProject . removeProgram (
" 507f1f77bcf86cd799439011 " ,