Content-Length: 468805 | pFad | http://github.com/coder/coder/commit/ed1d05d1563baefd6f4c7bcd8c0d99b30e18f258

17 feat: pass secrets to agent via Manifest · coder/coder@ed1d05d · GitHub
Skip to content

Commit ed1d05d

Browse files
feat: pass secrets to agent via Manifest
1 parent a1ee752 commit ed1d05d

File tree

6 files changed

+736
-714
lines changed

6 files changed

+736
-714
lines changed

agent/agent.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,6 +1410,8 @@ func (a *agent) updateCommandEnv(current []string) (updated []string, err error)
14101410
}
14111411
envs["PATH"] = fmt.Sprintf("%s%c%s", a.scriptRunner.ScriptBinDir(), filepath.ListSeparator, envs["PATH"])
14121412

1413+
//for _, manifest.
1414+
14131415
for k, v := range envs {
14141416
updated = append(updated, fmt.Sprintf("%s=%s", k, v))
14151417
}

agent/proto/agent.pb.go

Lines changed: 700 additions & 709 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

agent/proto/agent.proto

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ message Manifest {
9999
repeated WorkspaceAgentMetadata.Description metadata = 12;
100100
repeated WorkspaceAgentDevcontainer devcontainers = 17;
101101

102-
map<string,Secret> user_secrets = 19;
102+
repeated Secret user_secrets = 19;
103103
}
104104

105105
message Secret {

coderd/agentapi/manifest.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,8 @@ func (a *ManifestAPI) GetManifest(ctx context.Context, _ *agentproto.GetManifest
9797
return nil, xerrors.Errorf("fetching workspace agent data: %w", err)
9898
}
9999

100+
_ = userSecrets
101+
100102
appSlug := appurl.ApplicationURL{
101103
AppSlugOrPort: "{{port}}",
102104
AgentName: workspaceAgent.Name,
@@ -153,10 +155,10 @@ func (a *ManifestAPI) GetManifest(ctx context.Context, _ *agentproto.GetManifest
153155
}, nil
154156
}
155157

156-
func dbUserSecretsToProto(userSecrets []database.UserSecret) map[string]*agentproto.Secret {
157-
userSecretsProto := make(map[string]*agentproto.Secret)
158-
for _, userSecret := range userSecrets {
159-
userSecretsProto[userSecret.Name] = &agentproto.Secret{
158+
func dbUserSecretsToProto(userSecrets []database.UserSecret) []*agentproto.Secret {
159+
userSecretsProto := make([]*agentproto.Secret, 0)
160+
for i, userSecret := range userSecrets {
161+
userSecretsProto[i] = &agentproto.Secret{
160162
Name: userSecret.Name,
161163
EnvName: userSecret.EnvName,
162164
FilePath: userSecret.FilePath,

codersdk/agentsdk/agentsdk.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ type Manifest struct {
114114
Metadata []codersdk.WorkspaceAgentMetadataDescription `json:"metadata"`
115115
Scripts []codersdk.WorkspaceAgentScript `json:"scripts"`
116116
Devcontainers []codersdk.WorkspaceAgentDevcontainer `json:"devcontainers"`
117+
UserSecrets []codersdk.UserSecret `json:"user_secrets"`
117118
}
118119

119120
type LogSource struct {

codersdk/agentsdk/convert.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,11 @@ func ManifestFromProto(manifest *proto.Manifest) (Manifest, error) {
4343
if err != nil {
4444
return Manifest{}, xerrors.Errorf("error converting workspace agent devcontainers: %w", err)
4545
}
46+
userSecrets, err := SecretsFromProto(manifest.UserSecrets)
47+
if err != nil {
48+
return Manifest{}, xerrors.Errorf("error converting workspace agent devcontainers: %w", err)
49+
}
50+
4651
return Manifest{
4752
ParentID: parentID,
4853
AgentID: agentID,
@@ -62,6 +67,7 @@ func ManifestFromProto(manifest *proto.Manifest) (Manifest, error) {
6267
DisableDirectConnections: manifest.DisableDirectConnections,
6368
Metadata: MetadataDescriptionsFromProto(manifest.Metadata),
6469
Devcontainers: devcontainers,
70+
UserSecrets: userSecrets,
6571
}, nil
6672
}
6773

@@ -449,3 +455,23 @@ func ProtoFromDevcontainer(dc codersdk.WorkspaceAgentDevcontainer) *proto.Worksp
449455
ConfigPath: dc.ConfigPath,
450456
}
451457
}
458+
459+
func SecretsFromProto(pss []*proto.Secret) ([]codersdk.UserSecret, error) {
460+
ret := make([]codersdk.UserSecret, len(pss))
461+
for i, ps := range pss {
462+
secret, err := SecretFromProto(ps)
463+
if err != nil {
464+
return nil, xerrors.Errorf("parse secret %v: %w", i, err)
465+
}
466+
ret[i] = secret
467+
}
468+
return ret, nil
469+
}
470+
471+
func SecretFromProto(ps *proto.Secret) (codersdk.UserSecret, error) {
472+
return codersdk.UserSecret{
473+
Name: ps.Name,
474+
EnvName: ps.EnvName,
475+
FilePath: ps.FilePath,
476+
}, nil
477+
}

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/coder/coder/commit/ed1d05d1563baefd6f4c7bcd8c0d99b30e18f258

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy