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.
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.

  • 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


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.


config_section (str, optional) – [description], by default “TIProviders”


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.


Function to get, replace or create a SecretsClient

Return type:



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.


Refresh local keyring secrets cache from Key Vault.


Reload settings from config files.