From b04461c8854ae4e35364d4ce2f87c55f886a655e Mon Sep 17 00:00:00 2001 From: C0ffeeCode Date: Tue, 10 Jun 2025 17:02:10 -0700 Subject: [PATCH] WIP --- src/engines/kv/data.rs | 4 ++-- src/engines/kv/post_secret.sql | 9 +++++---- src/macros.rs | 23 +++++++++++++++++------ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/src/engines/kv/data.rs b/src/engines/kv/data.rs index c9da4c4..fa98898 100644 --- a/src/engines/kv/data.rs +++ b/src/engines/kv/data.rs @@ -144,8 +144,8 @@ pub async fn post_data( engine_path, nonce: todo!(), encrypted_data: todo!(), - } - let signature = secret_content.sign().await; + }; + let signature = secret_version.sign().await.to_vec(); let res_r = sqlx::query_file!( "src/engines/kv/post_secret.sql", engine_path, diff --git a/src/engines/kv/post_secret.sql b/src/engines/kv/post_secret.sql index 9f44d07..c947237 100644 --- a/src/engines/kv/post_secret.sql +++ b/src/engines/kv/post_secret.sql @@ -1,10 +1,10 @@ WITH latest_version AS ( - SELECT MAX(version_number) AS max_version + SELECT MAX(version_number) AS max_version, signature FROM kv2_secret_version WHERE engine_path = $1 AND secret_path = $2 -- engine_path AND secret_path ) -INSERT INTO kv2_secret_version (engine_path, secret_path, nonce, encrypted_data, created_time, version_number) +INSERT INTO kv2_secret_version (engine_path, secret_path, nonce, encrypted_data, created_time, version_number, signature) VALUES ( $1, -- engine_path $2, -- secret_path @@ -14,6 +14,7 @@ VALUES ( CASE -- Use provided version if given WHEN $6 IS NOT NULL THEN $6 -- version_number (optional) ELSE COALESCE((SELECT max_version FROM latest_version) + 1, 1) -- otherwise 1 - END -- version_number logic + END, -- version_number logic + $7 -- signature ) -RETURNING version_number; +RETURNING version_number, signature; diff --git a/src/macros.rs b/src/macros.rs index 80844a1..df2a85f 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -33,10 +33,11 @@ pub fn signed_dbo(_attr: TokenStream, item: TokenStream) -> TokenStream { for field in fields { new_fields.extend(quote! { #field, }); } - - let a = sqlx::query_unchecked!(r"SELECT name -FROM pragma_table_info('kv2_metadata') -WHERE pk > 0"); + // expand_input +// let a = sqlx::query(r"SELECT name +// FROM pragma_table_info('kv2_metadata') +// WHERE pk > 0").fetch_one(&input.); +// print!("aaa {a}"); let expanded = quote! { #[derive(serde::Serialize)] @@ -58,9 +59,19 @@ WHERE pk > 0"); } impl #struct_name { - async fn fetch_one() - } + async fn fetch_one() { + // sqlx::query_as!(#struct_name, r" + // SELECT * FROM $1 WHERE engine_path = $2, path = $3 + // ") + } + async fn insert_one(&mut self) { + // self.signature = await self.sign(); + // sqlx::query!(r" + // INSERT INTO $1 + // ") + } + } }; TokenStream::from(expanded)