Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change docker-compose and docker files to latest stable versions #4

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ public.*
goldfish-linux-amd64
goldfish-windows-amd64.exe
rice-box.go
server
.idea
16 changes: 16 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
### Contributing

Firstly, thank you for taking the time to improve goldfish!

First time contributors are welcomed, but please make sure your code <b>compiles</b>. This includes eliminating JSLint warnings.

Styling preferences:
* Go code should use tabs for indentation
* Javascript (.vue) code should use 2 spaces for indentation
* JSLint warnings should not appear when running the frontend
* Lines should not have trailing white space
* No custom CSS. Rely on [Bulma CSS](https://bulma.io) for spacing, coloring, etc.

Goldfish is becoming more and more stable, and therefore places higher priority on maintainability, expressiveness, and error handling. What this means is that features need a reason for existence beyond simply "it's a feature". Features need to be <b>needed</b>.

If you have any doubts on the necessity of a feature, please open a feature request issue first. Keep in mind many new feature requests are rejected because they fall out of scope or set a new precedent. Your feature could solve the halting problem, but still be rejected because it doesn't belong in the repository. Backend integration tests should be implemented as much as possible.
40 changes: 40 additions & 0 deletions ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
!IMPORTANT!

Goldfish has known compatibility issues with vault v0.10.0 and above.
If you are using vault v0.10.0 or above:
Please attach a report to this thread instead of opening a new issue
https://github.com/Caiyeon/goldfish/issues/277




### Bug report:

<!-- Prefix issue title with "Bug: <very short summary>" -->

Vault version:

Goldfish version:

Operating system:

Steps to reproduce:

Expected behaviour:

Actual behaviour:




### Feature request:

<!-- Prefix issue title with "Feature request: <very short summary>" -->

Is this a front-end feature or backend? (or both?)

Description of feature:

Are you able to submit a pull request for this feature?


47 changes: 31 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,12 @@

</div>

<a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/WYT8J9rrsTK63FQg68eQYsJN/Caiyeon/goldfish'>
<img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/WYT8J9rrsTK63FQg68eQYsJN/Caiyeon/goldfish.svg' />
</a>

## What is this?

[Goldfish](https://vault-ui.io) is a HashiCorp Vault UI
<div class="center">
<blockquote class="twitter-tweet" data-cards="hidden" data-lang="en"><p lang="en" dir="ltr"><a href="https://vault-ui.io">Goldfish</a> - A HashiCorp Vault UI and workflow tool. <a href="https://t.co/uVWLuQEBMi">pic.twitter.com/uVWLuQEBMi</a></p>&mdash; Kelsey Hightower (@kelseyhightower) <a href="https://twitter.com/kelseyhightower/status/899717092496121856?ref_src=twsrc%5Etfw">August 21, 2017</a></blockquote>
</div>

Goldfish answers many auditing and administration questions that Vault API can't:

Expand Down Expand Up @@ -69,13 +68,6 @@ Seriously, the instructions fit on one screen!
* [x] **DONE!** Resource dependency chain
- E.g. Will removing a particular policy affect current users?
- Will removing a mount or secret path affect current users?
* [ ] Certificate management panel
- If vault is a certificate authority, there should be a user-friendly panel of details and statistics
* [ ] Moving root tokens away from the human eye
- More root operations like mount tuning should also be done via request & approval basis, like policy changes
* [ ] Database management panel
- Vault 0.7.3 allows for multiple db connections per backend, but lacks a management system



<!--
Expand All @@ -85,7 +77,7 @@ Seriously, the instructions fit on one screen!
![](screenshots/Login.png)


![](screenshots/Policy_request_approve.png)
![](screenshots/PolicyRequest.png)


![](screenshots/BulletinBoard.png)
Expand All @@ -97,16 +89,13 @@ Seriously, the instructions fit on one screen!
![](screenshots/Users.png)


![](screenshots/Policies.png)



<!--
-->
## Developing Goldfish

#### Running locally
You'll need go (v1.9), nodejs (v6), and npm (v5)
You'll need go (v1.9), nodejs (v8.2), and npm (v5)

```bash
# hashicorp vault ui
Expand Down Expand Up @@ -151,6 +140,26 @@ vagrant up --provision
```


#### Compiling
You'll need Go(v1.9), Nodejs (v8.2.0), Npm (v5)

Note that using different versions (of nodeJS, especially) will cause differences in the final binary.

```bash
# download the source code
go get -d github.com/caiyeon/goldfish
cd $GOPATH/src/github.com/caiyeon/goldfish

# resetting to a tagged version is recommended
# no support will be given to arbitrary commits on the master branch
git fetch --all --tags --prune
git checkout tags/<version> # version could be, for example, v0.8.0

# compile the binary
sh build.sh
```



<!--
-->
Expand Down Expand Up @@ -181,6 +190,12 @@ Backend:
See: [Architecture](https://github.com/Caiyeon/goldfish/wiki/Architecture)


<!--
-->
## Sponsored by

![](screenshots/DO_Logo_Horizontal_Blue.png)


<!--
-->
Expand Down
88 changes: 53 additions & 35 deletions circle.yml
Original file line number Diff line number Diff line change
@@ -1,38 +1,56 @@
dependencies:
override:
# force clean cache
- rm -rf /home/ubuntu/.go_workspace/src
# make parent folder (since it shouldn't exist now)
- mkdir -p /home/ubuntu/.go_workspace/src/github.com/caiyeon/goldfish
# copy cloned folder into $GOPATH so vendor folder will work
- cd .. && mv -f goldfish /home/ubuntu/.go_workspace/src/github.com/caiyeon
version: 2

test:
override:
- ? |
cd /home/ubuntu/.go_workspace/src/github.com/caiyeon/goldfish
jobs:
integration_tests:
working_directory: /go/src/github.com/caiyeon/goldfish
docker:
- image: circleci/golang:1.10.2-browsers
steps:
- checkout
- run:
name: Run integration tests
command: go test -race -p 1 ./...
- run:
name: Build binary without frontend
command: |
go build -v -a github.com/caiyeon/goldfish
./goldfish --version

# compile server binary and run acceptance tests
if [ "$CIRCLE_NODE_INDEX" -eq "0" ]; then
go build -v -a github.com/caiyeon/goldfish
./goldfish --version
echo $PWD
go test -race -p 1 $(go list ./... | grep -v /vendor/)
compile:
working_directory: /go/src/github.com/caiyeon/goldfish
docker:
- image: circleci/golang:1.10.2-browsers
steps:
- checkout
- run:
name: Install nvm, node, and npm
command: |
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
echo 'export NVM_DIR=$HOME/.nvm' >> $BASH_ENV
touch $HOME/.nvmrc
echo 'source $NVM_DIR/nvm.sh' >> $BASH_ENV

# compile frontend static folder from scratch
elif [ "$CIRCLE_NODE_INDEX" -eq "1" ]; then
cd frontend
nvm install v6.11.1
sudo -E env "PATH=$PATH" npm install -g cross-env
sudo -E env "PATH=$PATH" npm install -g npm@5
npm link webpack
rm -rf node_modules
npm cache clean --force
npm install
cd ..
sh build.sh
mv goldfish-linux-amd64 $CIRCLE_ARTIFACTS
mv goldfish-windows-amd64.exe $CIRCLE_ARTIFACTS
fi
:
parallel: true # make full use of 2 containers
- run:
name: Compile frontend and final binary
command: |
cd frontend
nvm install v8.2.0
sudo -E env "PATH=$PATH" npm install -g cross-env
npm link webpack
rm -rf node_modules
npm cache clean --force
npm install
cd ..
sh build.sh

- store_artifacts:
path: goldfish-windows-amd64.exe
- store_artifacts:
path: goldfish-linux-amd64

workflows:
version: 2
test_and_compile:
jobs:
- integration_tests
- compile
Loading