Skip to content
This repository has been archived by the owner on Mar 8, 2023. It is now read-only.

Release v0.1.0 #23

Merged
merged 98 commits into from
Apr 30, 2019
Merged
Show file tree
Hide file tree
Changes from 94 commits
Commits
Show all changes
98 commits
Select commit Hold shift + click to select a range
1f15f4d
Initial http implementation
florisvdg Feb 25, 2019
6e5148d
More accurate HTTP response codes
florisvdg Feb 25, 2019
064737b
Var naming
florisvdg Feb 25, 2019
2068a19
Main route with /v1 prefix
florisvdg Feb 25, 2019
64ac420
Println and exit instead of panic
florisvdg Feb 25, 2019
e50dd28
Mod tidying
florisvdg Feb 26, 2019
2762e04
Namespaced error messages
florisvdg Feb 26, 2019
35a8042
Secret not found error returning 404 instead of 204
florisvdg Feb 26, 2019
42305ed
Command flags consistent with the SecretHub CLI
florisvdg Feb 26, 2019
1414f3e
Merge pull request #1 from keylockerbv/http-server
florisvdg Mar 4, 2019
71a8a41
Renamed to REST proxy and project split into cmd and pkg
florisvdg Mar 5, 2019
41bc150
REST proxy type private with public constructor
florisvdg Mar 5, 2019
1837a96
Renamed mod name
florisvdg Mar 5, 2019
7d3724f
Naming adjustments
florisvdg Mar 6, 2019
12b03e8
Merge pull request #2 from keylockerbv/rest-proxy
florisvdg Mar 6, 2019
68fe920
Configurable host
florisvdg Mar 7, 2019
ef2cfc6
Using open-source SecretHub client
florisvdg Mar 7, 2019
7ad112c
Merge pull request #4 from keylockerbv/oss-client
florisvdg Mar 8, 2019
a1bef3f
Using localhost ip
florisvdg Mar 8, 2019
86cc997
CircleCI config for building
florisvdg Mar 8, 2019
e6d9120
Sprintf verbs
florisvdg Mar 8, 2019
fb89ded
Merge pull request #3 from keylockerbv/configurable-host
florisvdg Mar 8, 2019
62d579f
Using CI Go image 1.12
florisvdg Mar 8, 2019
74aeab6
Merge remote-tracking branch 'origin/develop' into circleci
florisvdg Mar 8, 2019
45bae5f
CI builds for multiple Go versions
florisvdg Mar 8, 2019
e4173ea
Added Goreleaser config
florisvdg Mar 11, 2019
4a92c1a
CircleCI config DRY build steps
florisvdg Mar 11, 2019
c86869a
Fixed CircleCI naming ambiguity
florisvdg Mar 11, 2019
20dbfb5
CircleCI DRY build steps fix
florisvdg Mar 11, 2019
6ea1065
Merge pull request #5 from keylockerbv/circleci
florisvdg Mar 11, 2019
326f32f
Added license
florisvdg Mar 11, 2019
7d55bb2
Merge branch 'develop' into goreleaser
florisvdg Mar 11, 2019
d1421ee
Merge pull request #6 from keylockerbv/goreleaser
florisvdg Mar 11, 2019
f804118
README with installation and development instructions
florisvdg Mar 11, 2019
e5583f3
Note in README about security considerations
florisvdg Mar 11, 2019
8c239c5
Usage and installation instructions
florisvdg Mar 11, 2019
ab68b24
REST docs markdown
florisvdg Mar 11, 2019
252dced
README heading consistency
florisvdg Mar 11, 2019
8ae5029
Merge pull request #8 from keylockerbv/license
mackenbach Mar 12, 2019
9488ef1
Docker docs with env support for credential
florisvdg Mar 12, 2019
e00ea24
Added Dockerfile
florisvdg Mar 12, 2019
3a79d56
Goreleaser Docker support
florisvdg Mar 12, 2019
a54ed72
Docker support for passphrase env var
florisvdg Mar 19, 2019
b16fb27
Create .gitignore
florisvdg Mar 19, 2019
6a0baed
Secrets route with /raw and version v1beta
florisvdg Mar 19, 2019
5423612
Merge pull request #10 from keylockerbv/docker
florisvdg Mar 19, 2019
6b45392
Passphrase arg docs
florisvdg Mar 19, 2019
8a2f6cf
Docs for endpoint updates /v1beta and /raw
florisvdg Mar 19, 2019
d42c7f5
README security considerations
florisvdg Mar 19, 2019
00a0401
Merge pull request #11 from keylockerbv/routes-future-proof
SimonBarendse Mar 19, 2019
50da222
Mention of Terraform backend in README
florisvdg Mar 19, 2019
1e96b10
README beta note
florisvdg Mar 19, 2019
ae270ee
Add DELETE method on /secrets/raw
florisvdg Mar 19, 2019
0368782
DRY error reponses
florisvdg Mar 19, 2019
882fe64
Fix doc typo
florisvdg Mar 19, 2019
d5f87c9
README fixes
florisvdg Mar 20, 2019
8a75399
Fancy README heading
florisvdg Mar 27, 2019
16113f7
README heading italic and fake shields
florisvdg Mar 27, 2019
ec01469
Change README title to HTTP Proxy
florisvdg Mar 27, 2019
cbaf808
README SecretHub pitch below project description
florisvdg Mar 27, 2019
21c8c00
Raw secret delete only deleting specified version
florisvdg Mar 27, 2019
42c4a9b
Merge pull request #13 from keylockerbv/fancy-readme-heading
florisvdg Mar 27, 2019
9f53814
README typo
florisvdg Mar 27, 2019
1540e6f
Merge pull request #12 from keylockerbv/delete-secret
florisvdg Mar 28, 2019
d2e8a0b
Tweak README heading
florisvdg Mar 29, 2019
1359954
Tweak README heading
florisvdg Mar 29, 2019
87b3027
Update project name in README
florisvdg Mar 29, 2019
d31f912
Rename project to secrethub-http-proxy
florisvdg Mar 29, 2019
629f045
Skip 32-bit Darwin builds
florisvdg Mar 29, 2019
126fc39
Include LICENSE in archive
florisvdg Mar 29, 2019
e2f7fd9
Merge pull request #14 from keylockerbv/feature/project-rename
florisvdg Mar 29, 2019
d918660
Merge pull request #15 from keylockerbv/feature/goreleaser-tweaks
florisvdg Mar 29, 2019
582eac5
Add passphrase fallback prompt
florisvdg Apr 1, 2019
0ec9442
Add Docker support for passphrase prompt
florisvdg Apr 1, 2019
db9869d
Mention passphrase prompt in README
florisvdg Apr 1, 2019
1527ed2
Remove fake badges from README
florisvdg Apr 1, 2019
2279cc9
Use golang terminal pkg for password prompt
florisvdg Apr 2, 2019
3408fb5
Remove passphrase Docker env example from README
florisvdg Apr 4, 2019
a42c3c6
Merge pull request #9 from keylockerbv/readme
florisvdg Apr 4, 2019
50a7d15
Merge pull request #16 from keylockerbv/feature/passphrase-prompt
florisvdg Apr 5, 2019
9f90233
Move to github.com/secrethub/secrethub-http-proxy
SimonBarendse Apr 29, 2019
64d0b9b
Set explicit localhost in Docker docs
florisvdg Apr 29, 2019
bf2a463
Merge pull request #18 from keylockerbv/docs/docker-port-forward
SimonBarendse Apr 29, 2019
9eff5a7
Use .zip format for Windows releases
SimonBarendse Apr 29, 2019
c226770
Merge pull request #17 from keylockerbv/feature/secrethub-repo
SimonBarendse Apr 29, 2019
605aace
Merge pull request #19 from keylockerbv/feature/zip-windows
SimonBarendse Apr 29, 2019
edfc75d
Add badges to the readme
SimonBarendse Apr 30, 2019
da9bba6
Merge pull request #20 from secrethub/feature/badges
mackenbach Apr 30, 2019
e9961ac
Build the binary in the Dockerfile
SimonBarendse Apr 30, 2019
81042a3
Add docker build instructions to the README
mackenbach Apr 30, 2019
5af197f
Merge remote-tracking branch 'origin/develop' into feature/dockerfile
mackenbach Apr 30, 2019
8a0a440
Merge pull request #21 from secrethub/feature/dockerfile
SimonBarendse Apr 30, 2019
c89142b
Update secrethub-go to v0.18.0
SimonBarendse Apr 30, 2019
bc6d46b
Merge pull request #22 from secrethub/feature/update-secrethub-go
mackenbach Apr 30, 2019
94a0506
Log errors when writing a response fails
SimonBarendse Apr 30, 2019
de046e1
Merge pull request #24 from secrethub/feature/write-response-errs
SimonBarendse Apr 30, 2019
76654d6
Add a godoc badge to the readme
SimonBarendse Apr 30, 2019
4d869d2
Merge pull request #25 from secrethub/feature/godoc-badge
mackenbach Apr 30, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: 2
build_common: &build
steps:
- checkout
- run: make build
jobs:
build_golang_1.11:
<<: *build
docker:
- image: circleci/golang:1.11
build_golang_1.12:
<<: *build
docker:
- image: circleci/golang:1.12

workflows:
version: 2
build:
jobs:
- build_golang_1.11
- build_golang_1.12
12 changes: 12 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Go
secrethub-http-proxy
*.exe
*.exe~
*.dll
*.so
*.dylib
dist/

# IDE
.vscode
.idea
25 changes: 25 additions & 0 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
builds:
- binary: secrethub-http-proxy
main: ./cmd/secrethub-http-proxy/main.go
env:
- CGO_ENABLED=0
goos:
- linux
- darwin
- windows
goarch:
- amd64
- 386
ignore:
- goos: darwin
goarch: 386

archive:
name_template: "{{ .ProjectName }}-{{ .Os }}-{{ .Arch }}"
replacements:
darwin: macOS
format_overrides:
- goos: windows
format: zip
files:
- LICENSE
21 changes: 21 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
FROM golang:1.12-alpine as build_base
WORKDIR /build
ENV GO111MODULE=on
RUN apk add --update git
COPY go.mod .
COPY go.sum .
RUN go mod download

FROM build_base as build
RUN apk add --update make
COPY . .
RUN make build

FROM alpine
COPY --from=build /build/secrethub-http-proxy /usr/bin/secrethub-http-proxy
RUN apk add --no-cache ca-certificates && \
update-ca-certificates

EXPOSE 8080

CMD secrethub-http-proxy -C ${SECRETHUB_CREDENTIAL:-$(cat /secrethub/credential)} -P ${SECRETHUB_CREDENTIAL_PASSPHRASE:-""} -h 0.0.0.0 -p 8080
201 changes: 201 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
build:
go build ./cmd/secrethub-http-proxy
Loading