modules can expose data to other modules from now on2

This commit is contained in:
Priec
2026-09-14 16:21:45 +02:00
parent ce7b7a49dc
commit 4a160d7d9a
6 changed files with 44 additions and 46 deletions

2
client

Submodule client updated: 09d1f5b448...88b2e7a4aa

View File

@@ -152,9 +152,16 @@ message ModuleConfiguration {
repeated ModuleDataAccessRequest data_access_requests = 7;
}
enum ModuleDataPermission {
MODULE_DATA_PERMISSION_UNSPECIFIED = 0;
MODULE_DATA_PERMISSION_ACCOUNTING_PERIOD_BALANCES = 1;
message ModuleDataExportId {
string providing_module = 1;
string name = 2;
uint32 version = 3;
}
message ModuleDataExport {
ModuleDataExportId id = 1;
string description = 2;
map<string, string> translations = 3;
}
enum ModuleDataAccessDecision {
@@ -165,14 +172,15 @@ enum ModuleDataAccessDecision {
message ModuleDataAccessRequest {
string requesting_module = 1;
string providing_module = 2;
ModuleDataPermission permission = 3;
reserved 2, 3;
ModuleDataExport data_export = 5;
bool granted = 4;
}
message ModuleDataAccessUpdate {
string requesting_module = 1;
ModuleDataPermission permission = 2;
reserved 2;
ModuleDataExportId export_id = 4;
ModuleDataAccessDecision decision = 3;
}

Binary file not shown.

View File

@@ -71,13 +71,34 @@ pub struct ModuleConfiguration {
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ModuleDataExportId {
#[prost(string, tag = "1")]
pub providing_module: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub name: ::prost::alloc::string::String,
#[prost(uint32, tag = "3")]
pub version: u32,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ModuleDataExport {
#[prost(message, optional, tag = "1")]
pub id: ::core::option::Option<ModuleDataExportId>,
#[prost(string, tag = "2")]
pub description: ::prost::alloc::string::String,
#[prost(map = "string, string", tag = "3")]
pub translations: ::std::collections::HashMap<
::prost::alloc::string::String,
::prost::alloc::string::String,
>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ModuleDataAccessRequest {
#[prost(string, tag = "1")]
pub requesting_module: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub providing_module: ::prost::alloc::string::String,
#[prost(enumeration = "ModuleDataPermission", tag = "3")]
pub permission: i32,
#[prost(message, optional, tag = "5")]
pub data_export: ::core::option::Option<ModuleDataExport>,
#[prost(bool, tag = "4")]
pub granted: bool,
}
@@ -86,8 +107,8 @@ pub struct ModuleDataAccessRequest {
pub struct ModuleDataAccessUpdate {
#[prost(string, tag = "1")]
pub requesting_module: ::prost::alloc::string::String,
#[prost(enumeration = "ModuleDataPermission", tag = "2")]
pub permission: i32,
#[prost(message, optional, tag = "4")]
pub export_id: ::core::option::Option<ModuleDataExportId>,
#[prost(enumeration = "ModuleDataAccessDecision", tag = "3")]
pub decision: i32,
}
@@ -1147,37 +1168,6 @@ pub mod list_column_types_response {
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ModuleDataPermission {
Unspecified = 0,
AccountingPeriodBalances = 1,
}
impl ModuleDataPermission {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "MODULE_DATA_PERMISSION_UNSPECIFIED",
Self::AccountingPeriodBalances => {
"MODULE_DATA_PERMISSION_ACCOUNTING_PERIOD_BALANCES"
}
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODULE_DATA_PERMISSION_UNSPECIFIED" => Some(Self::Unspecified),
"MODULE_DATA_PERMISSION_ACCOUNTING_PERIOD_BALANCES" => {
Some(Self::AccountingPeriodBalances)
}
_ => None,
}
}
}
#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ModuleDataAccessDecision {
Unspecified = 0,
Allow = 1,

2
server

Submodule server updated: 5e28c7fe06...a4f361ebad