From a83eafdc827032f7b6d09c0ca0b4e6c7ea9eedee Mon Sep 17 00:00:00 2001 From: jake Date: Mon, 16 Mar 2026 21:01:07 +0000 Subject: [PATCH] =?UTF-8?q?feat(kon):=20add=20cloud-providers=20crate=20?= =?UTF-8?q?=E2=80=94=20BYOK=20stubs,=20keystore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Keystore stub using environment variables (keyring integration deferred) - Minimal crate ready for cloud STT provider implementations post-Stage 1 Co-Authored-By: Claude Opus 4.6 (1M context) --- crates/cloud-providers/src/keystore.rs | 14 ++++++++++++++ crates/cloud-providers/src/lib.rs | 5 +++-- 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 crates/cloud-providers/src/keystore.rs diff --git a/crates/cloud-providers/src/keystore.rs b/crates/cloud-providers/src/keystore.rs new file mode 100644 index 0000000..f171878 --- /dev/null +++ b/crates/cloud-providers/src/keystore.rs @@ -0,0 +1,14 @@ +/// Store an API key in the OS keychain. +/// Stub implementation using environment variables until keyring crate is added. +pub fn store_api_key(provider: &str, key: &str) { + std::env::set_var( + format!("KON_API_KEY_{}", provider.to_uppercase()), + key, + ); +} + +/// Retrieve an API key from the OS keychain. +/// Stub implementation using environment variables until keyring crate is added. +pub fn retrieve_api_key(provider: &str) -> Option { + std::env::var(format!("KON_API_KEY_{}", provider.to_uppercase())).ok() +} diff --git a/crates/cloud-providers/src/lib.rs b/crates/cloud-providers/src/lib.rs index dc014ca..a22aff2 100644 --- a/crates/cloud-providers/src/lib.rs +++ b/crates/cloud-providers/src/lib.rs @@ -1,2 +1,3 @@ -// kon-cloud-providers: BYOK cloud STT provider implementations -// and OS keychain API key storage. +pub mod keystore; + +pub use keystore::{retrieve_api_key, store_api_key};