MCPcopy Index your code
hub / github.com/coder/coder / postUserSecret

Method postUserSecret

coderd/usersecrets.go:46–98  ·  view source on GitHub ↗

@Summary Create a new user secret @ID create-a-new-user-secret @Security CoderSessionToken @Accept json @Produce json @Tags Secrets @Param user path string true "User ID, username, or me" @Param request body codersdk.CreateUserSecretRequest true "Create secret request" @Success 201 {object} codersdk

(rw http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

44// @Success 201 {object} codersdk.UserSecret
45// @Router /api/v2/users/{user}/secrets [post]
46func (api *API) postUserSecret(rw http.ResponseWriter, r *http.Request) {
47 var (
48 ctx = r.Context()
49 user = httpmw.UserParam(r)
50 auditor = api.Auditor.Load()
51 aReq, commitAudit = audit.InitRequest[database.UserSecret](rw, &audit.RequestParams{
52 Audit: *auditor,
53 Log: api.Logger,
54 Request: r,
55 Action: database.AuditActionCreate,
56 })
57 )
58 defer commitAudit()
59
60 var req codersdk.CreateUserSecretRequest
61 if !httpapi.Read(ctx, rw, r, &req) {
62 return
63 }
64
65 if validations := createUserSecretValidationErrors(req); len(validations) > 0 {
66 writeUserSecretValidationErrors(ctx, rw, http.StatusBadRequest, validations)
67 return
68 }
69
70 secret, err := api.Database.CreateUserSecret(ctx, database.CreateUserSecretParams{
71 ID: uuid.New(),
72 UserID: user.ID,
73 Name: req.Name,
74 Description: req.Description,
75 Value: req.Value,
76 ValueKeyID: sql.NullString{},
77 EnvName: req.EnvName,
78 FilePath: req.FilePath,
79 })
80 if err != nil {
81 if validations := userSecretConflictValidationErrors(err); len(validations) > 0 {
82 writeUserSecretValidationErrors(ctx, rw, http.StatusConflict, validations)
83 return
84 }
85 if resp, ok := userSecretLimitResponse(err); ok {
86 httpapi.Write(ctx, rw, http.StatusBadRequest, resp)
87 return
88 }
89 httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
90 Message: "Internal error creating secret.",
91 Detail: err.Error(),
92 })
93 return
94 }
95 aReq.New = secret
96
97 httpapi.Write(ctx, rw, http.StatusCreated, db2sdk.UserSecretFromFull(secret))
98}
99
100// @Summary List user secrets
101// @ID list-user-secrets

Callers

nothing calls this directly

Calls 14

UserParamFunction · 0.92
InitRequestFunction · 0.92
ReadFunction · 0.92
WriteFunction · 0.92
UserSecretFromFullFunction · 0.92
userSecretLimitResponseFunction · 0.85
ContextMethod · 0.65
CreateUserSecretMethod · 0.65
NewMethod · 0.65

Tested by

no test coverage detected