Skip to content

Commit 1ea027c

Browse files
authored
fix: get secret endpoint not reading path params (#155)
1 parent cf42822 commit 1ea027c

File tree

6 files changed

+20
-10
lines changed

6 files changed

+20
-10
lines changed

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

integrationos-api/src/logic/secrets.rs

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use crate::server::AppState;
22
use axum::{
33
extract::{Path, State},
4-
routing::post,
4+
routing::{get, post},
55
Extension, Json, Router,
66
};
77
use bson::doc;
@@ -11,7 +11,9 @@ use serde_json::Value;
1111
use std::sync::Arc;
1212

1313
pub fn get_router() -> Router<Arc<AppState>> {
14-
Router::new().route("/", post(create_secret).get(get_secret))
14+
Router::new()
15+
.route("/", post(create_secret))
16+
.route("/:id", get(get_secret))
1517
}
1618

1719
#[derive(Serialize, Deserialize)]

integrationos-domain/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "integrationos-domain"
33
description = "Shared library for IntegrationOS"
44
license = "GPL-3.0"
5-
version = "6.0.1"
5+
version = "7.0.0"
66
edition = "2021"
77
repository = "https://github.com/integration-os/integrationos-domain"
88

integrationos-domain/src/algebra/crypto.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ use google_cloud_kms::{
1010
grpc::kms::v1::DecryptRequest,
1111
};
1212
use secrecy::ExposeSecret;
13+
use tracing::debug;
1314

1415
#[async_trait]
1516
pub trait CryptoExt {
@@ -159,18 +160,23 @@ impl GoogleCryptoKms {
159160
key_id = self.config.google_kms_key_id,
160161
),
161162
ciphertext: BASE64_STANDARD.decode(encrypted_secret.as_bytes())
162-
.map_err(|_| InternalError::deserialize_error("The provided value is not a valid UTF-8 string", None))?,
163+
.map_err(|e| {
164+
debug!("Error decoding secret: {e}");
165+
InternalError::deserialize_error("The provided value is not a valid UTF-8 string", None)
166+
})?,
163167
..Default::default()
164168
};
165169

166-
let decriptes_bytes = self.client.decrypt(request, None).await.map_err(|_| {
170+
let decriptes_bytes = self.client.decrypt(request, None).await.map_err(|e| {
171+
debug!("Error decrypting secret: {e}");
167172
InternalError::connection_error(
168173
"The provided value is not a valid UTF-8 string",
169174
None,
170175
)
171176
})?;
172177

173-
let plaintext = String::from_utf8(decriptes_bytes.plaintext).map_err(|_| {
178+
let plaintext = String::from_utf8(decriptes_bytes.plaintext).map_err(|e| {
179+
debug!("Error converting decrypted secret to string: {e}");
174180
InternalError::deserialize_error(
175181
"The provided value is not a valid UTF-8 string",
176182
None,

integrationos-domain/src/algebra/secret.rs

-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@ impl SecretExt for GoogleKms {
110110
.ok_or_else(|| InternalError::key_not_found("Secret", None))?;
111111

112112
let encrypted_secret = secret.encrypted_secret().expose_secret().to_owned();
113-
114113
let version = secret.version();
115114

116115
let decrypted_secret = self.crypto.decrypt(encrypted_secret, version).await?;

integrationos-domain/src/domain/configuration/secrets.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,12 @@ pub struct SecretsConfig {
1919
pub google_kms_project_id: String,
2020
#[envconfig(from = "GOOGLE_KMS_LOCATION_ID", default = "global")]
2121
pub google_kms_location_id: String,
22-
#[envconfig(from = "GOOGLE_KMS_KEY_RING_ID", default = "secrets-service-local")]
22+
#[envconfig(
23+
from = "GOOGLE_KMS_KEY_RING_ID",
24+
default = "secrets-service-development"
25+
)]
2326
pub google_kms_key_ring_id: String,
24-
#[envconfig(from = "GOOGLE_KMS_KEY_ID", default = "secrets-service-local")]
27+
#[envconfig(from = "GOOGLE_KMS_KEY_ID", default = "secrets-service-development")]
2528
pub google_kms_key_id: String,
2629
#[envconfig(
2730
from = "IOS_CRYPTO_SECRET",

0 commit comments

Comments
 (0)