Skip to content

Commit 6ea5c6f

Browse files
authored
fix: show user-auth provisioners for all organizations (#16350)
1 parent b256b20 commit 6ea5c6f

File tree

7 files changed

+36
-12
lines changed

7 files changed

+36
-12
lines changed

cli/provisioners_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func TestProvisioners_Golden(t *testing.T) {
9595
Name: "provisioner-1",
9696
CreatedAt: dbtime.Now().Add(1 * time.Second),
9797
LastSeenAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(time.Hour), Valid: true}, // Stale interval can't be adjusted, keep online.
98-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
98+
KeyID: codersdk.ProvisionerKeyUUIDBuiltIn,
9999
Tags: database.StringMap{"owner": "", "scope": "organization", "foo": "bar"},
100100
})
101101
w1 := dbgen.Workspace(t, coderdAPI.Database, database.WorkspaceTable{
@@ -122,7 +122,7 @@ func TestProvisioners_Golden(t *testing.T) {
122122
Name: "provisioner-2",
123123
CreatedAt: dbtime.Now().Add(2 * time.Second),
124124
LastSeenAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(-time.Hour), Valid: true},
125-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
125+
KeyID: codersdk.ProvisionerKeyUUIDBuiltIn,
126126
Tags: database.StringMap{"owner": "", "scope": "organization"},
127127
})
128128
w2 := dbgen.Workspace(t, coderdAPI.Database, database.WorkspaceTable{
@@ -168,7 +168,7 @@ func TestProvisioners_Golden(t *testing.T) {
168168
Name: "provisioner-3",
169169
CreatedAt: dbtime.Now().Add(3 * time.Second),
170170
LastSeenAt: sql.NullTime{Time: coderdAPI.Clock.Now().Add(time.Hour), Valid: true}, // Stale interval can't be adjusted, keep online.
171-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
171+
KeyID: codersdk.ProvisionerKeyUUIDBuiltIn,
172172
Tags: database.StringMap{"owner": "", "scope": "organization"},
173173
})
174174

coderd/database/dbmem/dbmem.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func New() database.Store {
114114
q.defaultProxyIconURL = "/emojis/1f3e1.png"
115115

116116
_, err = q.InsertProvisionerKey(context.Background(), database.InsertProvisionerKeyParams{
117-
ID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
117+
ID: codersdk.ProvisionerKeyUUIDBuiltIn,
118118
OrganizationID: defaultOrg.ID,
119119
CreatedAt: dbtime.Now(),
120120
HashedSecret: []byte{},
@@ -125,7 +125,7 @@ func New() database.Store {
125125
panic(xerrors.Errorf("failed to create built-in provisioner key: %w", err))
126126
}
127127
_, err = q.InsertProvisionerKey(context.Background(), database.InsertProvisionerKeyParams{
128-
ID: uuid.MustParse(codersdk.ProvisionerKeyIDUserAuth),
128+
ID: codersdk.ProvisionerKeyUUIDUserAuth,
129129
OrganizationID: defaultOrg.ID,
130130
CreatedAt: dbtime.Now(),
131131
HashedSecret: []byte{},
@@ -136,7 +136,7 @@ func New() database.Store {
136136
panic(xerrors.Errorf("failed to create user-auth provisioner key: %w", err))
137137
}
138138
_, err = q.InsertProvisionerKey(context.Background(), database.InsertProvisionerKeyParams{
139-
ID: uuid.MustParse(codersdk.ProvisionerKeyIDPSK),
139+
ID: codersdk.ProvisionerKeyUUIDPSK,
140140
OrganizationID: defaultOrg.ID,
141141
CreatedAt: dbtime.Now(),
142142
HashedSecret: []byte{},

coderd/database/dbpurge/dbpurge_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
413413
Version: "1.0.0",
414414
APIVersion: proto.CurrentVersion.String(),
415415
OrganizationID: defaultOrg.ID,
416-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
416+
KeyID: codersdk.ProvisionerKeyUUIDBuiltIn,
417417
})
418418
require.NoError(t, err)
419419
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@@ -426,7 +426,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
426426
Version: "1.0.0",
427427
APIVersion: proto.CurrentVersion.String(),
428428
OrganizationID: defaultOrg.ID,
429-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
429+
KeyID: codersdk.ProvisionerKeyUUIDBuiltIn,
430430
})
431431
require.NoError(t, err)
432432
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@@ -441,7 +441,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
441441
Version: "1.0.0",
442442
APIVersion: proto.CurrentVersion.String(),
443443
OrganizationID: defaultOrg.ID,
444-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
444+
KeyID: codersdk.ProvisionerKeyUUIDBuiltIn,
445445
})
446446
require.NoError(t, err)
447447
_, err = db.UpsertProvisionerDaemon(ctx, database.UpsertProvisionerDaemonParams{
@@ -457,7 +457,7 @@ func TestDeleteOldProvisionerDaemons(t *testing.T) {
457457
Version: "1.0.0",
458458
APIVersion: proto.CurrentVersion.String(),
459459
OrganizationID: defaultOrg.ID,
460-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
460+
KeyID: codersdk.ProvisionerKeyUUIDBuiltIn,
461461
})
462462
require.NoError(t, err)
463463

coderd/provisionerdserver/provisionerdserver_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2272,7 +2272,7 @@ func setup(t *testing.T, ignoreLogErrors bool, ov *overrides) (proto.DRPCProvisi
22722272
Version: buildinfo.Version(),
22732273
APIVersion: proto.CurrentVersion.String(),
22742274
OrganizationID: defOrg.ID,
2275-
KeyID: uuid.MustParse(codersdk.ProvisionerKeyIDBuiltIn),
2275+
KeyID: codersdk.ProvisionerKeyUUIDBuiltIn,
22762276
})
22772277
require.NoError(t, err)
22782278

codersdk/provisionerdaemons.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,12 @@ const (
352352
ProvisionerKeyIDPSK = "00000000-0000-0000-0000-000000000003"
353353
)
354354

355+
var (
356+
ProvisionerKeyUUIDBuiltIn = uuid.MustParse(ProvisionerKeyIDBuiltIn)
357+
ProvisionerKeyUUIDUserAuth = uuid.MustParse(ProvisionerKeyIDUserAuth)
358+
ProvisionerKeyUUIDPSK = uuid.MustParse(ProvisionerKeyIDPSK)
359+
)
360+
355361
const (
356362
ProvisionerKeyNameBuiltIn = "built-in"
357363
ProvisionerKeyNameUserAuth = "user-auth"

enterprise/coderd/provisionerdaemons_test.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -782,10 +782,14 @@ func TestGetProvisionerDaemons(t *testing.T) {
782782
pkDaemons, err := orgAdmin.ListProvisionerKeyDaemons(ctx, org.ID)
783783
require.NoError(t, err)
784784

785-
require.Len(t, pkDaemons, 1)
785+
require.Len(t, pkDaemons, 2)
786786
require.Len(t, pkDaemons[0].Daemons, 1)
787787
assert.Equal(t, keys[0].ID, pkDaemons[0].Key.ID)
788788
assert.Equal(t, keys[0].Name, pkDaemons[0].Key.Name)
789+
// user-auth provisioners
790+
require.Len(t, pkDaemons[1].Daemons, 0)
791+
assert.Equal(t, codersdk.ProvisionerKeyUUIDUserAuth, pkDaemons[1].Key.ID)
792+
assert.Equal(t, codersdk.ProvisionerKeyNameUserAuth, pkDaemons[1].Key.Name)
789793

790794
assert.Equal(t, daemonName, pkDaemons[0].Daemons[0].Name)
791795
assert.Equal(t, buildinfo.Version(), pkDaemons[0].Daemons[0].Version)

enterprise/coderd/provisionerkeys.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,20 @@ func (api *API) provisionerKeyDaemons(rw http.ResponseWriter, r *http.Request) {
137137
}
138138
sdkKeys := convertProvisionerKeys(pks)
139139

140+
// For the default organization, we insert three rows for the special
141+
// provisioner key types (built-in, user-auth, and psk). We _don't_ insert
142+
// those into the database for any other org, but we still need to include the
143+
// user-auth key in this list, so we just insert it manually.
144+
if !slices.ContainsFunc(sdkKeys, func(key codersdk.ProvisionerKey) bool {
145+
return key.ID == codersdk.ProvisionerKeyUUIDUserAuth
146+
}) {
147+
sdkKeys = append(sdkKeys, codersdk.ProvisionerKey{
148+
ID: codersdk.ProvisionerKeyUUIDUserAuth,
149+
Name: codersdk.ProvisionerKeyNameUserAuth,
150+
Tags: map[string]string{},
151+
})
152+
}
153+
140154
daemons, err := api.Database.GetProvisionerDaemonsByOrganization(ctx, database.GetProvisionerDaemonsByOrganizationParams{OrganizationID: organization.ID})
141155
if err != nil {
142156
httpapi.InternalServerError(rw, err)

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy