Skip to content

Commit 964873f

Browse files
committed
feat(proxy): output installed EQL version on startup
This queries the database with `select cs_eql_version();` (rather than the version at build time) for accuracy.
1 parent 932f1ba commit 964873f

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

packages/cipherstash-proxy/src/encrypt/mod.rs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ mod schema;
33

44
use crate::{
55
config::TandemConfig,
6-
eql,
6+
connect, eql,
77
error::{EncryptError, Error},
88
log::ENCRYPT,
99
postgresql::Column,
@@ -22,7 +22,7 @@ use cipherstash_config::ColumnConfig;
2222
use config::EncryptConfigManager;
2323
use schema::SchemaManager;
2424
use std::{sync::Arc, vec};
25-
use tracing::debug;
25+
use tracing::{debug, warn};
2626

2727
/// SQL Statement for loading encrypt configuration from database
2828
const ENCRYPT_CONFIG_QUERY: &str = include_str!("./sql/select_config.sql");
@@ -44,6 +44,8 @@ pub struct Encrypt {
4444
cipher: Arc<ScopedCipher>,
4545
pub encrypt_config: EncryptConfigManager,
4646
pub schema: SchemaManager,
47+
/// The EQL version installed in the database or `None` if it was not present
48+
pub eql_version: Option<String>,
4749
}
4850

4951
impl Encrypt {
@@ -52,11 +54,28 @@ impl Encrypt {
5254
let schema = SchemaManager::init(&config.database).await?;
5355
let encrypt_config = EncryptConfigManager::init(&config.database).await?;
5456

57+
let eql_version = {
58+
let client = connect::database(&config.database).await?;
59+
let rows = client.query("SELECT cs_eql_version();", &[]).await;
60+
61+
match rows {
62+
Ok(rows) => rows.first().map(|row| row.get("cs_eql_version")),
63+
Err(err) => {
64+
warn!(
65+
msg = "Could not query EQL version from database",
66+
error = err.to_string()
67+
);
68+
None
69+
}
70+
}
71+
};
72+
5573
Ok(Encrypt {
5674
config,
5775
cipher,
5876
encrypt_config,
5977
schema,
78+
eql_version,
6079
})
6180
}
6281

packages/cipherstash-proxy/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ async fn init(mut config: TandemConfig) -> Encrypt {
217217
host = encrypt.config.database.host,
218218
port = encrypt.config.database.port,
219219
username = encrypt.config.database.username,
220+
eql_version = encrypt.eql_version,
220221
);
221222
encrypt
222223
}

0 commit comments

Comments
 (0)