pub enum PullSource {
AzureKeyVault {
name: Option<String>,
ns: Option<String>,
vault_url: String,
prefix: Option<String>,
overwrite: bool,
},
HashiCorpVault {
name: Option<String>,
ns: Option<String>,
addr: String,
mount: String,
prefix: Option<String>,
overwrite: bool,
auth: Option<VaultAuthConfig>,
vault_namespace: Option<String>,
},
OnePassword {
name: Option<String>,
ns: Option<String>,
item: String,
op_vault: Option<String>,
overwrite: bool,
},
Aws {
name: Option<String>,
ns: Option<String>,
region: Option<String>,
prefix: Option<String>,
overwrite: bool,
},
SsmParameterStore {
name: Option<String>,
ns: Option<String>,
region: Option<String>,
path: Option<String>,
overwrite: bool,
},
Gcp {
name: Option<String>,
ns: Option<String>,
project: Option<String>,
prefix: Option<String>,
overwrite: bool,
},
Bitwarden {
name: Option<String>,
ns: Option<String>,
api_url: Option<String>,
identity_url: Option<String>,
client_id: Option<String>,
client_secret: Option<String>,
folder: Option<String>,
password_env: Option<String>,
overwrite: bool,
},
Keepass {
name: Option<String>,
path: String,
password_env: Option<String>,
keyfile_path: Option<String>,
group: Option<String>,
recursive: Option<bool>,
ns: Option<String>,
overwrite: bool,
},
}Expand description
A single pull source definition.
Every variant includes two ADR-012 optional fields:
name: label for--source <label>filteringns: namespace prefix applied to fetched keys (separator.)
Variants§
AzureKeyVault
Azure Key Vault.
Fields
HashiCorpVault
HashiCorp Vault KV v2.
Fields
auth: Option<VaultAuthConfig>Authentication method. When absent, the runtime reads env vars
(VAULT_ROLE_ID+VAULT_SECRET_ID → AppRole; else VAULT_TOKEN).
OnePassword
1Password via the op CLI.
Fields
Aws
AWS Secrets Manager.
Fields
SsmParameterStore
AWS SSM Parameter Store.
Fields
Gcp
GCP Secret Manager.
Fields
Bitwarden
Bitwarden via the bw CLI (task E2.2).
Cipher values in the Bitwarden REST API are always E2E encrypted
client-side; this source uses the bw CLI subprocess to unlock and
list items with plaintext decryption handled by the CLI.
Auth requires TSAFE_BW_CLIENT_ID, TSAFE_BW_CLIENT_SECRET, and
TSAFE_BW_PASSWORD (master password for bw unlock).
Fields
api_url: Option<String>Bitwarden API base URL. Defaults to https://api.bitwarden.com.
Override for self-hosted Vaultwarden instances.
identity_url: Option<String>Bitwarden identity base URL. Defaults to https://identity.bitwarden.com.
Keepass
KeePass .kdbx file (local path).
The master password is read from the env var named by password_env
(never stored literally in the manifest). An optional key file can
supplement or replace the password.
Fields
password_env: Option<String>Name of the environment variable that holds the master password.
If omitted and no keyfile_path is set, opening the database will fail.
group: Option<String>Only import entries whose direct parent group has this name
(case-insensitive). When absent, all entries from the root group
are imported (or all groups when recursive is true).
Implementations§
Source§impl PullSource
impl PullSource
Sourcepub fn name(&self) -> Option<&str>
pub fn name(&self) -> Option<&str>
Return the name label for this source, if declared (ADR-012).
Sourcepub fn ns(&self) -> Option<&str>
pub fn ns(&self) -> Option<&str>
Return the ns namespace prefix for this source, if declared (ADR-012).
Keys fetched from a source with ns set are stored as <ns>.KEY_NAME.
Sourcepub fn provider_type(&self) -> &'static str
pub fn provider_type(&self) -> &'static str
Return a human-readable provider type label for display purposes.