From 8ca3433b2a4a82723e00e64b1e5aff0b1bed95b3 Mon Sep 17 00:00:00 2001 From: benj Date: Fri, 30 Dec 2022 15:57:36 -0800 Subject: impl authZ write and check (depends on spicedb for now) --- .../secd/proto/authzed/api/v1/schema_service.proto | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 crates/secd/proto/authzed/api/v1/schema_service.proto (limited to 'crates/secd/proto/authzed/api/v1/schema_service.proto') diff --git a/crates/secd/proto/authzed/api/v1/schema_service.proto b/crates/secd/proto/authzed/api/v1/schema_service.proto new file mode 100644 index 0000000..ed60a0d --- /dev/null +++ b/crates/secd/proto/authzed/api/v1/schema_service.proto @@ -0,0 +1,53 @@ +syntax = "proto3"; +package authzed.api.v1; + +option go_package = "github.com/authzed/authzed-go/proto/authzed/api/v1"; +option java_package = "com.authzed.api.v1"; + +import "google/api/annotations.proto"; +import "validate/validate.proto"; + +// SchemaService implements operations on a Permissions System's Schema. +service SchemaService { + // Read returns the current Object Definitions for a Permissions System. + // + // Errors include: + // - INVALID_ARGUMENT: a provided value has failed to semantically validate + // - NOT_FOUND: no schema has been defined + rpc ReadSchema(ReadSchemaRequest) returns (ReadSchemaResponse) { + option (google.api.http) = { + post: "/v1/schema/read" + body: "*" + }; + } + + // Write overwrites the current Object Definitions for a Permissions System. + rpc WriteSchema(WriteSchemaRequest) returns (WriteSchemaResponse) { + option (google.api.http) = { + post: "/v1/schema/write" + body: "*" + }; + } +} + +// ReadSchemaRequest returns the schema from the database. +message ReadSchemaRequest {} + +// ReadSchemaResponse is the resulting data after having read the Object +// Definitions from a Schema. +message ReadSchemaResponse { + // schema_text is the textual form of the current schema in the system + string schema_text = 1; +} + +// WriteSchemaRequest is the required data used to "upsert" the Schema of a +// Permissions System. +message WriteSchemaRequest { + // The Schema containing one or more Object Definitions that will be written + // to the Permissions System. + string schema = 1 [ (validate.rules).string.max_bytes = 262144 ]; // 256KiB +} + +// WriteSchemaResponse is the resulting data after having written a Schema to +// a Permissions System. +message WriteSchemaResponse {} -- cgit v1.2.3