feat: v0.7.0 — secrets partagés par provider : am providers set-token/token, namespace keyring providers/<nom>, résolution @secret en cascade agent → provider (closes #89)
Corrige au passage deux bugs du keyring (#36) : features natifs manquants du crate keyring (set() no-op silencieux, rien ne persistait) + index __index__ jamais purgé au remove (list fantômes).
This commit is contained in:
+17
-4
@@ -243,7 +243,7 @@ impl AmCompleter {
|
||||
config_sub: vec!["show", "path", "edit", "validate", "add"],
|
||||
profile_sub: vec!["list", "show"],
|
||||
catalog_sub: vec!["update", "add", "list"],
|
||||
providers_sub: vec!["list", "show", "add", "remove", "default"],
|
||||
providers_sub: vec!["list", "show", "add", "remove", "default", "set-token", "token"],
|
||||
shells: vec!["bash", "zsh", "fish", "powershell", "elvish"],
|
||||
gateway_shells: vec![
|
||||
"list", "bash", "zsh", "fish", "powershell", "pwsh", "cmd", "sh", "nu",
|
||||
@@ -1467,16 +1467,18 @@ fn handle_line(
|
||||
"secret" => match rest.first().map(|s| s.as_str()) {
|
||||
Some("set") if rest.len() >= 2 => Command::Secret(crate::cli::SecretCmd::Set {
|
||||
name: rest[1].clone(),
|
||||
agent: opt_value("--agent").unwrap_or_default(),
|
||||
agent: opt_value("--agent"),
|
||||
provider: opt_value("--provider"),
|
||||
value: opt_value("--value").unwrap_or_default(),
|
||||
}),
|
||||
Some("unset") if rest.len() >= 2 => Command::Secret(crate::cli::SecretCmd::Unset {
|
||||
name: rest[1].clone(),
|
||||
agent: opt_value("--agent").unwrap_or_default(),
|
||||
agent: opt_value("--agent"),
|
||||
provider: opt_value("--provider"),
|
||||
}),
|
||||
Some("list") | None => Command::Secret(crate::cli::SecretCmd::List),
|
||||
_ => {
|
||||
app.log.error(crate::i18n::tr("usage: secret set NAME --agent A --value V | secret unset NAME --agent A | secret list"));
|
||||
app.log.error(crate::i18n::tr("usage: secret set NAME --agent A --value V | secret set NAME --provider P --value V | secret unset NAME --agent A | secret list"));
|
||||
return Ok(false);
|
||||
}
|
||||
},
|
||||
@@ -1521,6 +1523,17 @@ fn handle_line(
|
||||
name: rest[1].clone(),
|
||||
}),
|
||||
}),
|
||||
Some("set-token") if rest.len() >= 2 => Command::Providers(crate::cli::ProviderArgs {
|
||||
sub: Some(crate::cli::ProvidersCmd::SetToken {
|
||||
name: rest[1].clone(),
|
||||
value: opt_value("--value").unwrap_or_default(),
|
||||
}),
|
||||
}),
|
||||
Some("token") if rest.len() >= 2 => Command::Providers(crate::cli::ProviderArgs {
|
||||
sub: Some(crate::cli::ProvidersCmd::Token {
|
||||
name: rest[1].clone(),
|
||||
}),
|
||||
}),
|
||||
Some("list") | None => Command::Providers(crate::cli::ProviderArgs {
|
||||
sub: Some(crate::cli::ProvidersCmd::List),
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user