Esc

    gRPC API Reference

    Protocol Buffers service definition for the InferaDB Engine.

    The Engine exposes a gRPC API on port 8081 (default). Typically 20-30% faster than REST.

    Service Definition

    service AuthorizationService {
        rpc Evaluate(stream EvaluateRequest) returns (stream EvaluateResponse);
        rpc Expand(ExpandRequest) returns (stream ExpandResponse);
        rpc WriteRelationships(stream WriteRequest) returns (WriteResponse);
        rpc DeleteRelationships(stream DeleteRequest) returns (DeleteResponse);
        rpc ListResources(ListResourcesRequest) returns (stream ListResourcesResponse);
        rpc ListRelationships(ListRelationshipsRequest) returns (stream ListRelationshipsResponse);
        rpc ListSubjects(ListSubjectsRequest) returns (stream ListSubjectsResponse);
        rpc Watch(WatchRequest) returns (stream WatchResponse);
        rpc Simulate(SimulateRequest) returns (SimulateResponse);
        rpc Health(HealthRequest) returns (HealthResponse);
    }
    

    The proto definitions are at engine/proto/inferadb/authorization/v1/authorization.proto.

    RPC Methods

    RPC Streaming Description
    Evaluate Bidirectional Permission check (batch via streaming)
    Expand Server Expand relation to userset tree
    WriteRelationships Client Write relationships (batch)
    DeleteRelationships Client Delete by exact match or filter
    ListResources Server List accessible resources (with cursor pagination, wildcard patterns)
    ListRelationships Server List relationships with filters
    ListSubjects Server List subjects with relation to resource
    Watch Server Real-time relationship change events
    Simulate Unary What-if testing with ephemeral relationships
    Health Unary Health check

    Connection

    # Using grpcurl
    grpcurl -plaintext localhost:8081 list
    grpcurl -plaintext -d '{"resource":"document:readme","permission":"can_view","subject":"user:alice"}' \
      localhost:8081 inferadb.authorization.v1.AuthorizationService/Evaluate
    

    Authentication

    Pass the JWT as a metadata header:

    authorization: Bearer <token>
    

    Error Codes

    gRPC Status Meaning
    OK Success
    INVALID_ARGUMENT Malformed request
    UNAUTHENTICATED Missing or invalid credentials
    NOT_FOUND Resource not found
    RESOURCE_EXHAUSTED Rate limited
    INTERNAL Server error