{"id":15097312,"url":"https://github.com/caiyeon/goldfish","last_synced_at":"2025-10-08T02:31:31.839Z","repository":{"id":45756516,"uuid":"79487641","full_name":"Caiyeon/goldfish","owner":"Caiyeon","description":"A HashiCorp Vault UI written with VueJS and Vault native Go API","archived":true,"fork":false,"pushed_at":"2018-09-05T03:18:53.000Z","size":29710,"stargazers_count":2136,"open_issues_count":26,"forks_count":164,"subscribers_count":68,"default_branch":"master","last_synced_at":"2025-08-14T21:54:43.121Z","etag":null,"topics":["bulma-css","go","golang","hashicorp-vault","vault","vault-ui","vue-admin","vuejs"],"latest_commit_sha":null,"homepage":"https://vault-ui.io","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Caiyeon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-01-19T19:34:31.000Z","updated_at":"2025-08-05T15:48:55.000Z","dependencies_parsed_at":"2022-08-05T08:00:21.618Z","dependency_job_id":null,"html_url":"https://github.com/Caiyeon/goldfish","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/Caiyeon/goldfish","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caiyeon%2Fgoldfish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caiyeon%2Fgoldfish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caiyeon%2Fgoldfish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caiyeon%2Fgoldfish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Caiyeon","download_url":"https://codeload.github.com/Caiyeon/goldfish/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Caiyeon%2Fgoldfish/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278877599,"owners_count":26061480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bulma-css","go","golang","hashicorp-vault","vault","vault-ui","vue-admin","vuejs"],"created_at":"2024-09-25T16:20:31.981Z","updated_at":"2025-10-08T02:31:29.961Z","avatar_url":"https://github.com/Caiyeon.png","language":"Vue","funding_links":["https://ko-fi.com/A4242ER7'"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n\u003ch3\u003eGoldfish Vault UI - \u003ca href=\"https://vault-ui.io\"\u003eLive Demo \u003c/a\u003e\u003c/h3\u003e\n\n\u003cp\u003e\u003cimg width=\"250\" height=\"194\" src=\"https://github.com/Caiyeon/goldfish/blob/master/frontend/client/assets/logo%402x.png\"\u003e\u003c/p\u003e\n\n\u003ch3\u003e\n\t\u003ca href='https://ko-fi.com/A4242ER7' target='_blank'\u003e\n\t\t\u003cimg height='32' style='border:0px;height:32px;' src='https://az743702.vo.msecnd.net/cdn/kofi4.png?v=0' border='0' alt='Donation' /\u003e\n\t\u003c/a\u003e\n\t\u003cimg height=\"32\" src=https://circleci.com/gh/Caiyeon/goldfish.svg?style=svg\u003e\n\t\u003cbr\u003e\n\tShare this repo with your colleagues!\n\u003c/h3\u003e\n\n\u003c/div\u003e\n\n\n## What is this?\n\n\u003cdiv class=\"center\"\u003e\n\u003cblockquote class=\"twitter-tweet\" data-cards=\"hidden\" data-lang=\"en\"\u003e\u003cp lang=\"en\" dir=\"ltr\"\u003e\u003ca href=\"https://vault-ui.io\"\u003eGoldfish\u003c/a\u003e - A HashiCorp Vault UI and workflow tool. \u003ca href=\"https://t.co/uVWLuQEBMi\"\u003epic.twitter.com/uVWLuQEBMi\u003c/a\u003e\u003c/p\u003e\u0026mdash; Kelsey Hightower (@kelseyhightower) \u003ca href=\"https://twitter.com/kelseyhightower/status/899717092496121856?ref_src=twsrc%5Etfw\"\u003eAugust 21, 2017\u003c/a\u003e\u003c/blockquote\u003e\n\u003c/div\u003e\n\nGoldfish answers many auditing and administration questions that Vault API can't:\n\n* Right now, are there any root tokens in Vault?\n* Which policies, users, and tokens can access this particular secret path?\n* The unseal admins are working from home, but we need a policy changed.\n\t* How do we generate a root token only for this change, and make sure it's revoked after?\n* I store my policies on a Github repo. Can I deploy all my policies in one go? [See more](https://github.com/Caiyeon/goldfish/wiki/Features#request-policy-change-by-github-commit)\n* If I remove this secret/policy, will anybody's workflow break?\n\n\n\u003c!--\n--\u003e\n## [Deploy goldfish in production in minutes!](https://github.com/Caiyeon/goldfish/wiki/Production-Deployment)\n\nSeriously, the instructions fit on one screen!\n\n\n\u003c!--\n--\u003e\n## Features\n\n* [x] Hot-loadable server settings from a provided vault endpoint\n* [x] Displaying a vault endpoint as a 'bulletin board' in homepage\n* [x] **Logging in** with token, userpass, github, or LDAP\n* [x] **Secret** Reading/editing/creating/listing\n* [x] **Auth** Searching/creating/listing/deleting\n* [x] **Mounts** Listing\n* [x] **Policies** Searching/Listing\n* [x] Encrypting and decrypting arbitrary strings using transit backend\n\n#### Major features: [See wiki for more](https://github.com/Caiyeon/goldfish/wiki/Features)\n* [x] **DONE!** Searching tokens by policy [walkthrough](https://github.com/Caiyeon/goldfish/wiki/Features#searching-tokens)\n\t- E.g. Display all tokens that have the policy 'admins'\n* [x] **DONE!** Searching policy by rule [walkthrough](https://github.com/Caiyeon/goldfish/wiki/Features#searching-policies)\n\t- E.g. Display all policies that can access 'secret/data*'\n* [x] **DONE!** Request \u0026 approval based policy changes [walkthrough](https://github.com/Caiyeon/goldfish/wiki/Features#policy-change-requests)\n\t- Users can place a policy change request in vault\n\t- Admins must then provide unseal tokens for that specific request\n\t- Upon reaching a set number, goldfish generates a root token, performs edit, and revokes the root token\n* [x] **DONE!** **Terraform your vault** [walkthrough](https://github.com/Caiyeon/goldfish/wiki/Features#request-policy-change-by-github-commit)\n\t- Fetch a folder of policies from a commit in github\n\t- Admins can enter their unseal tokens for approval to set vault policies according to policies found\n\t- Change dozens of policies in one go!\n* [x] **DONE!** Resource dependency chain\n\t- E.g. Will removing a particular policy affect current users?\n\t- Will removing a mount or secret path affect current users?\n\n\n\u003c!--\n--\u003e\n## Screenshots\n\n![](screenshots/Login.png)\n\n\n![](screenshots/PolicyRequest.png)\n\n\n![](screenshots/BulletinBoard.png)\n\n\n![](screenshots/TokenCreator.png)\n\n\n![](screenshots/Users.png)\n\n\n\n\u003c!--\n--\u003e\n## Developing Goldfish\n\n#### Running locally\nYou'll need go (v1.9), nodejs (v8.2), and npm (v5)\n\n```bash\n# hashicorp vault ui\n\n# clone goldfish\ngo get github.com/caiyeon/goldfish\ncd $GOPATH/src/github.com/caiyeon/goldfish\n\n# running goldfish server in -dev will spin up a local vault instance for you\ngo run server.go -dev\n\n# running goldfish frontend in dev mode will allow for hot-reload of frontend files\ncd frontend\nsudo npm install -g cross-env\nnpm install\nnpm run dev\n\n# a browser window/tab should open, pointing directly to goldfish\n```\n\n\n#### Using a VM\nA vagrantfile is available as well\n\nYou'll need [Vagrant](https://www.vagrantup.com/downloads.html) and [VirtualBox](https://www.virtualbox.org/). On Windows, a restart after installation is needed.\n\n```bash\n# if you wish to launch goldfish in a VM:\ngit clone https://github.com/Caiyeon/goldfish.git\ncd goldfish/vagrant\n\n# this will take awhile\nvagrant up --provision\n\n# go to localhost:8080 on your local machine and login with token 'goldfish'\n\n# changes to frontend .vue files will be hot-reloaded\n# to force a full reload for the frontend, ssh into the machine and run\n#     `sudo systemctl restart goldfish_frontend.service`\n# to recompile and re-run the backend, ssh into the machine and run\n#     `sudo systemctl restart goldfish.service`\n```\n\n\n#### Compiling\nYou'll need Go(v1.9), Nodejs (v8.2.0), Npm (v5)\n\nNote that using different versions (of nodeJS, especially) will cause differences in the final binary.\n\n```bash\n# download the source code\ngo get -d github.com/caiyeon/goldfish\ncd $GOPATH/src/github.com/caiyeon/goldfish\n\n# resetting to a tagged version is recommended\n# no support will be given to arbitrary commits on the master branch\ngit fetch --all --tags --prune\ngit checkout tags/\u003cversion\u003e # version could be, for example, v0.8.0\n\n# compile the binary\nsh build.sh\n```\n\n\n\n\u003c!--\n--\u003e\n## Development\nGoldfish is in very active development.\n\nPull requests and feature requests are welcome. Feel free to suggest new workflows by opening issues.\n\n\n\u003c!--\n--\u003e\n## Components\n\nFrontend:\n* VueJS\n* Bulma CSS\n* Vue Admin\n\nBackend:\n* [Vault API](https://godoc.org/github.com/hashicorp/vault/api) wrapper\n\n\n\n\u003c!--\n--\u003e\n## Design\n\nSee: [Architecture](https://github.com/Caiyeon/goldfish/wiki/Architecture)\n\n\n\u003c!--\n--\u003e\n## Sponsored by\n\n![](screenshots/DO_Logo_Horizontal_Blue.png)\n\n\n\u003c!--\n--\u003e\n## Why 'Goldfish'?\n\nThis server should behave as a goldfish, forgetting everything immediately after a request is completed. That, and other inside-joke reasons.\n\nCredits for the goldfish icon goes to [Laurel Chan](https://www.linkedin.com/in/laurel-chan-11baa286)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaiyeon%2Fgoldfish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaiyeon%2Fgoldfish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaiyeon%2Fgoldfish/lists"}