From bce4a0c8390fcd4e3886625c180bbb070a7abbd5 Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Fri, 28 Jun 2024 18:13:47 +0200 Subject: [PATCH 1/9] feat: Add AnnouncementType enum to models --- aruna/api/storage/models/v2/models.proto | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/aruna/api/storage/models/v2/models.proto b/aruna/api/storage/models/v2/models.proto index 7073fc9f..7025fd06 100644 --- a/aruna/api/storage/models/v2/models.proto +++ b/aruna/api/storage/models/v2/models.proto @@ -5,6 +5,14 @@ option go_package = "github.com/ArunaStorage/go-api/v2/aruna/api/storage/models/ package aruna.api.storage.models.v2; // --------------- ENUMS ------------------------ +// Defines the public announcement type +enum AnnouncementType { + ANNOUNCEMENT_TYPE_UNSPECIFIED = 0; + ANNOUNCEMENT_TYPE_MISC = 1; + ANNOUNCEMENT_TYPE_RELEASE = 2; + ANNOUNCEMENT_TYPE_UPDATE = 3; + ANNOUNCEMENT_TYPE_MAINTENANCE = 4; +} // Dataclass defines the confidentiality of the object enum DataClass { From 751858d90d8c5ca3650e5bca038f9ee584dea755 Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Fri, 28 Jun 2024 18:15:08 +0200 Subject: [PATCH 2/9] feat: Extend Announcement message --- aruna/api/storage/services/v2/info_service.proto | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/aruna/api/storage/services/v2/info_service.proto b/aruna/api/storage/services/v2/info_service.proto index 2e28431b..c4e24f23 100644 --- a/aruna/api/storage/services/v2/info_service.proto +++ b/aruna/api/storage/services/v2/info_service.proto @@ -132,9 +132,14 @@ message GetPubkeysResponse { } message Announcement { - string id = 1; - string content = 2; - google.protobuf.Timestamp created_at = 3; + string announcement_id = 1; + storage.models.v2.AnnouncementType announcement_type = 2; + string title = 3; + string content = 4; + string created_by = 5; + google.protobuf.Timestamp created_at = 6; + string modified_by = 7; + google.protobuf.Timestamp modified_at = 8; } message GetAnnouncementsRequest {} From 4efedc235b62730b696b619f5e47818cf7502775 Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Fri, 28 Jun 2024 18:15:58 +0200 Subject: [PATCH 3/9] feat: Add GetAnnouncement to StorageStatusService --- .../storage/services/v2/info_service.proto | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/aruna/api/storage/services/v2/info_service.proto b/aruna/api/storage/services/v2/info_service.proto index c4e24f23..57b74514 100644 --- a/aruna/api/storage/services/v2/info_service.proto +++ b/aruna/api/storage/services/v2/info_service.proto @@ -64,6 +64,17 @@ service StorageStatusService { }; } + // GetAnnouncement + // + // Status: BETA + // + // Query a specific global announcement + rpc GetAnnouncement(GetAnnouncementRequest) returns (GetAnnouncementResponse) { + option (google.api.http) = { + get : "/v2/info/announcements/{announcement_id}" + }; + } + // SetAnnouncements // // Status: BETA @@ -148,6 +159,14 @@ message GetAnnouncementsResponse { repeated Announcement announcements = 1; } +message GetAnnouncementRequest { + string id = 1; +} + +message GetAnnouncementResponse { + Announcement announcement = 1; +} + message SetAnnouncementsRequest { repeated Announcement announcements_upsert = 1; repeated string announcements_delete = 2; From 9090ec1179000174d8cbb3e06953cf93f833cb19 Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Fri, 28 Jun 2024 18:20:06 +0200 Subject: [PATCH 4/9] fix: Correct field name in GetAnnouncementRequest --- aruna/api/storage/services/v2/info_service.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/aruna/api/storage/services/v2/info_service.proto b/aruna/api/storage/services/v2/info_service.proto index 57b74514..726a6dd8 100644 --- a/aruna/api/storage/services/v2/info_service.proto +++ b/aruna/api/storage/services/v2/info_service.proto @@ -160,7 +160,7 @@ message GetAnnouncementsResponse { } message GetAnnouncementRequest { - string id = 1; + string announcement_id = 1; } message GetAnnouncementResponse { From 56900878f482ce2d7546b7438aabacf247e2343c Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Mon, 1 Jul 2024 12:57:16 +0200 Subject: [PATCH 5/9] feat: Adapt AnnouncementType enum - Change ANNOUNCEMENT_TYPE_MISC to ANNOUNCEMENT_TYPE_ORGA - Add ANNOUNCEMENT_TYPE_BLOG --- aruna/api/storage/models/v2/models.proto | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aruna/api/storage/models/v2/models.proto b/aruna/api/storage/models/v2/models.proto index 7025fd06..c0da33e2 100644 --- a/aruna/api/storage/models/v2/models.proto +++ b/aruna/api/storage/models/v2/models.proto @@ -8,10 +8,11 @@ package aruna.api.storage.models.v2; // Defines the public announcement type enum AnnouncementType { ANNOUNCEMENT_TYPE_UNSPECIFIED = 0; - ANNOUNCEMENT_TYPE_MISC = 1; + ANNOUNCEMENT_TYPE_ORGA = 1; ANNOUNCEMENT_TYPE_RELEASE = 2; ANNOUNCEMENT_TYPE_UPDATE = 3; ANNOUNCEMENT_TYPE_MAINTENANCE = 4; + ANNOUNCEMENT_TYPE_BLOG = 5; } // Dataclass defines the confidentiality of the object From 70ba49e5eb4bd91129aae405f4c834397717928e Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Mon, 1 Jul 2024 13:04:00 +0200 Subject: [PATCH 6/9] feat: Add teaser field to Announcement message --- .../storage/services/v2/info_service.proto | 29 ++++++++++--------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/aruna/api/storage/services/v2/info_service.proto b/aruna/api/storage/services/v2/info_service.proto index 726a6dd8..4c56c362 100644 --- a/aruna/api/storage/services/v2/info_service.proto +++ b/aruna/api/storage/services/v2/info_service.proto @@ -146,11 +146,21 @@ message Announcement { string announcement_id = 1; storage.models.v2.AnnouncementType announcement_type = 2; string title = 3; - string content = 4; - string created_by = 5; - google.protobuf.Timestamp created_at = 6; - string modified_by = 7; - google.protobuf.Timestamp modified_at = 8; + string teaser = 4; + string content = 5; + string created_by = 6; + google.protobuf.Timestamp created_at = 7; + string modified_by = 8; + google.protobuf.Timestamp modified_at = 9; +} + +message SetAnnouncementsRequest { + repeated Announcement announcements_upsert = 1; + repeated string announcements_delete = 2; +} + +message SetAnnouncementsResponse { + repeated Announcement announcements = 1; } message GetAnnouncementsRequest {} @@ -166,12 +176,3 @@ message GetAnnouncementRequest { message GetAnnouncementResponse { Announcement announcement = 1; } - -message SetAnnouncementsRequest { - repeated Announcement announcements_upsert = 1; - repeated string announcements_delete = 2; -} - -message SetAnnouncementsResponse { - repeated Announcement announcements = 1; -} \ No newline at end of file From 2e6a97da0320509751c7cfca857728b9c454877c Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Mon, 1 Jul 2024 13:05:11 +0200 Subject: [PATCH 7/9] feat: Add token-based pagination to GetAnnouncementsRequest --- aruna/api/storage/services/v2/info_service.proto | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/aruna/api/storage/services/v2/info_service.proto b/aruna/api/storage/services/v2/info_service.proto index 4c56c362..6d51fe85 100644 --- a/aruna/api/storage/services/v2/info_service.proto +++ b/aruna/api/storage/services/v2/info_service.proto @@ -163,7 +163,9 @@ message SetAnnouncementsResponse { repeated Announcement announcements = 1; } -message GetAnnouncementsRequest {} +message GetAnnouncementsRequest { + storage.models.v2.PageRequest page = 1; +} message GetAnnouncementsResponse { repeated Announcement announcements = 1; From af5d66f013132fbce5b9ce7a4c7393c65eba7da3 Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Mon, 1 Jul 2024 14:15:42 +0200 Subject: [PATCH 8/9] feat: Add optional id filter to GetAnnouncementsRequest --- aruna/api/storage/services/v2/info_service.proto | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/aruna/api/storage/services/v2/info_service.proto b/aruna/api/storage/services/v2/info_service.proto index 6d51fe85..03880b5e 100644 --- a/aruna/api/storage/services/v2/info_service.proto +++ b/aruna/api/storage/services/v2/info_service.proto @@ -53,11 +53,13 @@ service StorageStatusService { }; } - // GetAnnouncements + // Get Announcements // // Status: BETA // - // Query global announcements + // Query global announcements optionally filtered by specific ids. + // - Returns all announcements if no ids are provided + // - Returns only the specific announcements if ids are provided rpc GetAnnouncements(GetAnnouncementsRequest) returns (GetAnnouncementsResponse) { option (google.api.http) = { get : "/v2/info/announcements" @@ -164,7 +166,8 @@ message SetAnnouncementsResponse { } message GetAnnouncementsRequest { - storage.models.v2.PageRequest page = 1; + repeated string announcement_ids = 1; + storage.models.v2.PageRequest page = 2; } message GetAnnouncementsResponse { From df9b7727da6e76a51f11c0dd516d56e7b651649f Mon Sep 17 00:00:00 2001 From: Jannis Hochmuth Date: Mon, 1 Jul 2024 14:16:32 +0200 Subject: [PATCH 9/9] feat: Added GetAnnouncementsByType endpoint --- .../storage/services/v2/info_service.proto | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/aruna/api/storage/services/v2/info_service.proto b/aruna/api/storage/services/v2/info_service.proto index 03880b5e..c3abfa33 100644 --- a/aruna/api/storage/services/v2/info_service.proto +++ b/aruna/api/storage/services/v2/info_service.proto @@ -66,11 +66,22 @@ service StorageStatusService { }; } - // GetAnnouncement + // GetAnnouncementsByType // // Status: BETA // - // Query a specific global announcement + // Query global announcements by type + rpc GetAnnouncementsByType(GetAnnouncementsByTypeRequest) returns (GetAnnouncementsByTypeResponse) { + option (google.api.http) = { + get : "/v2/info/announcements/{announcement_type}" + }; + } + + // Get a specific Announcement + // + // Status: BETA + // + // Query a specific global announcement by its id rpc GetAnnouncement(GetAnnouncementRequest) returns (GetAnnouncementResponse) { option (google.api.http) = { get : "/v2/info/announcements/{announcement_id}" @@ -144,6 +155,9 @@ message GetPubkeysResponse { repeated storage.models.v2.Pubkey pubkeys = 1; } +/* -------------------------------------*/ +/* ----- Public Announcements ----------*/ +/* -------------------------------------*/ message Announcement { string announcement_id = 1; storage.models.v2.AnnouncementType announcement_type = 2; @@ -174,6 +188,15 @@ message GetAnnouncementsResponse { repeated Announcement announcements = 1; } +message GetAnnouncementsByTypeRequest { + storage.models.v2.AnnouncementType announcement_type = 1; + storage.models.v2.PageRequest page = 2; +} + +message GetAnnouncementsByTypeResponse { + repeated Announcement announcements = 1; +} + message GetAnnouncementRequest { string announcement_id = 1; }