GoodMemGoodMem
ReferenceAPIgRPC API

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_ACCESS is the operation used to inspect and modify a resource's policy.
  • The service resolves the policy target before authorization, preserving GoodMem's distinct NOT_FOUND and PERMISSION_DENIED contract.
  • 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
Requestgoodmem.v1.CheckAuthorizationsRequest
Responsegoodmem.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_MEMORY and LIST_MEMORY use their parent SPACE.
  • Collection and administrative operations whose authorization target is the singleton use INSTANCE. LIST_API_KEY and LIST_RETRIEVE_MEMORY_LOG_POLICY are 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
Requestgoodmem.v1.CreateAuthorizationGrantRequest
Responsegoodmem.v1.AuthorizationGrant

Auth: gRPC metadata authorization: Bearer <api-key>

Authorization Required: MANAGE_ACCESS on the resolved policy target.

Request Behavior:

  • audience must identify one active principal or ALL_AUTHENTICATED.
  • rule must combine a compatible operation, selector, and assigned-resource shape.
  • Direct grants cannot confer credential-read or ownership-transfer authority.
  • ALL_AUTHENTICATED grants require EXACT or DIRECT_MEMBERS_OF.
  • Principal-only administration operations (MANAGE_ACCESS and MANAGE_USER_ENROLLMENT) require a concrete principal audience and the ANY or EXACT selector.
  • An EXACT MANAGE_USER_ENROLLMENT grant must target a USER resource.
  • The server generates grant_id when 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 lacks MANAGE_ACCESS on 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/CreateAuthorizationGrant

GetAuthorizationGrant

Retrieves one direct authorization grant by UUID.

Type
Requestgoodmem.v1.GetAuthorizationGrantRequest
Responsegoodmem.v1.AuthorizationGrant

Auth: gRPC metadata authorization: Bearer <api-key>

Authorization Required: MANAGE_ACCESS on the grant's policy target.

Request Behavior:

  • grant_id must contain one UUID.
  • A live grant is eligible by default.
  • include_revoked=true also 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 lacks MANAGE_ACCESS on 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/GetAuthorizationGrant

ListAuthorizationGrants

Lists one stable page of grants attached to a policy target.

Type
Requestgoodmem.v1.ListAuthorizationGrantsRequest
Responsegoodmem.v1.ListAuthorizationGrantsResponse

Auth: gRPC metadata authorization: Bearer <api-key>

Authorization Required: MANAGE_ACCESS on assigned_resource.

Request Behavior:

  • assigned_resource is required and identifies exactly one policy boundary.
  • include_revoked=false lists live grants only; true includes historical rows.
  • max_results defaults to 50 and may not exceed 1,000.
  • next_token is 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 lacks MANAGE_ACCESS on 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/ListAuthorizationGrants

RevokeAuthorizationGrant

Permanently revokes one direct grant while preserving its audit history.

Type
Requestgoodmem.v1.RevokeAuthorizationGrantRequest
Responsegoodmem.v1.AuthorizationGrant

Auth: gRPC metadata authorization: Bearer <api-key>

Authorization Required: MANAGE_ACCESS on the grant's policy target.

Request Behavior:

  • grant_id must 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 lacks MANAGE_ACCESS on 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/RevokeAuthorizationGrant

AssignRole

Assigns one code-defined role to an active principal at instance or space scope.

Type
Requestgoodmem.v1.AssignRoleRequest
Responsegoodmem.v1.RoleAssignment

Auth: gRPC metadata authorization: Bearer <api-key>

Authorization Required: MANAGE_ACCESS on assigned_resource.

Request Behavior:

  • principal_id must identify an active HUMAN or SERVICE principal.
  • role must be a concrete assignable role compatible with the requested scope.
  • assigned_resource must identify the singleton instance or one memory space.
  • ROOT cannot be assigned through this API because it mirrors instance ownership.
  • The server generates role_assignment_id when 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 lacks MANAGE_ACCESS on 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/AssignRole

GetRoleAssignment

Retrieves one role assignment by UUID.

Type
Requestgoodmem.v1.GetRoleAssignmentRequest
Responsegoodmem.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_id must contain one UUID.
  • A live assignment is eligible by default.
  • include_revoked=true also 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 lacks MANAGE_ACCESS on 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/GetRoleAssignment

ListRoleAssignments

Lists one stable page of role assignments attached to an instance or space.

Type
Requestgoodmem.v1.ListRoleAssignmentsRequest
Responsegoodmem.v1.ListRoleAssignmentsResponse

Auth: gRPC metadata authorization: Bearer <api-key>

Authorization Required: MANAGE_ACCESS on assigned_resource.

Request Behavior:

  • assigned_resource must identify the singleton instance or one memory space.
  • include_revoked=false lists live assignments only; true includes historical rows.
  • max_results defaults to 50 and may not exceed 1,000.
  • next_token is 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 lacks MANAGE_ACCESS on 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/ListRoleAssignments

RevokeRoleAssignment

Permanently revokes one non-ROOT role assignment while preserving its audit history.

Type
Requestgoodmem.v1.RevokeRoleAssignmentRequest
Responsegoodmem.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_id must identify an existing current or historical assignment.
  • ROOT assignments 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 revoke ROOT.
  • NOT_FOUND: The role assignment or its assigned resource does not exist.
  • PERMISSION_DENIED: Caller lacks MANAGE_ACCESS on 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/RevokeRoleAssignment

Messages

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.

FieldTypeDescription
instancegoogle.protobuf.Empty
user_idbytes
service_identity_idbytes
space_idbytes
api_key_idbytes
embedder_idbytes
reranker_idbytes
llm_idbytes
memory_idbytes
extension_idbytes
retrieve_memory_log_policy_idbytes

AccessPolicyRule

One typed authorization descriptor.

FieldTypeDescription
operation...odmem.v1.AccessPolicyOperationRequired; UNSPECIFIED is rejected.
selector...oodmem.v1.AccessPolicySelectorRequired; UNSPECIFIED is rejected.
assigned_resourcegoodmem.v1.AccessPolicyTargetRequired exactly for EXACT and DIRECT_MEMBERS_OF; prohibited for ANY and OWN.

GrantAudience

Audience receiving one direct authorization grant; exactly one branch is required.

FieldTypeDescription
principal_idbytesActive HUMAN or SERVICE principal UUID.
all_authenticatedgoogle.protobuf.EmptyEvery successfully authenticated principal.

AuthorizationGrant

Current or historical direct authorization grant.

FieldTypeDescription
grant_idbytesOUTPUT_ONLY; stable grant UUID (16 bytes).
audiencegoodmem.v1.GrantAudienceOUTPUT_ONLY; principal or all-authenticated audience receiving the grant.
rulegoodmem.v1.AccessPolicyRuleOUTPUT_ONLY; immutable operation, selector, and assigned-resource descriptor.
created_atgoogle.protobuf.TimestampOUTPUT_ONLY; grant creation time.
created_by_idbytesOUTPUT_ONLY; exact actor UUID that created the grant.
revoked_atgoogle.protobuf.TimestampOUTPUT_ONLY; permanent revocation time, when revoked.
revoked_by_idbytesOUTPUT_ONLY; exact actor UUID that revoked the grant, when revoked.

RoleAssignment

Current or historical assignment of one code-defined role.

FieldTypeDescription
role_assignment_idbytesOUTPUT_ONLY; stable role-assignment UUID (16 bytes).
principal_idbytesOUTPUT_ONLY; UUID (16 bytes) of the principal receiving the role.
rolegoodmem.v1.BuiltInRoleOUTPUT_ONLY; code-defined role assigned to the principal.
assigned_resourcegoodmem.v1.AccessPolicyTargetOUTPUT_ONLY; instance or space at which the role is assigned.
assigned_atgoogle.protobuf.TimestampOUTPUT_ONLY; role-assignment creation time.
assigned_by_idbytesOUTPUT_ONLY; exact actor UUID that assigned the role.
revoked_atgoogle.protobuf.TimestampOUTPUT_ONLY; permanent revocation time, when revoked.
revoked_by_idbytesOUTPUT_ONLY; exact actor UUID that revoked the assignment, when revoked.

CreateAuthorizationGrantRequest

FieldTypeDescription
grant_idbytesOPTIONAL; client UUID. The server generates a UUIDv7 when absent or empty.
audiencegoodmem.v1.GrantAudienceREQUIRED; principal or all-authenticated audience receiving the grant.
rulegoodmem.v1.AccessPolicyRuleREQUIRED; operation, selector, and assigned-resource descriptor to grant.

GetAuthorizationGrantRequest

FieldTypeDescription
grant_idbytesREQUIRED; UUID (16 bytes) of the grant to read.
include_revokedboolOPTIONAL; defaults to false, which hides revoked grant history.

ListAuthorizationGrantsRequest

FieldTypeDescription
assigned_resourcegoodmem.v1.AccessPolicyTargetREQUIRED; policy boundary whose grants are listed.
include_revokedboolOPTIONAL; defaults to false, which lists live grants only.
max_resultsint32OPTIONAL; defaults to 50; maximum 1,000.
next_tokenstringOPTIONAL; opaque token returned by the preceding page.

ListAuthorizationGrantsResponse

FieldTypeDescription
grantsgoodmem.v1.AuthorizationGrantOUTPUT_ONLY; grants in stable creation order.
next_tokenstringOUTPUT_ONLY; opaque continuation token, absent after the final page.

RevokeAuthorizationGrantRequest

FieldTypeDescription
grant_idbytesREQUIRED; UUID (16 bytes) of the grant to revoke.

AssignRoleRequest

FieldTypeDescription
role_assignment_idbytesOPTIONAL; client UUID. The server generates a UUIDv7 when absent or empty.
principal_idbytesREQUIRED; UUID (16 bytes) of the active principal receiving the role.
rolegoodmem.v1.BuiltInRoleREQUIRED; code-defined role to assign; UNSPECIFIED and ROOT are rejected.
assigned_resourcegoodmem.v1.AccessPolicyTargetREQUIRED; INSTANCE or SPACE boundary at which the role is assigned.

GetRoleAssignmentRequest

FieldTypeDescription
role_assignment_idbytesREQUIRED; UUID (16 bytes) of the role assignment to read.
include_revokedboolOPTIONAL; defaults to false, which hides revoked assignment history.

ListRoleAssignmentsRequest

FieldTypeDescription
assigned_resourcegoodmem.v1.AccessPolicyTargetREQUIRED; INSTANCE or SPACE policy boundary whose assignments are listed.
include_revokedboolOPTIONAL; defaults to false, which lists live assignments only.
max_resultsint32OPTIONAL; defaults to 50; maximum 1,000.
next_tokenstringOPTIONAL; opaque token returned by the preceding page.

ListRoleAssignmentsResponse

FieldTypeDescription
role_assignmentsgoodmem.v1.RoleAssignmentOUTPUT_ONLY; role assignments in stable assignment order.
next_tokenstringOUTPUT_ONLY; opaque continuation token, absent after the final page.

RevokeRoleAssignmentRequest

FieldTypeDescription
role_assignment_idbytesREQUIRED; UUID (16 bytes) of the role assignment to revoke.

AuthorizationCheck

One concrete, advisory authorization check for the authenticated request principal.

FieldTypeDescription
operation...odmem.v1.AccessPolicyOperationREQUIRED; operation the caller proposes to perform. UNSPECIFIED is rejected.
targetgoodmem.v1.AccessPolicyTargetREQUIRED; existing authorization boundary or concrete resource relevant to the operation.

CheckAuthorizationsRequest

Request to evaluate a bounded set of concrete authorization checks.

FieldTypeDescription
checksgoodmem.v1.AuthorizationCheckREQUIRED; between 1 and 50 checks. Any malformed item rejects the complete request.

AuthorizationCheckResult

One positional result for a concrete authorization check.

FieldTypeDescription
allowedboolOUTPUT_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.

FieldTypeDescription
results...em.v1.AuthorizationCheckResultOUTPUT_ONLY; positional decisions corresponding one-for-one with request checks.

ListAuthorizationGrantsNextPageToken

Opaque grant-page cursor encoded and validated by the server.

FieldTypeDescription
requestor_idbytes
assigned_resourcegoodmem.v1.AccessPolicyTarget
include_revokedbool
last_created_atgoogle.protobuf.Timestamp
last_grant_idbytes

ListRoleAssignmentsNextPageToken

Opaque role-assignment page cursor encoded and validated by the server.

FieldTypeDescription
requestor_idbytes
assigned_resourcegoodmem.v1.AccessPolicyTarget
include_revokedbool
last_assigned_atgoogle.protobuf.Timestamp
last_role_assignment_idbytes

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.

NameValueDescription
ACCESS_POLICY_RESOURCE_KIND_UNSPECIFIED0
ACCESS_POLICY_RESOURCE_KIND_INSTANCE1
ACCESS_POLICY_RESOURCE_KIND_USER2
ACCESS_POLICY_RESOURCE_KIND_SERVICE_IDENTITY3
ACCESS_POLICY_RESOURCE_KIND_SPACE4
ACCESS_POLICY_RESOURCE_KIND_API_KEY5
ACCESS_POLICY_RESOURCE_KIND_EMBEDDER6
ACCESS_POLICY_RESOURCE_KIND_RERANKER7
ACCESS_POLICY_RESOURCE_KIND_LLM8
ACCESS_POLICY_RESOURCE_KIND_MEMORY9
ACCESS_POLICY_RESOURCE_KIND_EXTENSION10
ACCESS_POLICY_RESOURCE_KIND_RETRIEVE_MEMORY_LOG_POLICY11

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.

NameValueDescription
ACCESS_POLICY_OPERATION_UNSPECIFIED0
ACCESS_POLICY_OPERATION_CREATE_USER101
ACCESS_POLICY_OPERATION_READ_USER102
ACCESS_POLICY_OPERATION_UPDATE_USER103
ACCESS_POLICY_OPERATION_DELETE_USER104
ACCESS_POLICY_OPERATION_LIST_USER105
ACCESS_POLICY_OPERATION_MANAGE_USER_ENROLLMENT106
ACCESS_POLICY_OPERATION_CREATE_SERVICE_IDENTITY201
ACCESS_POLICY_OPERATION_READ_SERVICE_IDENTITY202
ACCESS_POLICY_OPERATION_UPDATE_SERVICE_IDENTITY203
ACCESS_POLICY_OPERATION_DELETE_SERVICE_IDENTITY204
ACCESS_POLICY_OPERATION_LIST_SERVICE_IDENTITY205
ACCESS_POLICY_OPERATION_CREATE_SPACE301
ACCESS_POLICY_OPERATION_READ_SPACE302
ACCESS_POLICY_OPERATION_UPDATE_SPACE303
ACCESS_POLICY_OPERATION_DELETE_SPACE304
ACCESS_POLICY_OPERATION_LIST_SPACE305
ACCESS_POLICY_OPERATION_CREATE_API_KEY401
ACCESS_POLICY_OPERATION_READ_API_KEY402
ACCESS_POLICY_OPERATION_UPDATE_API_KEY403
ACCESS_POLICY_OPERATION_DELETE_API_KEY404
ACCESS_POLICY_OPERATION_LIST_API_KEY405
ACCESS_POLICY_OPERATION_CREATE_EMBEDDER501
ACCESS_POLICY_OPERATION_READ_EMBEDDER502
ACCESS_POLICY_OPERATION_UPDATE_EMBEDDER503
ACCESS_POLICY_OPERATION_DELETE_EMBEDDER504
ACCESS_POLICY_OPERATION_LIST_EMBEDDER505
ACCESS_POLICY_OPERATION_PING_EMBEDDER506
ACCESS_POLICY_OPERATION_EXECUTE_EMBEDDER507
ACCESS_POLICY_OPERATION_READ_EMBEDDER_CREDENTIALS508
ACCESS_POLICY_OPERATION_CREATE_RERANKER601
ACCESS_POLICY_OPERATION_READ_RERANKER602
ACCESS_POLICY_OPERATION_UPDATE_RERANKER603
ACCESS_POLICY_OPERATION_DELETE_RERANKER604
ACCESS_POLICY_OPERATION_LIST_RERANKER605
ACCESS_POLICY_OPERATION_PING_RERANKER606
ACCESS_POLICY_OPERATION_EXECUTE_RERANKER607
ACCESS_POLICY_OPERATION_READ_RERANKER_CREDENTIALS608
ACCESS_POLICY_OPERATION_CREATE_LLM701
ACCESS_POLICY_OPERATION_READ_LLM702
ACCESS_POLICY_OPERATION_UPDATE_LLM703
ACCESS_POLICY_OPERATION_DELETE_LLM704
ACCESS_POLICY_OPERATION_LIST_LLM705
ACCESS_POLICY_OPERATION_PING_LLM706
ACCESS_POLICY_OPERATION_EXECUTE_LLM707
ACCESS_POLICY_OPERATION_READ_LLM_CREDENTIALS708
ACCESS_POLICY_OPERATION_PROXY_INFERENCE_TARGET801
ACCESS_POLICY_OPERATION_OCR_DOCUMENT802
ACCESS_POLICY_OPERATION_CREATE_MEMORY901
ACCESS_POLICY_OPERATION_READ_MEMORY902
ACCESS_POLICY_OPERATION_DELETE_MEMORY903
ACCESS_POLICY_OPERATION_LIST_MEMORY904
ACCESS_POLICY_OPERATION_CREATE_EXTENSION1001
ACCESS_POLICY_OPERATION_READ_EXTENSION1002
ACCESS_POLICY_OPERATION_UPDATE_EXTENSION1003
ACCESS_POLICY_OPERATION_DELETE_EXTENSION1004
ACCESS_POLICY_OPERATION_LIST_EXTENSION1005
ACCESS_POLICY_OPERATION_DOWNLOAD_EXTENSION1006
ACCESS_POLICY_OPERATION_READ_INSTANCE1101
ACCESS_POLICY_OPERATION_TRANSFER_INSTANCE_OWNERSHIP1102
ACCESS_POLICY_OPERATION_TRANSFER_RESOURCE_OWNERSHIP1103
ACCESS_POLICY_OPERATION_RELOAD_LICENSE1401
ACCESS_POLICY_OPERATION_DRAIN_SERVER1402
ACCESS_POLICY_OPERATION_PURGE_BACKGROUND_JOBS1403
ACCESS_POLICY_OPERATION_CREATE_RETRIEVE_MEMORY_LOG_POLICY1501
ACCESS_POLICY_OPERATION_READ_RETRIEVE_MEMORY_LOG_POLICY1502
ACCESS_POLICY_OPERATION_LIST_RETRIEVE_MEMORY_LOG_POLICY1503
ACCESS_POLICY_OPERATION_DELETE_RETRIEVE_MEMORY_LOG_POLICY1504
ACCESS_POLICY_OPERATION_MANAGE_ACCESS1601

AccessPolicySelector

Resource-selection semantics for one authorization operation.

NameValueDescription
ACCESS_POLICY_SELECTOR_UNSPECIFIED0
ACCESS_POLICY_SELECTOR_ANY1Every operation-compatible resource.
ACCESS_POLICY_SELECTOR_OWN2Resources effectively owned by the subject.
ACCESS_POLICY_SELECTOR_EXACT3Exactly the assigned resource.
ACCESS_POLICY_SELECTOR_DIRECT_MEMBERS_OF4Direct members of the assigned container.

BuiltInRole

Code-defined roles assignable through the access-policy service.

NameValueDescription
BUILT_IN_ROLE_UNSPECIFIED0
BUILT_IN_ROLE_ROOT1Ownership mirror; never assigned through this API.
BUILT_IN_ROLE_ADMIN2Instance administrator.
BUILT_IN_ROLE_USER3Standard instance user.
BUILT_IN_ROLE_SPACE_VIEWER4Reads one space and its memories.
BUILT_IN_ROLE_SPACE_CONTRIBUTOR5Reads and adds memories in one space.
BUILT_IN_ROLE_SPACE_CONTENT_MANAGER6Reads, adds, and deletes space content.
BUILT_IN_ROLE_SPACE_ADMIN7Administers one space and its policy.