Code Monkey home page Code Monkey logo

envsecrets's Introduction

envsecrets

Quickstart   •   Homepage   •   Login   •   Community   •   Twitter

envsecrets is an open-source free-forever cloud account to store your environment secrets and synchronize them with third-party services.

This tool is for you if you:

  • Are currently hardcoding your secrets in your code.
  • Are sharing .env files over Slack or WhatsApp.
  • Are consuming the same set of secrets in multiple services/locations.
  • Do not have any access control setup for your secrets.
  • Need to version your secrets.

Security

Read our detailed data model to understand how we keep your secrets secure.

By Design

  • End-to-End Encryption
    You are protected with public-key cryptography. Secrets are encrypted and decrypted on client side only. Never on our servers.
  • Zero-Knowledge Architecture
    No one can see your secrets. Not even us. If our database gets hacked/leaked, attackers will never be able to decrypt your secrets.
  • Multi-Factor Authentication
    You can enable Temporal One Time Passwords on the platform and scan the QR in any authenticator app like Google Authenticator or Authy.

By Promise

  • Open Source Codebase
    Feel free to scan our code to establish trust.

Core Features

Amongst many hidden gems, the platform's core features include:

  • Role-Based Access Control
    Never let your interns get access to production secrets.
  • Deployment Platform Integrations - Vercel, Docker, etc.
    Push your secrets to the third-partry services where you consume them.
  • Versioning
    Want to bring back a previous value? Rollback to an older version of your secret.
  • Services Tokens / API Keys
    Securely export and consume your secrets in places where you cannot authenticate with your account password.
  • CI/CD Integrations - Github Actions, Circle CI, etc.
    Push your secrets to the third-partry services where you are consuming them.
  • Multi-Factor Authentication
    Activate TOTP based MFA in your account. Prevent attackers from accessing your secrets just because they got your password.

Getting Started

It is recommended you go through the quickstart guide for more detailed explaination.

Installation

Install the CLI in your system.

MacOS

brew install envsecrets/tap/envs

Linux

snap install envs

Windows Or Any Other OS Download the release binary from here.

Using w/ Local Environment

  • Change directory to the root of your project.

    cd project_root/
    
  • Set your first secret locally.

    envs set first=first
    

    This will save your key-value pair locally without encrypting it.

  • Get the value of a particular key.

    envs get first
    

    This should ideally print the value of first.

  • List your locally available keys.

    envs ls
    

Using w/ Remote Environment

  1. Login to your envsecrets cloud account.
  2. Create a new project from your dashboard.
  3. Now simply using the --env flag will run the get/set/ls commands on remote environments instead of your local one. To list your keys in a remote environment called prod, simply run:
    envs ls -e prod
    
  4. Similarly, to get the value for key FIRST in the second version of your prod environment secret, simply run:
    envs get FIRST -v 2 -e prod
    

Syncing w/ Third-Party Services From CLI

  1. Go to the integrations catalog on the platform.
  2. Choose any integration and go through the setup procedure described on the platform.
  3. Activate your connected integration on the prod environment of any project in your organisation from the integrations page.
  4. Run the following command on your terminal:
    envs sync -e prod
    
  5. Out of the options presented to you by the CLI, select the preferred service you want to push your secrets to.
  6. That's it! Go and check your service to see if the latest values have been updated.

Here is the detailed documentation on how to connect and activate every individual integration.

Need Help?

Feature Requests

To request enhancements or new features, you can do either of the following:

envsecrets's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

envsecrets's Issues

Integration with Kubernetes Secrets

Strategy

  1. Build a k8 operator and ask the user to install the operator in their cluster.
  2. The operator should poll envsecrets API with required credentials.

feat: a VS Code extension

Objective

Manage and mutate secrets directly from your VS Code sidebar.

Features

  • CRUD operations on secrets for every environment.
  • Options to reveal/mutate value whenever user hovers on their language specific os.Getenv command. Use LSPs for this.
  • (Optional) Launch new shells in VSCode with populated/exposed key-value pairs without making the user run their process in the envs run -- wrapper.

References

Project and integrations are being cached

Describe the bug
After creating a new project, it only reflects on the platform after refreshing it.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

allow referencing variables in secret values

Users should be able to reference other keys in values of secrets.

For example, set the following pairs:

  • API=https://api.example.com
  • AUTH_URL=${API}/auth

Every time the value of AUTH_URL is decrypted, it should be revealed as: https://api.example.com/auth.

allow changing passwords

Allow users to change their passwords from inside the platform if they remember their current passwords.

This would entail generating new protection keys for the user encrypted with an argon2i key derived from their new password.

Nhost Integration

Objective

Allow users to update secrets in their deployed Nhost apps directly from envsecrets.

Strategy

  1. Ask users to create a personal access token from their Nhost account.
  2. Authenticate against the Nhost's platform API and update secrets using this GraphQL mutation.

Railway Integration

Objective

Forward sync secrets with a Railway project.

Strategy

  1. Ask user to generate a personal access token from their Railway account.
  2. Paste the token in envsecrets connection configuration.
  3. Call the upsert variables mutation in Railyway's GraphQL server.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.