bank-vaults / secret-sync

Synchronise secrets between secret stores in a configurable manner
Apache License 2.0
19 stars 1 forks source link

Secret Sync

Go Report Card Go Version go.dev - references GitHub Workflow Status OpenSSF Scorecard OpenSSF Best Practices

Secret Sync exposes a generic way to interact with external secret storage systems like HashiCorp Vault and provides a set of API models to interact and orchestrate the synchronization of secrets between them.

[!IMPORTANT] This is an early alpha version and breaking changes are expected. As such, it is not recommended for usage in production. We are actively working on expanding the list of supported stores and consolidating our APIs.

You can support us with your feedback, bug reports, and feature requests.

Features

Supported store Status
HashiCorp Vault alpha
[Local Provider] alpha
AWS Secrets Manager planned
Google Secrets Manager planned
Azure Key Vault planned
Kubernetes Secret planned

Check details about upcoming features by visiting the project issue board.

Goals

Consider a situation where Dev teams need access to secrets from different environments. Ops teams can provide access to secrets in the form of an isolated environment (e.g. new Vault instance) synced only with secrets Devs require; all in GitOps way.

Getting started

To get familiarized, check out the collection of different examples using this tool.

Documentation

Check out the project documentation or pkg.go.dev.

Development

For an optimal developer experience, it is recommended to install Nix and direnv.

Alternatively, install Go on your computer then run make deps to install the rest of the dependencies.

Make sure Docker is installed with Compose and Buildx.

Run project dependencies:

make up

Build the CLI:

make build

Run the test suite:

make test

Run linters:

make lint # pass -j option to run them in parallel

Some linter violations can automatically be fixed:

make fmt

Build artifacts locally:

make artifacts

Once you are done either stop or tear down dependencies:

make stop

# OR

make down

License

The project is licensed under the Apache 2.0 License.