<!-- # hard line break macro for HTML -->

# fiftyone.plugins.secrets

Plugin secrets resolver.

Copyright 2017-2026, Voxel51, Inc.
<br/>
[voxel51.com](https://voxel51.com/)
<br/>
<br/>

**Classes:**

| [`PluginSecretsResolver`](#fiftyone.plugins.secrets.PluginSecretsResolver)()            | Injects secrets from environmental variables into the execution context.                                                            |
|-----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| [`SecretsDictionary`](#fiftyone.plugins.secrets.SecretsDictionary)(secrets_dict[, ...]) | A more secure dictionary for accessing plugin secrets in operators that will attempt to resolve missing plugin secrets upon access. |

### *class* fiftyone.plugins.secrets.PluginSecretsResolver

Bases: `object`

Injects secrets from environmental variables into the execution
context.

**Methods:**

| [`register_operator`](#fiftyone.plugins.secrets.PluginSecretsResolver.register_operator)(operator_uri, required_secrets)   |                                    |
|----------------------------------------------------------------------------------------------------------------------------|------------------------------------|
| [`client`](#fiftyone.plugins.secrets.PluginSecretsResolver.client)()                                                       |                                    |
| [`get_multiple`](#fiftyone.plugins.secrets.PluginSecretsResolver.get_multiple)(keys, operator_uri, \*\*kwargs)             | Get the value of multiple secrets. |
| [`get_secret`](#fiftyone.plugins.secrets.PluginSecretsResolver.get_secret)(key, operator_uri, \*\*kwargs)                  | Get the value of a secret.         |
| [`get_secret_sync`](#fiftyone.plugins.secrets.PluginSecretsResolver.get_secret_sync)(key, operator_uri, \*\*kwargs)        | Get the value of a secret.         |

#### register_operator(operator_uri: str, required_secrets: List[str]) → None

#### client() → ISecretProvider

#### *async* get_multiple(keys: List[str], operator_uri: str, \*\*kwargs) → Dict[str, ISecret | None]

Get the value of multiple secrets.
:param keys: list of secret keys
:param operator_uri: the operator URI
:param kwargs: additional keyword arguments to pass to the secrets
:param client for authentication if required:

* **Returns:**
  A dictionary of secret keys and their values

#### *async* get_secret(key: str, operator_uri: str, \*\*kwargs) → ISecret | None

Get the value of a secret.

* **Parameters:**
  * **key** (*str*) – unique secret identifier
  * **kwargs** – additional keyword arguments to pass to the secrets
  * **required** (*client for authentication if*)

#### get_secret_sync(key: str, operator_uri: str, \*\*kwargs) → ISecret | None

Get the value of a secret.

* **Parameters:**
  * **key** (*str*) – unique secret identifier
  * **kwargs** – additional keyword arguments to pass to the secrets
  * **required** (*client for authentication if*)

### *class* fiftyone.plugins.secrets.SecretsDictionary(secrets_dict: Dict[str, str], operator_uri: str = None, resolver_fn: Callable = None, required_keys: List[str] = None)

Bases: `object`

A more secure dictionary for accessing plugin secrets in
operators that will attempt to resolve missing plugin secrets upon access.

**Methods:**

| [`copy`](#fiftyone.plugins.secrets.SecretsDictionary.copy)()             |    |
|--------------------------------------------------------------------------|----|
| [`keys`](#fiftyone.plugins.secrets.SecretsDictionary.keys)()             |    |
| [`values`](#fiftyone.plugins.secrets.SecretsDictionary.values)()         |    |
| [`items`](#fiftyone.plugins.secrets.SecretsDictionary.items)()           |    |
| [`get`](#fiftyone.plugins.secrets.SecretsDictionary.get)(key[, default]) |    |

#### copy()

#### keys()

#### values()

#### items()

#### get(key, default=None)
