# Secret Managers

> Source: https://docs.synthesized.io/tdk/latest/user_guide/070_integrations/secret_management/secret_managers
> For the complete documentation index, see [llms.txt](https://docs.synthesized.io/llms.txt).

Several ways to provide database credential are supported.

## Raw

Database credentials can be provided as raw unencrypted values:

```json
{
  "type": "raw",
  "value": "${SOURCE_PASSWORD}"
}
```

Where:

- `type`: The password provider type
- `value`: raw password value

## Google Secret Manager

Database credentials can be requested from [Google Secret Manager](https://cloud.google.com/secret-manager):

```json
{
  "type": "gcp",
  "project": "${GCP_PROJECT_ID}",
  "secret": "${SECRET_ID}",
  "version": "${VERSION_ID}"
}
```

Where:

- `type`: The password provider type
- `project`: GCP project ID
- `secret`: Secret Manager secret ID
- `version`: (optional, default – latest) Secret Manager secret version ID

> **NOTE**
> Note
>
> `SECRETS_GCP_SECRET_MANAGER_ENABLED` property should be enabled.

## AWS Secrets Manager

Database credentials can be requested from [AWS Secrets Manager](https://aws.amazon.com/secrets-manager/):

```json
{
  "type": "aws",
  "secret": "${SECRET_ID}",
  "version": "${VERSION_ID}"
}
```

Where:

- `type`: The password provider type
- `secret` - The ARN or name of the secret to retrieve
- `version` (optional) - The unique identifier of the version of the secret to retrieve If you don’t specify the version, then the `AWSCURRENT` version is used.

> **NOTE**
> Note
>
> `SECRETS_AWS_SECRET_MANAGER_ENABLED` property should be enabled.

## Hashicorp Vault

Database credentials can be requested from [Hashicorp Vault](https://www.hashicorp.com/products/vault):

```json
{
  "type": "vault",
  "storage": "${STORAGE_ID}",
  "path": "${PATH_ID}",
  "secret": "${SECRET_ID}",
  "versioned": "${IS_VERSIONED}",
  "version": "${VERSION_ID}"
}
```

Where:

- `type`: The password provider type
- `storage`: The name of the secret storage (e.g. "secret", "database", "cubbyhole", etc)
- `path`: The mount path of the secret
- `secret`: The name of the secret to retrieve
- `versioned`: Indicates if the current secret storage is versioned ("false" by default)
- `version`: The unique identifier of the version of the secret to retrieve. Using 0 as the default value for the current version

> **NOTE**
> Note
>
> `SECRETS_VAULT_SECRET_MANAGER_ENABLED` property should be enabled.
