1
0
Fork 0
A comfy UI for Hashicorp Vault.
Find a file
2022-01-19 17:05:36 +00:00
src fix view default syntax box copy paste error 2022-01-19 17:05:36 +00:00
.envrc add direnv 2022-01-10 13:35:11 +00:00
.eslintrc.json make linter happy 2022-01-07 15:55:15 +00:00
.gitattributes Add webpack to gitattributes. 2021-05-08 03:22:39 +01:00
.gitignore Start working on using preact and TSX. 2021-05-22 09:50:55 +01:00
.gitlab-ci.yml add spa redirect 2022-01-07 16:26:53 +00:00
.prettierrc Run prettier when using eslint to make code consistantly formatted. 2021-05-12 16:01:04 +01:00
_redirects add spa redirect 2022-01-07 16:26:53 +00:00
checkTranslations.mjs add translation completeness to language selection boxes 2022-01-19 15:04:58 +00:00
LICENSE.md finish 2022-01-07 14:11:14 +00:00
package.json add settings page 2022-01-19 13:54:13 +00:00
README.md "Default Indent" -> "Indent" 2022-01-19 17:04:26 +00:00
runLinterFormatter.sh format code 2022-01-10 16:10:35 +00:00
shell.nix add direnv 2022-01-10 13:35:11 +00:00
tsconfig.json stricter typescript 2022-01-19 15:33:07 +00:00
webpack-dev.config.js add hjson support for editing secrets 2022-01-13 18:09:03 +00:00
webpack.config.js add hjson support for editing secrets 2022-01-13 18:09:03 +00:00

VaultUI

VaultUI is a user interface for Hashicorp Vault.

Supported Features:

Unseal

  • Can unseal using a QR code making it easier for multi-user teams to unseal vault together.

Key Value

  • Viewing of Key/Value secrets (v1 & v2)
  • Managing versions of secrets in v2 mounts.
  • Editing and Viewing Key/Value secrets in JSON, JSON5, Yaml, etc with default settings for both.
  • Search bar for easily finding a secret on mobile.

TOTP

  • Can view and delete TOTP codes.
  • Ability to scan a QR code, input a URI or input a key for adding TOTP codes.
  • Supports adding vault-generated TOTP keys for testing.

Transit

  • Can create transit engines and keys with all supported cyphers.
  • Supports encrypt, decrypt and rewrap in browser.

Policies

  • Can view, edit and delete policies.

Auth

  • Supports limited viewing some auth methods.

Auth / UserPass

  • Can manage userpass users and change passwords, expiry and other settings

How to build:

Recommended: use direnv or just nix-shell to automatically grab nodejs and required build dependencies.

npm install --save-dev
npx webpack

The resulting built files will be in dist/

How to run in development:

npm install --save-dev
npx webpack serve --config webpack-dev.config.js

How to host/use

We host it via GitLab pages at VaultUI.

Simply copy the files to root of webserver. You will need a redirect rule to redirect any 404's or non-200's to index.html.

Cors will need to be enabled for you to use VaultUI. Due to vault encrypting cors config with the unseal key, you can't use VaultUI to unseal vault for the first time.

However, you can use VaultUI to unseal vault for first unseal if you can replace without appending to the cors headers so they use the same headers when unsealed as sealed.

Redirects

Netlify Redirect Rule:

/* /index.html 200

Nginx

location / {
    try_files $uri $uri/ /index.html;
}

AWS Amplify

original address: </^[^.]+$|\.(?!(css|gif|ico|jpg|js|png|txt|svg|woff|woff2|ttf|map|json)$)([^.]+$)/> destination address: /index.html redirect type: 200

Translating

Make sure to keep the order of comments and tags in the translation files src/translations the same.

When you want to MR an update, title it "Changed wording in..." or "Synced translations in de" or something along those lines.

To get a list of what languages need what translations added, run node ./checkTranslations.mjs

For example:

Language: fr
Missing:  unseal_input_btn, unseal_qr_btn

Would mean those two missing translations need to be added to the french translation.