From a2e45b5e9a34dee4bf3ac42678c0c365eadefe71 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 19:16:41 -0700 Subject: [PATCH 01/11] outline --- mapfixes.proto | 9 +++++++++ operations.proto | 1 + scripts.proto | 2 ++ submissions.proto | 9 +++++++++ 4 files changed, 21 insertions(+) create mode 100644 mapfixes.proto create mode 100644 operations.proto create mode 100644 scripts.proto create mode 100644 submissions.proto diff --git a/mapfixes.proto b/mapfixes.proto new file mode 100644 index 0000000..794f0f7 --- /dev/null +++ b/mapfixes.proto @@ -0,0 +1,9 @@ +// /mapfixes: +// /mapfixes/{MapfixID}/validated-model: +// /mapfixes/{MapfixID}/error: +// /mapfixes/{MapfixID}/checklist: +// /mapfixes/{MapfixID}/status/validator-submitted: +// /mapfixes/{MapfixID}/status/validator-request-changes: +// /mapfixes/{MapfixID}/status/validator-validated: +// /mapfixes/{MapfixID}/status/validator-failed: +// /mapfixes/{MapfixID}/status/validator-uploaded: diff --git a/operations.proto b/operations.proto new file mode 100644 index 0000000..5d48075 --- /dev/null +++ b/operations.proto @@ -0,0 +1 @@ +// /operations/{OperationID}/status/operation-failed: diff --git a/scripts.proto b/scripts.proto new file mode 100644 index 0000000..398431c --- /dev/null +++ b/scripts.proto @@ -0,0 +1,2 @@ +// /script-policy +// /scripts diff --git a/submissions.proto b/submissions.proto new file mode 100644 index 0000000..e2b1a00 --- /dev/null +++ b/submissions.proto @@ -0,0 +1,9 @@ +// /submissions: +// /submissions/{SubmissionID}/validated-model: +// /submissions/{SubmissionID}/error: +// /submissions/{SubmissionID}/checklist: +// /submissions/{SubmissionID}/status/validator-submitted: +// /submissions/{SubmissionID}/status/validator-request-changes: +// /submissions/{SubmissionID}/status/validator-validated: +// /submissions/{SubmissionID}/status/validator-failed: +// /submissions/{SubmissionID}/status/validator-uploaded: -- 2.49.1 From 60845ba8e1f0b2a1eec1d716f5694bece68d2ac1 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 19:58:16 -0700 Subject: [PATCH 02/11] dedicated validator endpoints --- mapfixes.proto | 9 ------- operations.proto | 1 - submissions.proto | 9 ------- validator.proto | 61 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 61 insertions(+), 19 deletions(-) delete mode 100644 mapfixes.proto delete mode 100644 operations.proto delete mode 100644 submissions.proto create mode 100644 validator.proto diff --git a/mapfixes.proto b/mapfixes.proto deleted file mode 100644 index 794f0f7..0000000 --- a/mapfixes.proto +++ /dev/null @@ -1,9 +0,0 @@ -// /mapfixes: -// /mapfixes/{MapfixID}/validated-model: -// /mapfixes/{MapfixID}/error: -// /mapfixes/{MapfixID}/checklist: -// /mapfixes/{MapfixID}/status/validator-submitted: -// /mapfixes/{MapfixID}/status/validator-request-changes: -// /mapfixes/{MapfixID}/status/validator-validated: -// /mapfixes/{MapfixID}/status/validator-failed: -// /mapfixes/{MapfixID}/status/validator-uploaded: diff --git a/operations.proto b/operations.proto deleted file mode 100644 index 5d48075..0000000 --- a/operations.proto +++ /dev/null @@ -1 +0,0 @@ -// /operations/{OperationID}/status/operation-failed: diff --git a/submissions.proto b/submissions.proto deleted file mode 100644 index e2b1a00..0000000 --- a/submissions.proto +++ /dev/null @@ -1,9 +0,0 @@ -// /submissions: -// /submissions/{SubmissionID}/validated-model: -// /submissions/{SubmissionID}/error: -// /submissions/{SubmissionID}/checklist: -// /submissions/{SubmissionID}/status/validator-submitted: -// /submissions/{SubmissionID}/status/validator-request-changes: -// /submissions/{SubmissionID}/status/validator-validated: -// /submissions/{SubmissionID}/status/validator-failed: -// /submissions/{SubmissionID}/status/validator-uploaded: diff --git a/validator.proto b/validator.proto new file mode 100644 index 0000000..6242555 --- /dev/null +++ b/validator.proto @@ -0,0 +1,61 @@ +syntax = "proto3"; + +option go_package = "git.itzana.me/strafesnet/go-grpc/validator"; + +package validator; + +service ValidatorMapfixService { + rpc Create(MapfixCreate) returns (NullResponse); + rpc CreateAuditError(AuditErrorRequest) returns (NullResponse); + rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse); + rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse); + rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse); + rpc SetStatusRequestChanges(IdMessage) returns (NullResponse); + rpc SetStatusValidated(IdMessage) returns (NullResponse); + rpc SetStatusFailed(IdMessage) returns (NullResponse); + rpc SetStatusUploaded(IdMessage) returns (NullResponse); +} + +message IdMessage { uint64 ID = 1; } + +message MapfixCreate { + uint32 OperationID = 1; + uint32 GameID = 2; + uint64 AssetOwner = 3; + uint64 AssetID = 4; + uint64 AssetVersion = 5; + uint64 TargetAssetID = 6; + string DisplayName = 7; + string Creator = 8; + string Description = 9; +} + +message AuditErrorRequest { + uint64 MapfixID = 1; + string ErrorMessage = 2; +} +message Check { + string Name = 1; + string Summary = 2; + bool Passed = 3; +} +message AuditChecklistRequest { + uint64 MapfixID = 1; + repeated Check CheckList = 2; +} + +message ValidatedModelRequest { + uint64 MapfixID = 1; + uint64 ValidatedModelID = 2; + uint64 ValidatedModelVersion = 3; +} + +message SubmittedRequest { + uint64 MapfixID = 1; + uint64 ModelVersion = 2; + string DisplayName = 3; + string Creator = 4; + uint32 GameID = 5; +} + +message NullResponse {} -- 2.49.1 From cadfb1579d9df854e55d0ebe2ccd8ffbd3db7401 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 20:03:55 -0700 Subject: [PATCH 03/11] validator: submissions --- validator.proto | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/validator.proto b/validator.proto index 6242555..1508b78 100644 --- a/validator.proto +++ b/validator.proto @@ -16,6 +16,18 @@ service ValidatorMapfixService { rpc SetStatusUploaded(IdMessage) returns (NullResponse); } +service ValidatorSubmissionService { + rpc Create(SubmissionCreate) returns (NullResponse); + rpc CreateAuditError(AuditErrorRequest) returns (NullResponse); + rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse); + rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse); + rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse); + rpc SetStatusRequestChanges(IdMessage) returns (NullResponse); + rpc SetStatusValidated(IdMessage) returns (NullResponse); + rpc SetStatusFailed(IdMessage) returns (NullResponse); + rpc SetStatusUploaded(IdMessage) returns (NullResponse); +} + message IdMessage { uint64 ID = 1; } message MapfixCreate { @@ -29,6 +41,17 @@ message MapfixCreate { string Creator = 8; string Description = 9; } +message SubmissionCreate { + uint32 OperationID = 1; + uint32 GameID = 2; + uint32 Status = 3; + uint32 Roles = 4; + uint64 AssetOwner = 5; + uint64 AssetID = 6; + uint64 AssetVersion = 7; + string DisplayName = 8; + string Creator = 9; +} message AuditErrorRequest { uint64 MapfixID = 1; -- 2.49.1 From dde48254202755b7fb08522b0fb43b27f77fafc0 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 20:04:06 -0700 Subject: [PATCH 04/11] validator: operations --- validator.proto | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/validator.proto b/validator.proto index 1508b78..4302e43 100644 --- a/validator.proto +++ b/validator.proto @@ -28,6 +28,15 @@ service ValidatorSubmissionService { rpc SetStatusUploaded(IdMessage) returns (NullResponse); } +service ValidatorOperationService { + rpc Fail(OperationFailRequest) returns (NullResponse); +} + +message OperationFailRequest { + uint32 OperationID = 1; + string StatusMessage = 2; +} + message IdMessage { uint64 ID = 1; } message MapfixCreate { -- 2.49.1 From c9709874abc111c261ff0747daf38de7c3015a1c Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 20:12:35 -0700 Subject: [PATCH 05/11] validator: type safety --- validator.proto | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/validator.proto b/validator.proto index 4302e43..f82cff5 100644 --- a/validator.proto +++ b/validator.proto @@ -10,10 +10,10 @@ service ValidatorMapfixService { rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse); rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse); rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse); - rpc SetStatusRequestChanges(IdMessage) returns (NullResponse); - rpc SetStatusValidated(IdMessage) returns (NullResponse); - rpc SetStatusFailed(IdMessage) returns (NullResponse); - rpc SetStatusUploaded(IdMessage) returns (NullResponse); + rpc SetStatusRequestChanges(MapFixID) returns (NullResponse); + rpc SetStatusValidated(MapFixID) returns (NullResponse); + rpc SetStatusFailed(MapFixID) returns (NullResponse); + rpc SetStatusUploaded(MapFixID) returns (NullResponse); } service ValidatorSubmissionService { @@ -22,10 +22,10 @@ service ValidatorSubmissionService { rpc CreateAuditChecklist(AuditChecklistRequest) returns (NullResponse); rpc SetValidatedModel(ValidatedModelRequest) returns (NullResponse); rpc SetStatusSubmitted(SubmittedRequest) returns (NullResponse); - rpc SetStatusRequestChanges(IdMessage) returns (NullResponse); - rpc SetStatusValidated(IdMessage) returns (NullResponse); - rpc SetStatusFailed(IdMessage) returns (NullResponse); - rpc SetStatusUploaded(IdMessage) returns (NullResponse); + rpc SetStatusRequestChanges(SubmissionID) returns (NullResponse); + rpc SetStatusValidated(SubmissionID) returns (NullResponse); + rpc SetStatusFailed(SubmissionID) returns (NullResponse); + rpc SetStatusUploaded(SubmissionID) returns (NullResponse); } service ValidatorOperationService { @@ -37,7 +37,7 @@ message OperationFailRequest { string StatusMessage = 2; } -message IdMessage { uint64 ID = 1; } +message MapFixID { uint64 ID = 1; } message MapfixCreate { uint32 OperationID = 1; @@ -50,6 +50,9 @@ message MapfixCreate { string Creator = 8; string Description = 9; } + +message SubmissionID { uint64 ID = 1; } + message SubmissionCreate { uint32 OperationID = 1; uint32 GameID = 2; -- 2.49.1 From f174d921e7589dcd7e81052c80f8f171d6f477c1 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 20:30:36 -0700 Subject: [PATCH 06/11] validator: move operations --- validator.proto | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/validator.proto b/validator.proto index f82cff5..6a16ff1 100644 --- a/validator.proto +++ b/validator.proto @@ -28,15 +28,6 @@ service ValidatorSubmissionService { rpc SetStatusUploaded(SubmissionID) returns (NullResponse); } -service ValidatorOperationService { - rpc Fail(OperationFailRequest) returns (NullResponse); -} - -message OperationFailRequest { - uint32 OperationID = 1; - string StatusMessage = 2; -} - message MapFixID { uint64 ID = 1; } message MapfixCreate { @@ -94,3 +85,13 @@ message SubmittedRequest { } message NullResponse {} + +// Operations +service ValidatorOperationService { + rpc Fail(OperationFailRequest) returns (NullResponse); +} + +message OperationFailRequest { + uint32 OperationID = 1; + string StatusMessage = 2; +} -- 2.49.1 From cea8134c26ed6450c3e6766d487b19619f5cf7b3 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 20:30:47 -0700 Subject: [PATCH 07/11] validator: scripts & script policies --- scripts.proto | 2 -- validator.proto | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 75 insertions(+), 2 deletions(-) delete mode 100644 scripts.proto diff --git a/scripts.proto b/scripts.proto deleted file mode 100644 index 398431c..0000000 --- a/scripts.proto +++ /dev/null @@ -1,2 +0,0 @@ -// /script-policy -// /scripts diff --git a/validator.proto b/validator.proto index 6a16ff1..d1aae39 100644 --- a/validator.proto +++ b/validator.proto @@ -95,3 +95,78 @@ message OperationFailRequest { uint32 OperationID = 1; string StatusMessage = 2; } + +message Pagination { + uint32 Size = 1; + uint32 Number = 2; +} + +// Scripts +service ValidatorScriptService { + rpc Create(ScriptCreate) returns (ScriptID); + rpc Get(ScriptID) returns (Script); + rpc List(ScriptListRequest) returns (ScriptListResponse); +} + +message ScriptCreate { + string Name = 1; + string Source = 1; + uint32 ResourceType = 1; + optional uint64 ResourceID = 1; +} + +message ScriptFilter { + optional string Name = 1; + optional string Source = 2; + optional uint32 ResourceType = 3; + optional uint64 ResourceID = 4; +} + +message ScriptListRequest { + ScriptFilter Filter = 1; + Pagination Page = 2; +} + +message Script { + uint64 ID = 1; + uint64 Hash = 2; + string Name = 3; + string Source = 4; + uint32 ResourceType = 5; + optional uint64 ResourceID = 6; +} + +message ScriptListResponse { repeated Script Scripts = 1; } + +// ScriptPolicies +service ValidatorScriptPolicyService { + rpc Create(ScriptPolicyCreate) returns (ScriptPolicyID); + rpc List(ScriptPolicyListRequest) returns (ScriptPolicyListResponse); +} + +message ScriptPolicyCreate { + string Name = 1; + string Source = 1; + uint32 ResourceType = 1; + optional uint64 ResourceID = 1; +} + +message ScriptPolicyFilter { + optional uint64 FromScriptHash = 1; + optional uint64 ToScriptID = 2; + optional uint32 Policy = 3; +} + +message ScriptPolicyListRequest { + ScriptPolicyFilter Filter = 1; + Pagination Page = 2; +} + +message ScriptPolicy { + uint64 ID = 1; + uint64 FromScriptHash = 2; + uint64 ToScriptID = 3; + uint32 Policy = 4; +} + +message ScriptPolicyListResponse { repeated ScriptPolicy ScriptPolicies = 1; } -- 2.49.1 From 5d4a213591c057bdc747bbab61137da2a088e02a Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 21:01:51 -0700 Subject: [PATCH 08/11] validator: type unsafety --- validator.proto | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/validator.proto b/validator.proto index d1aae39..90768bb 100644 --- a/validator.proto +++ b/validator.proto @@ -57,7 +57,7 @@ message SubmissionCreate { } message AuditErrorRequest { - uint64 MapfixID = 1; + uint64 ID = 1; string ErrorMessage = 2; } message Check { @@ -66,18 +66,18 @@ message Check { bool Passed = 3; } message AuditChecklistRequest { - uint64 MapfixID = 1; + uint64 ID = 1; repeated Check CheckList = 2; } message ValidatedModelRequest { - uint64 MapfixID = 1; + uint64 ID = 1; uint64 ValidatedModelID = 2; uint64 ValidatedModelVersion = 3; } message SubmittedRequest { - uint64 MapfixID = 1; + uint64 ID = 1; uint64 ModelVersion = 2; string DisplayName = 3; string Creator = 4; -- 2.49.1 From 55bf0f1f15901e61ba63e29ca99eb4566ea4bcb1 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 21:02:57 -0700 Subject: [PATCH 09/11] validator: fix numbers --- validator.proto | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/validator.proto b/validator.proto index 90768bb..6b499ea 100644 --- a/validator.proto +++ b/validator.proto @@ -110,9 +110,9 @@ service ValidatorScriptService { message ScriptCreate { string Name = 1; - string Source = 1; - uint32 ResourceType = 1; - optional uint64 ResourceID = 1; + string Source = 2; + uint32 ResourceType = 3; + optional uint64 ResourceID = 4; } message ScriptFilter { @@ -146,9 +146,9 @@ service ValidatorScriptPolicyService { message ScriptPolicyCreate { string Name = 1; - string Source = 1; - uint32 ResourceType = 1; - optional uint64 ResourceID = 1; + string Source = 2; + uint32 ResourceType = 3; + optional uint64 ResourceID = 4; } message ScriptPolicyFilter { -- 2.49.1 From 659394ed32c598bd880ac69e824c3a3eeb3a54b5 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 21:06:42 -0700 Subject: [PATCH 10/11] validator: script policy enum --- validator.proto | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/validator.proto b/validator.proto index 6b499ea..960af10 100644 --- a/validator.proto +++ b/validator.proto @@ -144,6 +144,14 @@ service ValidatorScriptPolicyService { rpc List(ScriptPolicyListRequest) returns (ScriptPolicyListResponse); } +enum Policy { + None = 0; + Allowed = 1; + Blocked = 2; + Delete = 3; + Replace = 4; +} + message ScriptPolicyCreate { string Name = 1; string Source = 2; @@ -154,7 +162,7 @@ message ScriptPolicyCreate { message ScriptPolicyFilter { optional uint64 FromScriptHash = 1; optional uint64 ToScriptID = 2; - optional uint32 Policy = 3; + optional Policy Policy = 3; } message ScriptPolicyListRequest { @@ -166,7 +174,7 @@ message ScriptPolicy { uint64 ID = 1; uint64 FromScriptHash = 2; uint64 ToScriptID = 3; - uint32 Policy = 4; + Policy Policy = 4; } message ScriptPolicyListResponse { repeated ScriptPolicy ScriptPolicies = 1; } -- 2.49.1 From 733dcd7a68d4d2433c073fc0dffb88516828ba05 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Thu, 17 Jul 2025 21:06:46 -0700 Subject: [PATCH 11/11] validator: fix ScriptPolicyCreate --- validator.proto | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/validator.proto b/validator.proto index 960af10..e841252 100644 --- a/validator.proto +++ b/validator.proto @@ -153,10 +153,9 @@ enum Policy { } message ScriptPolicyCreate { - string Name = 1; - string Source = 2; - uint32 ResourceType = 3; - optional uint64 ResourceID = 4; + uint64 FromScriptID = 1; + uint64 ToScriptID = 2; + Policy Policy = 3; } message ScriptPolicyFilter { -- 2.49.1