Skip to content

Commit 382a553

Browse files
committed
feat: fully functional audit creation
1 parent f3c4a65 commit 382a553

File tree

23 files changed

+531
-224
lines changed

23 files changed

+531
-224
lines changed

Cargo.lock

Lines changed: 25 additions & 57 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,12 @@ paste = "1.0.14"
3939
prost = "0.13.0"
4040
prost-types = "0.13.0"
4141
rustls = "0.23.29"
42-
rbatis = "=4.5.33"
42+
rbatis = "4.6.8"
4343
rayon = "1.10.0"
44-
rbdc = "=4.5.45"
45-
rbdc-pool-fast = "=4.5.11"
46-
rbdc-pg = { version = "=4.5.17" }
47-
rbdc-mysql = { version = "=4.5.17" }
48-
rbdc-mssql = { version = "=4.5.7" }
49-
rbs = "4.5.13"
44+
rbdc-pg = "4.6.1"
45+
rbdc-mysql = "4.6.0"
46+
rbdc-mssql = "4.6.1"
47+
rbs = "4.5.2"
5048
serde = { version = "1.0.197", features = ["derive"] }
5149
serde-inline-default = "0.2.3"
5250
serde_json = "1.0.115"
@@ -62,7 +60,11 @@ tonic-web = "0.13.0"
6260
tokio = { version = "1.37.0", features = ["full"] }
6361
tower = "0.5.0"
6462
tokio-retry = "0.3"
65-
tower-http = { version = "0.5.2", features = ["trace", "validate-request", "cors"] }
63+
tower-http = { version = "0.5.2", features = [
64+
"trace",
65+
"validate-request",
66+
"cors",
67+
] }
6668
tracing = "0.1.39"
6769
tracing-opentelemetry = { version = "0.25.0" }
6870
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }

common/Cargo.toml

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,11 @@ itertools = "0.13.0"
1414
lazy_static = { version = "1.5.0" }
1515
log = "0.4.27"
1616
nanoid = "0.4.0"
17-
rbatis = "=4.5.33"
18-
rbdc = "=4.5.45"
19-
rbdc-pool-fast = "=4.5.11"
20-
rbdc-pg = { version = "=4.5.17" }
21-
rbdc-mysql = { version = "=4.5.17" }
22-
rbdc-mssql = { version = "=4.5.7" }
23-
rbs = "4.5.13"
17+
rbatis = "4.6.8"
18+
rbdc-pg = "4.6.1"
19+
rbdc-mysql = "4.6.0"
20+
rbdc-mssql ="4.6.1"
21+
rbs = "4.6.2"
2422
tracing = "0.1.41"
2523
tracing-opentelemetry = { version = "0.25.0" }
2624
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }

common/build.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,15 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
185185
.unwrap();
186186

187187
tonic_build::configure()
188-
.type_attribute("Event", "#[derive(Eq, Hash)]")
189-
.type_attribute("Event.event", "#[derive(Eq, Hash)]")
190-
.type_attribute("ResourceModifiedEvent", "#[derive(Eq, Hash)]")
188+
.type_attribute("Event", "#[derive(Eq, Hash, typed_builder::TypedBuilder)]")
189+
.type_attribute("Event", "#[builder(field_defaults(setter(into)))]")
190+
.field_attribute("Event.created_at", "#[builder(default_code = r#\"Some(prost_types::Timestamp::from(std::time::SystemTime::now()))\"#)]")
191+
.field_attribute("Event.event_type", "#[builder(setter(transform = |event_type: EventType| event_type as i32))]")
192+
.type_attribute("Event.event_content", "#[derive(Eq, Hash)]")
193+
.type_attribute("ResourceModifiedEvent", "#[derive(Eq, Hash, typed_builder::TypedBuilder)]")
194+
.field_attribute("ResourceModifiedEvent.operation", "#[builder(setter(transform = |operation: ResourceModificationOperation| operation as i32))]")
195+
.field_attribute("ResourceModifiedEvent.resource_kind", "#[builder(setter(transform = |kind: ResourceKind| kind as i32))]")
196+
.field_attribute("ResourceModifiedEvent.data", "#[builder(setter(transform = |message: &impl prost::Message| {let mut buffer = Vec::new();message.encode(&mut buffer).unwrap();buffer}))]")
191197
.file_descriptor_set_path(out_dir.join("feedback-fusion-event-v1-descriptor.bin"))
192198
.compile_protos(&["../proto/feedback-fusion-event-v1.proto"], &["../proto"])
193199
.unwrap();

common/src/database/postgres.sql

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,13 @@ CREATE TABLE IF NOT EXISTS resource_authorization (
5757
updated_at TIMESTAMP(3),
5858
created_at TIMESTAMP(3)
5959
);
60+
61+
CREATE TABLE IF NOT EXISTS audit_version (
62+
id VARCHAR(32) UNIQUE NOT NULL,
63+
resource_type VARCHAR(255) NOT NULL,
64+
resource_id VARCHAR(32) NOT NULL,
65+
data BYTEA NOT NULL,
66+
action VARCHAR(32) NOT NULL,
67+
version VARCHAR(32) NOT NULL,
68+
created_at TIMESTAMP(3)
69+
);

common/src/database/schema/audit.rs

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,17 @@
2121
//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2222

2323
use crate::{impl_select_page_wrapper, prelude::*};
24-
use rbatis::rbdc::DateTime;
24+
use rbatis::rbdc::{Bytes, DateTime};
2525

26-
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Ord, PartialOrd)]
27-
#[serde(tag = "type")]
26+
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Ord, PartialOrd, Hash)]
2827
#[serde(rename_all = "lowercase")]
2928
pub enum AuditResource {
3029
Target,
3130
Prompt,
3231
Field,
3332
}
3433

35-
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Ord, PartialOrd)]
36-
#[serde(tag = "type")]
34+
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq, Ord, PartialOrd, Hash)]
3735
#[serde(rename_all = "lowercase")]
3836
pub enum AuditAction {
3937
Create,
@@ -42,19 +40,9 @@ pub enum AuditAction {
4240
}
4341

4442
#[derive(
45-
Deserialize,
46-
Serialize,
47-
Clone,
48-
Derivative,
49-
Debug,
50-
Getters,
51-
Setters,
52-
TypedBuilder,
53-
Eq,
54-
Ord,
55-
PartialOrd,
43+
Deserialize, Serialize, Clone, Derivative, Debug, Getters, Setters, TypedBuilder, Eq, PartialOrd, Hash
5644
)]
57-
#[derivative(PartialEq)]
45+
#[derivative(PartialEq, Ord)]
5846
#[get = "pub"]
5947
#[set = "pub"]
6048
#[builder(field_defaults(setter(into)))]
@@ -64,7 +52,8 @@ pub struct AuditVersion {
6452
resource_id: String,
6553
resource_type: AuditResource,
6654
action: AuditAction,
67-
data: Vec<u8>,
55+
#[derivative(Ord = "ignore")]
56+
data: Bytes,
6857
version: u32,
6958
#[derivative(PartialEq = "ignore")]
7059
#[builder(default_code = r#"DateTime::utc()"#)]

0 commit comments

Comments
 (0)