Skip to content

Commit c5f7710

Browse files
committed
Some small adjustments and creating the SetSecret endpoint.
1 parent cbe5cac commit c5f7710

File tree

3 files changed

+28
-44
lines changed

3 files changed

+28
-44
lines changed

frontend/client/views/vault/index.vue

+2-4
Original file line numberDiff line numberDiff line change
@@ -286,16 +286,15 @@ export default {
286286
return
287287
}
288288
289+
this.selectSecret.value = null
289290
this.$http
290-
.post('/api/v1/secret/update', this.selectSecret)
291+
.put('/api/v1/secret/update', this.selectSecret)
291292
.then(response => {
292293
openNotification({
293294
title: 'Secret changed!',
294295
message: 'Secret has been successful changed.',
295296
type: 'success'
296297
})
297-
this.selectSecret.newvalue = ''
298-
this.selectSecret.newvalueconf = ''
299298
})
300299
.catch(error => {
301300
this.$onError(error)
@@ -346,7 +345,6 @@ export default {
346345
message: 'Secret has been successfully added.',
347346
type: 'success'
348347
})
349-
this.selectSecret.value = null
350348
this.fetchData()
351349
})
352350
.catch(error => {

handlers/handler.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ func InitHandlers(e *echo.Echo, store *store.Store, scheduler *scheduler.Schedul
9494
// Secrets
9595
e.GET(p+"secrets", ListSecrets)
9696
e.DELETE(p+"secret/:key", RemoveSecret)
97-
e.POST(p+"secret", AddSecret)
98-
e.POST(p+"secret/update", UpdateSecret)
97+
e.POST(p+"secret", SetSecret)
98+
e.PUT(p+"secret/update", SetSecret)
9999

100100
// Middleware
101101
e.Use(middleware.Recover())

handlers/vault.go

+24-38
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"github.com/labstack/echo"
99
)
1010

11-
type secret struct {
11+
type addSecret struct {
1212
Key string `json:"key"`
1313
Value string `json:"value"`
1414
}
@@ -18,39 +18,25 @@ type updateSecret struct {
1818
Value string `json:"newvalue"`
1919
}
2020

21-
// UpdateSecret updates a secret using the vault.
22-
func UpdateSecret(c echo.Context) error {
23-
s := new(updateSecret)
24-
err := c.Bind(s)
25-
if err != nil {
26-
return c.String(http.StatusBadRequest, err.Error())
27-
}
28-
cert, err := security.InitCA()
29-
if err != nil {
30-
return c.String(http.StatusInternalServerError, err.Error())
31-
}
32-
v, err := security.NewVault(cert)
33-
if err != nil {
34-
return c.String(http.StatusInternalServerError, err.Error())
35-
}
36-
err = v.LoadSecrets()
37-
if err != nil {
38-
return c.String(http.StatusInternalServerError, err.Error())
39-
}
40-
v.Add(s.Key, []byte(s.Value))
41-
err = v.SaveSecrets()
42-
if err != nil {
43-
return c.String(http.StatusInternalServerError, err.Error())
44-
}
45-
return c.String(http.StatusOK, "secret successfully updated")
46-
}
47-
48-
// AddSecret creates a secret using the vault.
49-
func AddSecret(c echo.Context) error {
50-
s := new(secret)
51-
err := c.Bind(s)
52-
if err != nil {
53-
return c.String(http.StatusBadRequest, err.Error())
21+
// SetSecret creates or updates a given secret
22+
func SetSecret(c echo.Context) error {
23+
var key, value string
24+
if c.Request().Method == "POST" {
25+
s := new(addSecret)
26+
err := c.Bind(s)
27+
if err != nil {
28+
return c.String(http.StatusBadRequest, err.Error())
29+
}
30+
key = s.Key
31+
value = s.Value
32+
} else if c.Request().Method == "PUT" {
33+
s := new(updateSecret)
34+
err := c.Bind(s)
35+
if err != nil {
36+
return c.String(http.StatusBadRequest, err.Error())
37+
}
38+
key = s.Key
39+
value = s.Value
5440
}
5541
cert, err := security.InitCA()
5642
if err != nil {
@@ -64,17 +50,17 @@ func AddSecret(c echo.Context) error {
6450
if err != nil {
6551
return c.String(http.StatusInternalServerError, err.Error())
6652
}
67-
v.Add(s.Key, []byte(s.Value))
53+
v.Add(key, []byte(value))
6854
err = v.SaveSecrets()
6955
if err != nil {
7056
return c.String(http.StatusInternalServerError, err.Error())
7157
}
72-
return c.String(http.StatusCreated, "secret successfully added")
58+
return c.String(http.StatusOK, "secret successfully set")
7359
}
7460

7561
// ListSecrets retrieves all secrets from the vault.
7662
func ListSecrets(c echo.Context) error {
77-
secrets := make([]secret, 0)
63+
secrets := make([]addSecret, 0)
7864
cert, err := security.InitCA()
7965
if err != nil {
8066
return c.String(http.StatusInternalServerError, err.Error())
@@ -89,7 +75,7 @@ func ListSecrets(c echo.Context) error {
8975
}
9076
kvs := v.GetAll()
9177
for _, k := range kvs {
92-
s := secret{Key: k, Value: "**********"}
78+
s := addSecret{Key: k, Value: "**********"}
9379
secrets = append(secrets, s)
9480
}
9581
return c.JSON(http.StatusOK, secrets)

0 commit comments

Comments
 (0)