2023-06-05 22:17:22 +02:00
|
|
|
syntax = "proto3";
|
|
|
|
package eu.zettoit.rebacs;
|
|
|
|
|
2023-08-27 22:10:16 +02:00
|
|
|
service RebacService {
|
|
|
|
rpc Grant(GrantReq) returns (GrantRes);
|
|
|
|
rpc Revoke(RevokeReq) returns (RevokeRes);
|
|
|
|
rpc Exists(ExistsReq) returns (ExistsRes);
|
|
|
|
rpc IsPermitted(IsPermittedReq) returns (IsPermittedRes);
|
2023-09-06 22:41:42 +02:00
|
|
|
rpc Expand(ExpandReq) returns (ExpandRes);
|
2023-06-05 22:17:22 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2023-08-27 22:10:16 +02:00
|
|
|
message GrantReq{
|
2023-09-06 22:41:42 +02:00
|
|
|
oneof src {
|
|
|
|
Object src_obj = 1;
|
|
|
|
Set src_set = 2;
|
|
|
|
}
|
|
|
|
Set dst = 3;
|
2023-06-05 22:17:22 +02:00
|
|
|
}
|
2023-08-27 22:10:16 +02:00
|
|
|
message GrantRes{}
|
2023-06-05 22:17:22 +02:00
|
|
|
|
2023-08-27 22:10:16 +02:00
|
|
|
message RevokeReq{
|
2023-09-06 22:41:42 +02:00
|
|
|
oneof src {
|
|
|
|
Object src_obj = 1;
|
|
|
|
Set src_set = 2;
|
|
|
|
}
|
|
|
|
Set dst = 3;
|
2023-06-05 22:17:22 +02:00
|
|
|
}
|
2023-08-27 22:10:16 +02:00
|
|
|
message RevokeRes{}
|
2023-06-05 22:17:22 +02:00
|
|
|
|
2023-08-27 22:10:16 +02:00
|
|
|
message ExistsReq{
|
2023-09-06 22:41:42 +02:00
|
|
|
oneof src {
|
|
|
|
Object src_obj = 1;
|
|
|
|
Set src_set = 2;
|
|
|
|
}
|
|
|
|
Set dst = 3;
|
2023-06-05 22:17:22 +02:00
|
|
|
}
|
2023-08-27 22:10:16 +02:00
|
|
|
message ExistsRes{
|
2023-06-05 22:17:22 +02:00
|
|
|
bool exists = 1;
|
|
|
|
}
|
|
|
|
|
2023-08-27 22:10:16 +02:00
|
|
|
message IsPermittedReq{
|
2023-09-06 22:41:42 +02:00
|
|
|
oneof src {
|
|
|
|
Object src_obj = 1;
|
|
|
|
Set src_set = 2;
|
|
|
|
}
|
|
|
|
Set dst = 3;
|
2023-06-05 22:17:22 +02:00
|
|
|
}
|
2023-08-27 22:10:16 +02:00
|
|
|
message IsPermittedRes{
|
|
|
|
bool permitted = 1;
|
2023-06-05 22:17:22 +02:00
|
|
|
}
|
|
|
|
|
2023-09-06 22:41:42 +02:00
|
|
|
message ExpandReq {
|
|
|
|
Set dst = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ExpandRes {
|
|
|
|
repeated ExpandResItem expanded = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message ExpandResItem {
|
|
|
|
Object src = 1;
|
|
|
|
repeated Set path = 2;
|
|
|
|
}
|
|
|
|
|
2023-06-05 22:17:22 +02:00
|
|
|
|
|
|
|
message Object{
|
|
|
|
string namespace = 1;
|
|
|
|
string id = 2;
|
2023-09-06 22:41:42 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
message Set{
|
|
|
|
string namespace = 1;
|
|
|
|
string id = 2;
|
|
|
|
string relation = 3;
|
2023-06-05 22:17:22 +02:00
|
|
|
}
|