# Secret Stores

Secret Stores provide a common way to interact with different secret stores, cloud/edge/commercial or open-source.

Currently supported secret stores are:

* Kubernetes
* Hashicorp Vault
* Azure KeyVault
* AWS Secret manager
* GCP Cloud KMS
* GCP Secret Manager
* AlibabaCloud OOS Parameter Store

## Implementing a new Secret Store

A compliant secret store needs to implement the following interface:

```go
type SecretStore interface {
  // Init authenticates with the actual secret store and performs other init operation
  Init(metadata Metadata) error

  // GetSecret retrieves a secret using a key and returns a map of decrypted string/string values
  GetSecret(req GetSecretRequest) (GetSecretResponse, error)

  // BulkGetSecrets retrieves all secrets in the store and returns a map of decrypted string/string values
  BulkGetSecret(req BulkGetSecretRequest) (BulkGetSecretResponse, error)
}
```
