msticpy.common.provider_settings module
Helper functions for configuration settings.
- class msticpy.common.provider_settings.ProviderArgs(dict=None, /, **kwargs)
Bases:
UserDict
ProviderArgs dictionary.
- clear() None. Remove all items from D.
- copy()
- classmethod fromkeys(iterable, value=None)
- get(k[, d]) D[k] if k in D, else d. d defaults to None.
- items() a set-like object providing a view on D's items
- keys() a set-like object providing a view on D's keys
- pop(k[, d]) v, remove specified key and return the corresponding value.
If key is not found, d is returned if given, otherwise KeyError is raised.
- popitem() (k, v), remove and return some (key, value) pair
as a 2-tuple; but raise KeyError if D is empty.
- setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D
- update([E, ]**F) None. Update D from mapping/iterable E and F.
If E present and has a .keys() method, does: for k in E: D[k] = E[k] If E present and lacks .keys() method, does: for (k, v) in E: D[k] = v In either case, this is followed by: for k, v in F.items(): D[k] = v
- values() an object providing a view on D's values
- class msticpy.common.provider_settings.ProviderSettings(name: str, description: str, provider: str | None = None, args: ProviderArgs = NOTHING, primary: bool = False)
Bases:
object
Provider settings.
Method generated by attrs for class ProviderSettings.
- args: ProviderArgs
- description: str
- name: str
- primary: bool
- provider: str | None
- msticpy.common.provider_settings.auth_secrets_client(tenant_id: str | None = None, auth_methods: List[str] | None = None, credential: Any | None = None, **kwargs)
Authenticate the Secrets/Key Vault client.
- Parameters:
auth_methods (List[str], optional) – List of authentication methods to try Possible options are: - “env” - to get authentication details from environment variables - “cli” - to use Azure CLI authentication details - “msi” - to user Managed Service Identity details - “interactive” - to prompt for interactive login - “vscode” - to use VSCode credentials - “powershell” - to use PowerShell credentials - “interactive” - to prompt for interactive login - “cache” - to use shared token cache credentials - “devicecode” - to use device code with web login - “clientsecret” - to use client id/secret login. Default is [“env”, “msi”, “vscode”, “cli”, “powershell”, “interactive”]
tenant_id (str, optional) – The tenant to authenticate against. If not supplied, the default tenant for the identity will be used.
silent (bool, optional) – Set True to hide all output during connection, by default False
credential (Azure Credential, optional) – Use an existing Azure credential to authenticate.
client_id (str) – Required when using “clientsecret” auth method
client_secret (str) – Required when using “clientsecret” auth method
- msticpy.common.provider_settings.clear_keyring()
Delete local keyring secrets cache.
- msticpy.common.provider_settings.get_protected_setting(config_path, setting_name) Any
Return a potentially protected setting value.
- msticpy.common.provider_settings.get_provider_settings(config_section='TIProviders') Dict[str, ProviderSettings]
Read Provider settings from package config.
- Parameters:
config_section (str, optional) – [description], by default “TIProviders”
- Returns:
Provider settings indexed by provider name.
- Return type:
Dict[str, ProviderSettings]
- msticpy.common.provider_settings.get_secrets_client_func() Callable[[...], SecretsClient | None]
Return function to get or create secrets client.
- Returns:
Function to get, replace or create a SecretsClient
- Return type:
Callable
Notes
This function creates closure that persists the secrets client instance. The inner function works as follows:
if called with no parameters and SecretsClient is not instantiated, it will try to instantiate a SecretsClient, assign it to the nonlocal _secrets_client and return this instance.
if called subsequently it will just return the secrets client.
if called with a SecretsClient instance as a parameter, it will replace the SecretsClient instance and return that.
- msticpy.common.provider_settings.refresh_keyring()
Refresh local keyring secrets cache from Key Vault.
- msticpy.common.provider_settings.reload_settings()
Reload settings from config files.