Access Policy
Access Policy service API reference
Services
AccessPolicyService Service
Administers direct grants and code-defined role assignments.
Authentication: Every RPC requires gRPC metadata
authorization: Bearer <api-key>.
Authorization Model:
MANAGE_ACCESSis the operation used to inspect and modify a resource's policy.- The service resolves the policy target before authorization, preserving GoodMem's distinct
NOT_FOUNDandPERMISSION_DENIEDcontract. - Mutations re-evaluate target state and effective authority in their final SQL statement.
- Direct grants and scoped role assignments are permanent audit records. Revocation marks a row inactive rather than physically deleting it.
Global Errors: All RPCs may return DEADLINE_EXCEEDED, CANCELLED, UNAVAILABLE,
RESOURCE_EXHAUSTED, or INTERNAL in addition to their operation-specific errors.
CheckAuthorizations
Evaluates concrete authorization questions for the authenticated request principal.
| Type | |
|---|---|
| Request | goodmem.v1.CheckAuthorizationsRequest |
| Response | goodmem.v1.CheckAuthorizationsResponse |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Semantics: Every decision uses the caller's current live authority intersected with the immutable ceiling of the authenticating scoped API key. This RPC never evaluates a caller-supplied principal and does not reveal which role, grant, ownership rule, or ceiling produced a decision.
Target Semantics:
- Top-level create operations use
INSTANCE; the check models a proposed resource owned by the caller. It is an authority preflight and does not validate a future resource ID, payload, or operation-specific precondition. CREATE_MEMORYandLIST_MEMORYuse their parentSPACE.- Collection and administrative operations whose authorization target is the singleton use
INSTANCE.LIST_API_KEYandLIST_RETRIEVE_MEMORY_LOG_POLICYare not accepted because their current authorization algebra is candidate-resource based and has no honest instance-wide preflight answer. - Reads, mutations, proxy operations, and access-policy administration use their concrete resource. Memory checks include the memory's direct-space containment facts.
Request Behavior: checks must contain between 1 and 50 items. Each operation must be
recognized and paired with the target kind described above. Any malformed item rejects the
complete request before evaluation.
Response: Returns exactly one positional decision per request item. A missing target and an
authorization denial both produce allowed=false; the response deliberately does not
distinguish those cases.
Side Effects: None. Decisions are advisory only. Every subsequent resource RPC performs its own validation and authorization against fresh state, so clients must tolerate a later denial.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Empty or oversized batch, unknown operation, malformed target, or incompatible operation/target pair.INTERNAL: Target resolution or authorization infrastructure failed.
Idempotency: Read-only and safe to retry. Concurrent policy or resource changes can alter a later response.
CreateAuthorizationGrant
Creates one direct authorization grant.
| Type | |
|---|---|
| Request | goodmem.v1.CreateAuthorizationGrantRequest |
| Response | goodmem.v1.AuthorizationGrant |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Required: MANAGE_ACCESS on the resolved policy target.
Request Behavior:
audiencemust identify one active principal orALL_AUTHENTICATED.rulemust combine a compatible operation, selector, and assigned-resource shape.- Direct grants cannot confer credential-read or ownership-transfer authority.
ALL_AUTHENTICATEDgrants requireEXACTorDIRECT_MEMBERS_OF.- Principal-only administration operations (
MANAGE_ACCESSandMANAGE_USER_ENROLLMENT) require a concrete principal audience and theANYorEXACTselector. - An
EXACTMANAGE_USER_ENROLLMENTgrant must target aUSERresource. - The server generates
grant_idwhen the caller omits it.
Response: The newly created live AuthorizationGrant, including creation provenance.
Side Effects: Inserts one durable grant row. It does not change ownership, roles, API-key ceilings, or the audience principal.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Malformed UUID, audience, rule, selector, or resource-kind combination; a principal-only administration rule with an invalid audience, selector, or target kind; or an operation that direct grants are forbidden to confer.NOT_FOUND: The policy target or principal audience does not exist in the required active state.PERMISSION_DENIED: Caller lacksMANAGE_ACCESSon the policy target.ALREADY_EXISTS: The requested UUID or an equivalent live grant already exists.INTERNAL: Unexpected server or database failure.
Idempotency: Not inherently idempotent. Repeating a successful request returns
ALREADY_EXISTS while the same live grant or caller-provided UUID remains occupied.
Examples:
grpcurl -plaintext \
-H 'authorization: Bearer <api-key>' \
-d '{
"audience": { "principal_id": "BASE64_ENCODED_PRINCIPAL_UUID" },
"rule": {
"operation": "ACCESS_POLICY_OPERATION_READ_SPACE",
"selector": "ACCESS_POLICY_SELECTOR_EXACT",
"assigned_resource": { "space_id": "BASE64_ENCODED_SPACE_UUID" }
}
}' \
localhost:8080 goodmem.v1.AccessPolicyService/CreateAuthorizationGrantGetAuthorizationGrant
Retrieves one direct authorization grant by UUID.
| Type | |
|---|---|
| Request | goodmem.v1.GetAuthorizationGrantRequest |
| Response | goodmem.v1.AuthorizationGrant |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Required: MANAGE_ACCESS on the grant's policy target.
Request Behavior:
grant_idmust contain one UUID.- A live grant is eligible by default.
include_revoked=truealso permits the matching historical row to be returned.- The target must still exist, and the caller must retain authority on that target.
Response: The matching live or historical AuthorizationGrant.
Side Effects: None; this is a read-only operation.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Malformed grant UUID.NOT_FOUND: No eligible grant exists, or its policy target no longer exists.PERMISSION_DENIED: Caller lacksMANAGE_ACCESSon the grant's policy target.INTERNAL: Unexpected server or database failure.
Idempotency: Read-only and safe to retry.
Examples:
grpcurl -plaintext \
-H 'authorization: Bearer <api-key>' \
-d '{ "grant_id": "BASE64_ENCODED_GRANT_UUID", "include_revoked": true }' \
localhost:8080 goodmem.v1.AccessPolicyService/GetAuthorizationGrantListAuthorizationGrants
Lists one stable page of grants attached to a policy target.
| Type | |
|---|---|
| Request | goodmem.v1.ListAuthorizationGrantsRequest |
| Response | goodmem.v1.ListAuthorizationGrantsResponse |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Required: MANAGE_ACCESS on assigned_resource.
Request Behavior:
assigned_resourceis required and identifies exactly one policy boundary.include_revoked=falselists live grants only;trueincludes historical rows.max_resultsdefaults to 50 and may not exceed 1,000.next_tokenis opaque and bound to the requestor, target, and history flag.- The target and caller authority are resolved again for every page.
Response: A ListAuthorizationGrantsResponse ordered by ascending creation time and grant
UUID. next_token is absent after the final page.
Side Effects: None; this is a read-only operation.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Malformed target, page size, or continuation token.NOT_FOUND: The requested policy target does not exist.PERMISSION_DENIED: Caller lacksMANAGE_ACCESSon the policy target, or the pagination token belongs to a different authenticated requestor.INTERNAL: Unexpected server or database failure.
Idempotency: Read-only and safe to retry. Concurrent policy changes may alter later pages.
Examples:
grpcurl -plaintext \
-H 'authorization: Bearer <api-key>' \
-d '{
"assigned_resource": { "space_id": "BASE64_ENCODED_SPACE_UUID" },
"include_revoked": false,
"max_results": 50
}' \
localhost:8080 goodmem.v1.AccessPolicyService/ListAuthorizationGrantsRevokeAuthorizationGrant
Permanently revokes one direct grant while preserving its audit history.
| Type | |
|---|---|
| Request | goodmem.v1.RevokeAuthorizationGrantRequest |
| Response | goodmem.v1.AuthorizationGrant |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Required: MANAGE_ACCESS on the grant's policy target.
Request Behavior:
grant_idmust identify an existing current or historical grant.- Revoking an already-revoked grant succeeds without changing its original revocation timestamp or actor.
- The target must still exist, and the caller must retain authority on that target.
Response: The historical AuthorizationGrant, including revocation time and actor.
Side Effects: On the first successful call, records revoked_at and the exact
authenticated principal or API key as revoked_by_id. The grant row is never physically
deleted.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Malformed grant UUID.NOT_FOUND: The grant or its policy target does not exist.PERMISSION_DENIED: Caller lacksMANAGE_ACCESSon the grant's policy target.INTERNAL: Unexpected server or database failure.
Idempotency: Authorized retries preserve and return the original revocation provenance.
Examples:
grpcurl -plaintext \
-H 'authorization: Bearer <api-key>' \
-d '{ "grant_id": "BASE64_ENCODED_GRANT_UUID" }' \
localhost:8080 goodmem.v1.AccessPolicyService/RevokeAuthorizationGrantAssignRole
Assigns one code-defined role to an active principal at instance or space scope.
| Type | |
|---|---|
| Request | goodmem.v1.AssignRoleRequest |
| Response | goodmem.v1.RoleAssignment |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Required: MANAGE_ACCESS on assigned_resource.
Request Behavior:
principal_idmust identify an activeHUMANorSERVICEprincipal.rolemust be a concrete assignable role compatible with the requested scope.assigned_resourcemust identify the singleton instance or one memory space.ROOTcannot be assigned through this API because it mirrors instance ownership.- The server generates
role_assignment_idwhen the caller omits it.
Response: The newly created live RoleAssignment, including assignment provenance.
Side Effects: Inserts one durable role-assignment row. It does not transfer ownership, create credentials, or modify direct grants.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Malformed UUID, unknown or prohibited role, missing target, or a role and target scope that are incompatible.NOT_FOUND: The receiving principal or assigned resource does not exist in the required active state.PERMISSION_DENIED: Caller lacksMANAGE_ACCESSon the assigned resource.ALREADY_EXISTS: The requested UUID or equivalent live role assignment already exists.INTERNAL: Unexpected server or database failure.
Idempotency: Not inherently idempotent. Repeating a successful assignment returns
ALREADY_EXISTS while the same live binding or caller-provided UUID remains occupied.
Examples:
grpcurl -plaintext \
-H 'authorization: Bearer <api-key>' \
-d '{
"principal_id": "BASE64_ENCODED_PRINCIPAL_UUID",
"role": "BUILT_IN_ROLE_SPACE_VIEWER",
"assigned_resource": { "space_id": "BASE64_ENCODED_SPACE_UUID" }
}' \
localhost:8080 goodmem.v1.AccessPolicyService/AssignRoleGetRoleAssignment
Retrieves one role assignment by UUID.
| Type | |
|---|---|
| Request | goodmem.v1.GetRoleAssignmentRequest |
| Response | goodmem.v1.RoleAssignment |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Required: MANAGE_ACCESS on the assignment's instance or space target.
Request Behavior:
role_assignment_idmust contain one UUID.- A live assignment is eligible by default.
include_revoked=truealso permits the matching historical row to be returned.- The target must still exist, and the caller must retain authority on that target.
Response: The matching live or historical RoleAssignment.
Side Effects: None; this is a read-only operation.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Malformed role-assignment UUID.NOT_FOUND: No eligible assignment exists, or its assigned resource no longer exists.PERMISSION_DENIED: Caller lacksMANAGE_ACCESSon the assigned resource.INTERNAL: Unexpected server or database failure.
Idempotency: Read-only and safe to retry.
Examples:
grpcurl -plaintext \
-H 'authorization: Bearer <api-key>' \
-d '{
"role_assignment_id": "BASE64_ENCODED_ROLE_ASSIGNMENT_UUID",
"include_revoked": true
}' \
localhost:8080 goodmem.v1.AccessPolicyService/GetRoleAssignmentListRoleAssignments
Lists one stable page of role assignments attached to an instance or space.
| Type | |
|---|---|
| Request | goodmem.v1.ListRoleAssignmentsRequest |
| Response | goodmem.v1.ListRoleAssignmentsResponse |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Required: MANAGE_ACCESS on assigned_resource.
Request Behavior:
assigned_resourcemust identify the singleton instance or one memory space.include_revoked=falselists live assignments only;trueincludes historical rows.max_resultsdefaults to 50 and may not exceed 1,000.next_tokenis opaque and bound to the requestor, target, and history flag.- The target and caller authority are resolved again for every page.
Response: A ListRoleAssignmentsResponse ordered by ascending assignment time and UUID.
next_token is absent after the final page.
Side Effects: None; this is a read-only operation.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Malformed or unsupported target, page size, or continuation token.NOT_FOUND: The requested instance or space does not exist.PERMISSION_DENIED: Caller lacksMANAGE_ACCESSon the target, or the pagination token belongs to a different authenticated requestor.INTERNAL: Unexpected server or database failure.
Idempotency: Read-only and safe to retry. Concurrent policy changes may alter later pages.
Examples:
grpcurl -plaintext \
-H 'authorization: Bearer <api-key>' \
-d '{
"assigned_resource": { "space_id": "BASE64_ENCODED_SPACE_UUID" },
"include_revoked": true,
"max_results": 50
}' \
localhost:8080 goodmem.v1.AccessPolicyService/ListRoleAssignmentsRevokeRoleAssignment
Permanently revokes one non-ROOT role assignment while preserving its audit history.
| Type | |
|---|---|
| Request | goodmem.v1.RevokeRoleAssignmentRequest |
| Response | goodmem.v1.RoleAssignment |
Auth: gRPC metadata authorization: Bearer <api-key>
Authorization Required: MANAGE_ACCESS on the assignment's instance or space target.
Request Behavior:
role_assignment_idmust identify an existing current or historical assignment.ROOTassignments cannot be revoked through this API because they mirror instance ownership.- Revoking an already-revoked assignment succeeds without changing its original revocation timestamp or actor.
- The target must still exist, and the caller must retain authority on that target.
Response: The historical RoleAssignment, including revocation time and actor.
Side Effects: On the first successful call, records revoked_at and the exact
authenticated principal or API key as revoked_by_id. The assignment row is never physically
deleted.
Error Codes:
UNAUTHENTICATED: Missing or invalid authentication.INVALID_ARGUMENT: Malformed assignment UUID, or an authorized attempt to revokeROOT.NOT_FOUND: The role assignment or its assigned resource does not exist.PERMISSION_DENIED: Caller lacksMANAGE_ACCESSon the assigned resource.INTERNAL: Unexpected server or database failure.
Idempotency: Authorized retries preserve and return the original revocation provenance.
Examples:
grpcurl -plaintext \
-H 'authorization: Bearer <api-key>' \
-d '{ "role_assignment_id": "BASE64_ENCODED_ROLE_ASSIGNMENT_UUID" }' \
localhost:8080 goodmem.v1.AccessPolicyService/RevokeRoleAssignmentMessages
AccessPolicyTarget
A strongly typed GoodMem resource target.
The instance branch resolves to the singleton row in this database. UUID branches contain exactly 16 bytes. Identical UUID values in different branches remain distinct resources. When this message is supplied, exactly one target branch is required.
| Field | Type | Description |
|---|---|---|
instance | google.protobuf.Empty | |
user_id | bytes | |
service_identity_id | bytes | |
space_id | bytes | |
api_key_id | bytes | |
embedder_id | bytes | |
reranker_id | bytes | |
llm_id | bytes | |
memory_id | bytes | |
extension_id | bytes | |
retrieve_memory_log_policy_id | bytes |
AccessPolicyRule
One typed authorization descriptor.
| Field | Type | Description |
|---|---|---|
operation | ...odmem.v1.AccessPolicyOperation | Required; UNSPECIFIED is rejected. |
selector | ...oodmem.v1.AccessPolicySelector | Required; UNSPECIFIED is rejected. |
assigned_resource | goodmem.v1.AccessPolicyTarget | Required exactly for EXACT and DIRECT_MEMBERS_OF; prohibited for ANY and OWN. |
GrantAudience
Audience receiving one direct authorization grant; exactly one branch is required.
| Field | Type | Description |
|---|---|---|
principal_id | bytes | Active HUMAN or SERVICE principal UUID. |
all_authenticated | google.protobuf.Empty | Every successfully authenticated principal. |
AuthorizationGrant
Current or historical direct authorization grant.
| Field | Type | Description |
|---|---|---|
grant_id | bytes | OUTPUT_ONLY; stable grant UUID (16 bytes). |
audience | goodmem.v1.GrantAudience | OUTPUT_ONLY; principal or all-authenticated audience receiving the grant. |
rule | goodmem.v1.AccessPolicyRule | OUTPUT_ONLY; immutable operation, selector, and assigned-resource descriptor. |
created_at | google.protobuf.Timestamp | OUTPUT_ONLY; grant creation time. |
created_by_id | bytes | OUTPUT_ONLY; exact actor UUID that created the grant. |
revoked_at | google.protobuf.Timestamp | OUTPUT_ONLY; permanent revocation time, when revoked. |
revoked_by_id | bytes | OUTPUT_ONLY; exact actor UUID that revoked the grant, when revoked. |
RoleAssignment
Current or historical assignment of one code-defined role.
| Field | Type | Description |
|---|---|---|
role_assignment_id | bytes | OUTPUT_ONLY; stable role-assignment UUID (16 bytes). |
principal_id | bytes | OUTPUT_ONLY; UUID (16 bytes) of the principal receiving the role. |
role | goodmem.v1.BuiltInRole | OUTPUT_ONLY; code-defined role assigned to the principal. |
assigned_resource | goodmem.v1.AccessPolicyTarget | OUTPUT_ONLY; instance or space at which the role is assigned. |
assigned_at | google.protobuf.Timestamp | OUTPUT_ONLY; role-assignment creation time. |
assigned_by_id | bytes | OUTPUT_ONLY; exact actor UUID that assigned the role. |
revoked_at | google.protobuf.Timestamp | OUTPUT_ONLY; permanent revocation time, when revoked. |
revoked_by_id | bytes | OUTPUT_ONLY; exact actor UUID that revoked the assignment, when revoked. |
CreateAuthorizationGrantRequest
| Field | Type | Description |
|---|---|---|
grant_id | bytes | OPTIONAL; client UUID. The server generates a UUIDv7 when absent or empty. |
audience | goodmem.v1.GrantAudience | REQUIRED; principal or all-authenticated audience receiving the grant. |
rule | goodmem.v1.AccessPolicyRule | REQUIRED; operation, selector, and assigned-resource descriptor to grant. |
GetAuthorizationGrantRequest
| Field | Type | Description |
|---|---|---|
grant_id | bytes | REQUIRED; UUID (16 bytes) of the grant to read. |
include_revoked | bool | OPTIONAL; defaults to false, which hides revoked grant history. |
ListAuthorizationGrantsRequest
| Field | Type | Description |
|---|---|---|
assigned_resource | goodmem.v1.AccessPolicyTarget | REQUIRED; policy boundary whose grants are listed. |
include_revoked | bool | OPTIONAL; defaults to false, which lists live grants only. |
max_results | int32 | OPTIONAL; defaults to 50; maximum 1,000. |
next_token | string | OPTIONAL; opaque token returned by the preceding page. |
ListAuthorizationGrantsResponse
| Field | Type | Description |
|---|---|---|
grants | goodmem.v1.AuthorizationGrant | OUTPUT_ONLY; grants in stable creation order. |
next_token | string | OUTPUT_ONLY; opaque continuation token, absent after the final page. |
RevokeAuthorizationGrantRequest
| Field | Type | Description |
|---|---|---|
grant_id | bytes | REQUIRED; UUID (16 bytes) of the grant to revoke. |
AssignRoleRequest
| Field | Type | Description |
|---|---|---|
role_assignment_id | bytes | OPTIONAL; client UUID. The server generates a UUIDv7 when absent or empty. |
principal_id | bytes | REQUIRED; UUID (16 bytes) of the active principal receiving the role. |
role | goodmem.v1.BuiltInRole | REQUIRED; code-defined role to assign; UNSPECIFIED and ROOT are rejected. |
assigned_resource | goodmem.v1.AccessPolicyTarget | REQUIRED; INSTANCE or SPACE boundary at which the role is assigned. |
GetRoleAssignmentRequest
| Field | Type | Description |
|---|---|---|
role_assignment_id | bytes | REQUIRED; UUID (16 bytes) of the role assignment to read. |
include_revoked | bool | OPTIONAL; defaults to false, which hides revoked assignment history. |
ListRoleAssignmentsRequest
| Field | Type | Description |
|---|---|---|
assigned_resource | goodmem.v1.AccessPolicyTarget | REQUIRED; INSTANCE or SPACE policy boundary whose assignments are listed. |
include_revoked | bool | OPTIONAL; defaults to false, which lists live assignments only. |
max_results | int32 | OPTIONAL; defaults to 50; maximum 1,000. |
next_token | string | OPTIONAL; opaque token returned by the preceding page. |
ListRoleAssignmentsResponse
| Field | Type | Description |
|---|---|---|
role_assignments | goodmem.v1.RoleAssignment | OUTPUT_ONLY; role assignments in stable assignment order. |
next_token | string | OUTPUT_ONLY; opaque continuation token, absent after the final page. |
RevokeRoleAssignmentRequest
| Field | Type | Description |
|---|---|---|
role_assignment_id | bytes | REQUIRED; UUID (16 bytes) of the role assignment to revoke. |
AuthorizationCheck
One concrete, advisory authorization check for the authenticated request principal.
| Field | Type | Description |
|---|---|---|
operation | ...odmem.v1.AccessPolicyOperation | REQUIRED; operation the caller proposes to perform. UNSPECIFIED is rejected. |
target | goodmem.v1.AccessPolicyTarget | REQUIRED; existing authorization boundary or concrete resource relevant to the operation. |
CheckAuthorizationsRequest
Request to evaluate a bounded set of concrete authorization checks.
| Field | Type | Description |
|---|---|---|
checks | goodmem.v1.AuthorizationCheck | REQUIRED; between 1 and 50 checks. Any malformed item rejects the complete request. |
AuthorizationCheckResult
One positional result for a concrete authorization check.
| Field | Type | Description |
|---|---|---|
allowed | bool | OUTPUT_ONLY; false when the target is absent or effective authority does not allow the action. |
CheckAuthorizationsResponse
Response containing exactly one decision for every request check, in request order.
| Field | Type | Description |
|---|---|---|
results | ...em.v1.AuthorizationCheckResult | OUTPUT_ONLY; positional decisions corresponding one-for-one with request checks. |
ListAuthorizationGrantsNextPageToken
Opaque grant-page cursor encoded and validated by the server.
| Field | Type | Description |
|---|---|---|
requestor_id | bytes | |
assigned_resource | goodmem.v1.AccessPolicyTarget | |
include_revoked | bool | |
last_created_at | google.protobuf.Timestamp | |
last_grant_id | bytes |
ListRoleAssignmentsNextPageToken
Opaque role-assignment page cursor encoded and validated by the server.
| Field | Type | Description |
|---|---|---|
requestor_id | bytes | |
assigned_resource | goodmem.v1.AccessPolicyTarget | |
include_revoked | bool | |
last_assigned_at | google.protobuf.Timestamp | |
last_role_assignment_id | bytes |
Enums
AccessPolicyResourceKind
Concrete resource kinds accepted by GoodMem access policies.
Numeric values are stable persistence contracts shared with PostgreSQL and the Java authorization implementation. Values must never be renumbered or reused.
| Name | Value | Description |
|---|---|---|
ACCESS_POLICY_RESOURCE_KIND_UNSPECIFIED | 0 | |
ACCESS_POLICY_RESOURCE_KIND_INSTANCE | 1 | |
ACCESS_POLICY_RESOURCE_KIND_USER | 2 | |
ACCESS_POLICY_RESOURCE_KIND_SERVICE_IDENTITY | 3 | |
ACCESS_POLICY_RESOURCE_KIND_SPACE | 4 | |
ACCESS_POLICY_RESOURCE_KIND_API_KEY | 5 | |
ACCESS_POLICY_RESOURCE_KIND_EMBEDDER | 6 | |
ACCESS_POLICY_RESOURCE_KIND_RERANKER | 7 | |
ACCESS_POLICY_RESOURCE_KIND_LLM | 8 | |
ACCESS_POLICY_RESOURCE_KIND_MEMORY | 9 | |
ACCESS_POLICY_RESOURCE_KIND_EXTENSION | 10 | |
ACCESS_POLICY_RESOURCE_KIND_RETRIEVE_MEMORY_LOG_POLICY | 11 |
AccessPolicyOperation
Stable operations that may appear in authorization rules.
Numeric values are identical to the migration-managed operation catalog. An operation may only be paired with a compatible target kind and selector.
| Name | Value | Description |
|---|---|---|
ACCESS_POLICY_OPERATION_UNSPECIFIED | 0 | |
ACCESS_POLICY_OPERATION_CREATE_USER | 101 | |
ACCESS_POLICY_OPERATION_READ_USER | 102 | |
ACCESS_POLICY_OPERATION_UPDATE_USER | 103 | |
ACCESS_POLICY_OPERATION_DELETE_USER | 104 | |
ACCESS_POLICY_OPERATION_LIST_USER | 105 | |
ACCESS_POLICY_OPERATION_MANAGE_USER_ENROLLMENT | 106 | |
ACCESS_POLICY_OPERATION_CREATE_SERVICE_IDENTITY | 201 | |
ACCESS_POLICY_OPERATION_READ_SERVICE_IDENTITY | 202 | |
ACCESS_POLICY_OPERATION_UPDATE_SERVICE_IDENTITY | 203 | |
ACCESS_POLICY_OPERATION_DELETE_SERVICE_IDENTITY | 204 | |
ACCESS_POLICY_OPERATION_LIST_SERVICE_IDENTITY | 205 | |
ACCESS_POLICY_OPERATION_CREATE_SPACE | 301 | |
ACCESS_POLICY_OPERATION_READ_SPACE | 302 | |
ACCESS_POLICY_OPERATION_UPDATE_SPACE | 303 | |
ACCESS_POLICY_OPERATION_DELETE_SPACE | 304 | |
ACCESS_POLICY_OPERATION_LIST_SPACE | 305 | |
ACCESS_POLICY_OPERATION_CREATE_API_KEY | 401 | |
ACCESS_POLICY_OPERATION_READ_API_KEY | 402 | |
ACCESS_POLICY_OPERATION_UPDATE_API_KEY | 403 | |
ACCESS_POLICY_OPERATION_DELETE_API_KEY | 404 | |
ACCESS_POLICY_OPERATION_LIST_API_KEY | 405 | |
ACCESS_POLICY_OPERATION_CREATE_EMBEDDER | 501 | |
ACCESS_POLICY_OPERATION_READ_EMBEDDER | 502 | |
ACCESS_POLICY_OPERATION_UPDATE_EMBEDDER | 503 | |
ACCESS_POLICY_OPERATION_DELETE_EMBEDDER | 504 | |
ACCESS_POLICY_OPERATION_LIST_EMBEDDER | 505 | |
ACCESS_POLICY_OPERATION_PING_EMBEDDER | 506 | |
ACCESS_POLICY_OPERATION_EXECUTE_EMBEDDER | 507 | |
ACCESS_POLICY_OPERATION_READ_EMBEDDER_CREDENTIALS | 508 | |
ACCESS_POLICY_OPERATION_CREATE_RERANKER | 601 | |
ACCESS_POLICY_OPERATION_READ_RERANKER | 602 | |
ACCESS_POLICY_OPERATION_UPDATE_RERANKER | 603 | |
ACCESS_POLICY_OPERATION_DELETE_RERANKER | 604 | |
ACCESS_POLICY_OPERATION_LIST_RERANKER | 605 | |
ACCESS_POLICY_OPERATION_PING_RERANKER | 606 | |
ACCESS_POLICY_OPERATION_EXECUTE_RERANKER | 607 | |
ACCESS_POLICY_OPERATION_READ_RERANKER_CREDENTIALS | 608 | |
ACCESS_POLICY_OPERATION_CREATE_LLM | 701 | |
ACCESS_POLICY_OPERATION_READ_LLM | 702 | |
ACCESS_POLICY_OPERATION_UPDATE_LLM | 703 | |
ACCESS_POLICY_OPERATION_DELETE_LLM | 704 | |
ACCESS_POLICY_OPERATION_LIST_LLM | 705 | |
ACCESS_POLICY_OPERATION_PING_LLM | 706 | |
ACCESS_POLICY_OPERATION_EXECUTE_LLM | 707 | |
ACCESS_POLICY_OPERATION_READ_LLM_CREDENTIALS | 708 | |
ACCESS_POLICY_OPERATION_PROXY_INFERENCE_TARGET | 801 | |
ACCESS_POLICY_OPERATION_OCR_DOCUMENT | 802 | |
ACCESS_POLICY_OPERATION_CREATE_MEMORY | 901 | |
ACCESS_POLICY_OPERATION_READ_MEMORY | 902 | |
ACCESS_POLICY_OPERATION_DELETE_MEMORY | 903 | |
ACCESS_POLICY_OPERATION_LIST_MEMORY | 904 | |
ACCESS_POLICY_OPERATION_CREATE_EXTENSION | 1001 | |
ACCESS_POLICY_OPERATION_READ_EXTENSION | 1002 | |
ACCESS_POLICY_OPERATION_UPDATE_EXTENSION | 1003 | |
ACCESS_POLICY_OPERATION_DELETE_EXTENSION | 1004 | |
ACCESS_POLICY_OPERATION_LIST_EXTENSION | 1005 | |
ACCESS_POLICY_OPERATION_DOWNLOAD_EXTENSION | 1006 | |
ACCESS_POLICY_OPERATION_READ_INSTANCE | 1101 | |
ACCESS_POLICY_OPERATION_TRANSFER_INSTANCE_OWNERSHIP | 1102 | |
ACCESS_POLICY_OPERATION_TRANSFER_RESOURCE_OWNERSHIP | 1103 | |
ACCESS_POLICY_OPERATION_RELOAD_LICENSE | 1401 | |
ACCESS_POLICY_OPERATION_DRAIN_SERVER | 1402 | |
ACCESS_POLICY_OPERATION_PURGE_BACKGROUND_JOBS | 1403 | |
ACCESS_POLICY_OPERATION_CREATE_RETRIEVE_MEMORY_LOG_POLICY | 1501 | |
ACCESS_POLICY_OPERATION_READ_RETRIEVE_MEMORY_LOG_POLICY | 1502 | |
ACCESS_POLICY_OPERATION_LIST_RETRIEVE_MEMORY_LOG_POLICY | 1503 | |
ACCESS_POLICY_OPERATION_DELETE_RETRIEVE_MEMORY_LOG_POLICY | 1504 | |
ACCESS_POLICY_OPERATION_MANAGE_ACCESS | 1601 |
AccessPolicySelector
Resource-selection semantics for one authorization operation.
| Name | Value | Description |
|---|---|---|
ACCESS_POLICY_SELECTOR_UNSPECIFIED | 0 | |
ACCESS_POLICY_SELECTOR_ANY | 1 | Every operation-compatible resource. |
ACCESS_POLICY_SELECTOR_OWN | 2 | Resources effectively owned by the subject. |
ACCESS_POLICY_SELECTOR_EXACT | 3 | Exactly the assigned resource. |
ACCESS_POLICY_SELECTOR_DIRECT_MEMBERS_OF | 4 | Direct members of the assigned container. |
BuiltInRole
Code-defined roles assignable through the access-policy service.
| Name | Value | Description |
|---|---|---|
BUILT_IN_ROLE_UNSPECIFIED | 0 | |
BUILT_IN_ROLE_ROOT | 1 | Ownership mirror; never assigned through this API. |
BUILT_IN_ROLE_ADMIN | 2 | Instance administrator. |
BUILT_IN_ROLE_USER | 3 | Standard instance user. |
BUILT_IN_ROLE_SPACE_VIEWER | 4 | Reads one space and its memories. |
BUILT_IN_ROLE_SPACE_CONTRIBUTOR | 5 | Reads and adds memories in one space. |
BUILT_IN_ROLE_SPACE_CONTENT_MANAGER | 6 | Reads, adds, and deletes space content. |
BUILT_IN_ROLE_SPACE_ADMIN | 7 | Administers one space and its policy. |