spicedb-rust 0.3.4

A client for spicedb
Documentation
syntax = "proto3";
package authzed.api.v0;

option go_package = "github.com/authzed/authzed-go/proto/authzed/api/v0";
option java_package = "com.authzed.api.v0";

import "authzed/api/v0/core.proto";

service DeveloperService {
  rpc EditCheck(EditCheckRequest) returns (EditCheckResponse) {}
  rpc Validate(ValidateRequest) returns (ValidateResponse) {}
  rpc Share(ShareRequest) returns (ShareResponse) {}
  rpc LookupShared(LookupShareRequest) returns (LookupShareResponse) {}
  rpc UpgradeSchema(UpgradeSchemaRequest) returns (UpgradeSchemaResponse) {}
  rpc FormatSchema(FormatSchemaRequest) returns (FormatSchemaResponse) {}
}

message FormatSchemaRequest {
  string schema = 1;
}

message FormatSchemaResponse {
  DeveloperError error = 1;
  string formatted_schema = 2;
}

message UpgradeSchemaRequest {
  repeated string namespace_configs = 1;
}

message UpgradeSchemaResponse {
  DeveloperError error = 1;
  string upgraded_schema = 2;
}

message ShareRequest {
  string schema = 1;
  string relationships_yaml = 2;
  string validation_yaml = 3;
  string assertions_yaml = 4;
}

message ShareResponse {
  string share_reference = 1;
}

message LookupShareRequest {
  string share_reference = 1;
}

message LookupShareResponse {
  enum LookupStatus {
    UNKNOWN_REFERENCE = 0;
    FAILED_TO_LOOKUP = 1;
    VALID_REFERENCE = 2;
    UPGRADED_REFERENCE = 3;
  }

  LookupStatus status = 1;
  string schema = 2;
  string relationships_yaml = 3;
  string validation_yaml = 4;
  string assertions_yaml = 5;
}

message RequestContext {
  string schema = 1;
  repeated RelationTuple relationships = 2;
  reserved 3; // Was legacy_ns_configs
}

message EditCheckRequest {
  RequestContext context = 1;
  repeated RelationTuple check_relationships = 2;
}

message EditCheckResult {
  RelationTuple relationship = 1;
  bool is_member = 2;
  DeveloperError error = 3;
}

message EditCheckResponse {
  repeated DeveloperError request_errors = 1;
  repeated EditCheckResult check_results = 2;
}

message ValidateRequest {
  RequestContext context = 1;
  string validation_yaml = 3;
  bool update_validation_yaml = 4;
  string assertions_yaml = 5;
}

message ValidateResponse {
  repeated DeveloperError request_errors = 1;
  repeated DeveloperError validation_errors = 2;
  string updated_validation_yaml = 3;
}

message DeveloperError {
  enum Source {
    UNKNOWN_SOURCE = 0;
    SCHEMA = 1;
    RELATIONSHIP = 2;
    VALIDATION_YAML = 3;
    CHECK_WATCH = 4;
    ASSERTION = 5;
  }

  enum ErrorKind {
    UNKNOWN_KIND = 0;
    PARSE_ERROR = 1;
    SCHEMA_ISSUE = 2;
    DUPLICATE_RELATIONSHIP = 3;
    MISSING_EXPECTED_RELATIONSHIP = 4;
    EXTRA_RELATIONSHIP_FOUND = 5;
    UNKNOWN_OBJECT_TYPE = 6;
    UNKNOWN_RELATION = 7;
    MAXIMUM_RECURSION = 8;
    ASSERTION_FAILED = 9;
  }

  string message = 1;
  uint32 line = 2;
  uint32 column = 3;
  Source source = 4;
  ErrorKind kind = 5;
  
  repeated string path = 6;

  // context holds the context for the error. For schema issues, this will be the
  // name of the object type. For relationship issues, the full relationship string.
  string context = 7;
}