diff --git a/def/protobuf/.gitignore b/def/protobuf/.gitignore new file mode 100644 index 000000000..60e2834eb --- /dev/null +++ b/def/protobuf/.gitignore @@ -0,0 +1,14 @@ +.DS_Store +node_modules +dist +*.log + +# Editor directories and files +.idea +.vscode +*.iml +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* diff --git a/def/protobuf/dummy.go b/def/protobuf/dummy.go new file mode 100644 index 000000000..79a4b6f17 --- /dev/null +++ b/def/protobuf/dummy.go @@ -0,0 +1,3 @@ +package corteza_protobuf + +// Dummy file so we can import it in go project diff --git a/def/protobuf/package.json b/def/protobuf/package.json new file mode 100644 index 000000000..4043a9685 --- /dev/null +++ b/def/protobuf/package.json @@ -0,0 +1,6 @@ +{ + "name": "@cortezaproject/corteza-protobuf", + "version": "2020.3.0-rc.1", + "private": true, + "description": "Corteza Protobuf dummy package" +} diff --git a/def/protobuf/service-corredor.proto b/def/protobuf/service-corredor.proto new file mode 100644 index 000000000..151640c52 --- /dev/null +++ b/def/protobuf/service-corredor.proto @@ -0,0 +1,150 @@ +syntax = "proto3"; + +package corredor; + +// Executing and listing server-scripts +service ServerScripts { + // Executes server script + rpc Exec(ExecRequest) returns (ExecResponse); + + // List of server scripts + rpc List(ServerScriptListRequest) returns (ServerScriptListResponse); +} + +// Executing and listing client-scripts +service ClientScripts { + // Bundles + rpc Bundle (BundleRequest) returns (BundleResponse); + + // List of client scripts + rpc List(ClientScriptListRequest) returns (ClientScriptListResponse); +} + +service Storage { + // rpc List(path) returns (list of dirs/files); + // rpc Store(path, content) returns (bool); + // rpc Delete(path, content) returns (bool); + // rpc Get(path) returns (file); +} + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +message ExecRequest { + string name = 1; + map args = 2; +} + +message ExecResponse { + map result = 2; +} + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +message ServerScriptListRequest { + // query by name, label, description + string query = 1; + + // filter by resource - exact match + string resourceType = 2; + + // filter by events - script must contain all specified events + repeated string eventTypes = 3; +} + +message ServerScriptListResponse { + repeated ServerScript scripts = 1; +} + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +message ClientScriptListRequest { + // query by name, label, description + string query = 1; + + // filter by resource - exact match + string resourceType = 2; + + // filter by events - script must contain all specified events + repeated string eventTypes = 3; + + // filter by bundle - exact match + string bundle = 4; +} + +message ClientScriptListResponse { + repeated ClientScript scripts = 1; +} + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +message BundleRequest { + string name = 1; +} + +message BundleResponse { + repeated Bundle bundles = 1; +} + +// ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- + +message ServerScript { + string name = 1; + string label = 2; + string description = 3; + string updatedAt = 12; + Security security = 13; + repeated Trigger triggers = 14; + Iterator iterator = 11; + repeated string errors = 15; +} + +message ClientScript { + string name = 1; + string label = 2; + string description = 3; + string bundle = 4; + string type = 6; + string updatedAt = 12; + Security security = 13; + repeated Trigger triggers = 14; + repeated string errors = 15; +} + +message Security { + string runAs = 1; + repeated string deny = 2; + repeated string allow = 3; +} + +message Trigger { + repeated string eventTypes = 1; + repeated string resourceTypes = 2; + repeated TUIProp uiProps = 14; + repeated TConstraint constraints = 15; +} + +message Iterator { + string eventType = 1; + string resourceType = 2; + repeated string deferred = 3; + map filter = 4; + string action = 5; + repeated TUIProp uiProps = 14; +} + +message TConstraint { + string name = 1; + string op = 2; + repeated string value = 3; +} + +message TUIProp { + string name = 1; + string value = 2; +} + +message Bundle { + string name = 1; + string type = 2; + string code = 3; +} diff --git a/def/protobuf/system/dummy.go b/def/protobuf/system/dummy.go new file mode 100644 index 000000000..c4b87fd6b --- /dev/null +++ b/def/protobuf/system/dummy.go @@ -0,0 +1,3 @@ +package system + +// Dummy file so we can import it in go project diff --git a/def/protobuf/system/role.proto b/def/protobuf/system/role.proto new file mode 100644 index 000000000..5799f995c --- /dev/null +++ b/def/protobuf/system/role.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; + +package system; +option go_package = "proto"; + +service Roles { + rpc Find(FindRoleRequest) returns (FindRoleResponse); +} + +message FindRoleRequest {} + +message FindRoleResponse { + repeated Role roles = 1; +} + +message Role { + uint64 ID = 1; + string handle = 2; + string name = 3; +} + diff --git a/def/protobuf/system/user.proto b/def/protobuf/system/user.proto new file mode 100644 index 000000000..06e57a882 --- /dev/null +++ b/def/protobuf/system/user.proto @@ -0,0 +1,34 @@ +syntax = "proto3"; + +package system; +option go_package = "proto"; + +service Users { + rpc MakeJWT(MakeJWTUserRequest) returns (MakeJWTUserResponse); + rpc FindByID(FindByIDUserRequest) returns (FindByIDUserResponse); +} + +message MakeJWTUserRequest { + uint64 userID = 1; +} + +message MakeJWTUserResponse { + string JWT = 1; +} + +message FindByIDUserRequest { + uint64 userID = 1; +} + +message FindByIDUserResponse { + User user = 1; +} + +message User { + uint64 ID = 1; + string email = 2; + string handle = 3; + string name = 4; + string kind = 5; +} +