Files
notfiles/crates/notsecrets/src/sources/mise.rs
Joseph O'Brien 1359def673
Some checks failed
Public Repo Readiness / Check Public Repo Readiness (push) Has been cancelled
feat(notsecrets): add multi-provider secret resolution system
Add a config-driven, strongly-typed secret/env resolution system to
notsecrets with 11 provider backends. The system supports explicit
key bindings with typed SecretRef enums and a priority chain fallback.

Tier 1 providers (implemented): Env, 1Password, dotenvx, SOPS, GSM
Tier 2 providers (stubbed): nuenv, direnv, mise, Bitwarden, Vault, dotenvy

New types: Provider, ProviderConfig, SecretRef, SecretsConfig,
SecretsError, SecretSource, EnumerableSecretSource, SecretResolver

Config lives in notsecrets.toml with typed serde deserialization.
ISP split: EnumerableSecretSource for backends that support bulk
enumeration, SecretSource for single-key lookup only.

Includes conformance test suite, 33 new tests (161 workspace total).
notstrap EnvInjector migration deferred to follow-up.
2026-06-06 09:49:05 -04:00

36 lines
705 B
Rust

use crate::config::Provider;
use crate::error::SecretsError;
use crate::ports::SecretSource;
pub struct MiseSource;
impl SecretSource for MiseSource {
fn name(&self) -> &str {
"mise"
}
fn provider(&self) -> Provider {
Provider::Mise
}
fn resolve(&self, _key: &str) -> Result<Option<String>, SecretsError> {
Ok(None)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn mise_stub_resolve_returns_none() {
assert_eq!(MiseSource.resolve("ANY").unwrap(), None);
}
#[test]
fn mise_stub_name_and_provider() {
assert_eq!(MiseSource.name(), "mise");
assert_eq!(MiseSource.provider(), Provider::Mise);
}
}