Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitd8c4401

Browse files
authored
feat: Remove organization and user scoped parameters (#2007)
* feat: Remove organization and user scoped parametersSigned-off-by: Spike Curtis <spike@coder.com>* Fixup dump.sqlSigned-off-by: Spike Curtis <spike@coder.com>* Fix dump.sql againSigned-off-by: Spike Curtis <spike@coder.com>* Fix down migrationSigned-off-by: Spike Curtis <spike@coder.com>
1 parent582d636 commitd8c4401

File tree

11 files changed

+90
-112
lines changed

11 files changed

+90
-112
lines changed

‎coderd/coderd_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -61,14 +61,6 @@ func TestAuthorizeAllEndpoints(t *testing.T) {
6161
organization,err:=client.Organization(ctx,admin.OrganizationID)
6262
require.NoError(t,err,"fetch org")
6363

64-
organizationParam,err:=client.CreateParameter(ctx,codersdk.ParameterOrganization,organization.ID, codersdk.CreateParameterRequest{
65-
Name:"test-param",
66-
SourceValue:"hello world",
67-
SourceScheme:codersdk.ParameterSourceSchemeData,
68-
DestinationScheme:codersdk.ParameterDestinationSchemeProvisionerVariable,
69-
})
70-
require.NoError(t,err,"create org param")
71-
7264
// Setup some data in the database.
7365
version:=coderdtest.CreateTemplateVersion(t,client,admin.OrganizationID,&echo.Responses{
7466
Parse:echo.ParseComplete,
@@ -101,6 +93,14 @@ func TestAuthorizeAllEndpoints(t *testing.T) {
10193
})
10294
require.NoError(t,err,"template version dry-run")
10395

96+
templateParam,err:=client.CreateParameter(ctx,codersdk.ParameterTemplate,template.ID, codersdk.CreateParameterRequest{
97+
Name:"test-param",
98+
SourceValue:"hello world",
99+
SourceScheme:codersdk.ParameterSourceSchemeData,
100+
DestinationScheme:codersdk.ParameterDestinationSchemeProvisionerVariable,
101+
})
102+
require.NoError(t,err,"create template param")
103+
104104
// Always fail auth from this point forward
105105
authorizer.AlwaysReturn=rbac.ForbiddenWithInternal(xerrors.New("fake implementation"),nil,nil)
106106

@@ -294,15 +294,15 @@ func TestAuthorizeAllEndpoints(t *testing.T) {
294294

295295
"POST:/api/v2/parameters/{scope}/{id}": {
296296
AssertAction:rbac.ActionUpdate,
297-
AssertObject:rbac.ResourceOrganization.WithID(organization.ID.String()),
297+
AssertObject:rbac.ResourceTemplate.WithID(template.ID.String()),
298298
},
299299
"GET:/api/v2/parameters/{scope}/{id}": {
300300
AssertAction:rbac.ActionRead,
301-
AssertObject:rbac.ResourceOrganization.WithID(organization.ID.String()),
301+
AssertObject:rbac.ResourceTemplate.WithID(template.ID.String()),
302302
},
303303
"DELETE:/api/v2/parameters/{scope}/{id}/{name}": {
304304
AssertAction:rbac.ActionUpdate,
305-
AssertObject:rbac.ResourceOrganization.WithID(organization.ID.String()),
305+
AssertObject:rbac.ResourceTemplate.WithID(template.ID.String()),
306306
},
307307
"GET:/api/v2/organizations/{organization}/templates/{templatename}": {
308308
AssertAction:rbac.ActionRead,
@@ -377,9 +377,9 @@ func TestAuthorizeAllEndpoints(t *testing.T) {
377377
route=strings.ReplaceAll(route,"{templateversion}",version.ID.String())
378378
route=strings.ReplaceAll(route,"{templateversiondryrun}",templateVersionDryRun.ID.String())
379379
route=strings.ReplaceAll(route,"{templatename}",template.Name)
380-
// Only checkingorg scoped params here
381-
route=strings.ReplaceAll(route,"{scope}",string(organizationParam.Scope))
382-
route=strings.ReplaceAll(route,"{id}",organizationParam.ScopeID.String())
380+
// Only checkingtemplate scoped params here
381+
route=strings.ReplaceAll(route,"{scope}",string(templateParam.Scope))
382+
route=strings.ReplaceAll(route,"{id}",templateParam.ScopeID.String())
383383

384384
resp,err:=client.Request(context.Background(),method,route,nil)
385385
require.NoError(t,err,"do req")

‎coderd/database/dump.sql

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
CREATETYPEold_parameter_scopeAS ENUM (
2+
'organization',
3+
'template',
4+
'import_job',
5+
'user',
6+
'workspace'
7+
);
8+
ALTERTABLE parameter_values ALTER COLUMN scope TYPE old_parameter_scope USING (scope::text::old_parameter_scope);
9+
DROPTYPE parameter_scope;
10+
ALTERTYPE old_parameter_scope RENAME TO parameter_scope;
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
-- We no longer support org or user scoped values, so delete them
2+
DELETEFROM parameter_valuesWHERE scopeIN ('organization','user');
3+
4+
CREATETYPEnew_parameter_scopeAS ENUM (
5+
'template',
6+
'import_job',
7+
'workspace'
8+
);
9+
ALTERTABLE parameter_values ALTER COLUMN scope TYPE new_parameter_scope USING (scope::text::new_parameter_scope);
10+
DROPTYPE parameter_scope;
11+
ALTERTYPE new_parameter_scope RENAME TO parameter_scope;

‎coderd/database/models.go

Lines changed: 3 additions & 5 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎coderd/parameter/compute.go

Lines changed: 2 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,6 @@ func Compute(ctx context.Context, db database.Store, scope ComputeScope, options
6060
compute.parameterSchemasByName[parameterSchema.Name]=parameterSchema
6161
}
6262

63-
// Organization parameters come first!
64-
err=compute.injectScope(ctx, database.GetParameterValuesByScopeParams{
65-
Scope:database.ParameterScopeOrganization,
66-
ScopeID:scope.OrganizationID,
67-
})
68-
iferr!=nil {
69-
returnnil,err
70-
}
71-
7263
// Job parameters come second!
7364
err=compute.injectScope(ctx, database.GetParameterValuesByScopeParams{
7465
Scope:database.ParameterScopeImportJob,
@@ -123,15 +114,6 @@ func Compute(ctx context.Context, db database.Store, scope ComputeScope, options
123114
}
124115
}
125116

126-
// User parameters come fourth!
127-
err=compute.injectScope(ctx, database.GetParameterValuesByScopeParams{
128-
Scope:database.ParameterScopeUser,
129-
ScopeID:scope.UserID,
130-
})
131-
iferr!=nil {
132-
returnnil,err
133-
}
134-
135117
ifscope.WorkspaceID.Valid {
136118
// Workspace parameters come last!
137119
err=compute.injectScope(ctx, database.GetParameterValuesByScopeParams{
@@ -194,9 +176,8 @@ func (c *compute) injectSingle(scopedParameter database.ParameterValue, defaultV
194176
_,hasParameterValue:=c.computedParameterByName[scopedParameter.Name]
195177
ifhasParameterValue {
196178
if!parameterSchema.AllowOverrideSource&&
197-
// Users and workspaces cannot override anything on a template!
198-
(scopedParameter.Scope==database.ParameterScopeUser||
199-
scopedParameter.Scope==database.ParameterScopeWorkspace) {
179+
// Workspaces cannot override anything on a template!
180+
scopedParameter.Scope==database.ParameterScopeWorkspace {
200181
returnnil
201182
}
202183
}

‎coderd/parameter/compute_test.go

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -92,42 +92,6 @@ func TestCompute(t *testing.T) {
9292
require.Equal(t,computedValue.SourceValue,parameterSchema.DefaultSourceValue)
9393
})
9494

95-
t.Run("OverrideOrganizationWithImportJob",func(t*testing.T) {
96-
t.Parallel()
97-
db:=databasefake.New()
98-
scope:=generateScope()
99-
parameterSchema:=generateParameter(t,db,parameterOptions{
100-
TemplateImportJobID:scope.TemplateImportJobID,
101-
})
102-
_,err:=db.InsertParameterValue(context.Background(), database.InsertParameterValueParams{
103-
ID:uuid.New(),
104-
Name:parameterSchema.Name,
105-
Scope:database.ParameterScopeOrganization,
106-
ScopeID:scope.OrganizationID,
107-
SourceScheme:database.ParameterSourceSchemeData,
108-
SourceValue:"firstnop",
109-
DestinationScheme:database.ParameterDestinationSchemeEnvironmentVariable,
110-
})
111-
require.NoError(t,err)
112-
113-
value,err:=db.InsertParameterValue(context.Background(), database.InsertParameterValueParams{
114-
ID:uuid.New(),
115-
Name:parameterSchema.Name,
116-
Scope:database.ParameterScopeImportJob,
117-
ScopeID:scope.TemplateImportJobID,
118-
SourceScheme:database.ParameterSourceSchemeData,
119-
SourceValue:"secondnop",
120-
DestinationScheme:database.ParameterDestinationSchemeEnvironmentVariable,
121-
})
122-
require.NoError(t,err)
123-
124-
computed,err:=parameter.Compute(context.Background(),db,scope,nil)
125-
require.NoError(t,err)
126-
require.Len(t,computed,1)
127-
require.Equal(t,false,computed[0].DefaultSourceValue)
128-
require.Equal(t,value.SourceValue,computed[0].SourceValue)
129-
})
130-
13195
t.Run("TemplateOverridesTemplateDefault",func(t*testing.T) {
13296
t.Parallel()
13397
db:=databasefake.New()

‎coderd/parameters.go

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -210,16 +210,6 @@ func (api *API) parameterRBACResource(rw http.ResponseWriter, r *http.Request, s
210210
resource,err=api.Database.GetWorkspaceByID(ctx,scopeID)
211211
casedatabase.ParameterScopeTemplate:
212212
resource,err=api.Database.GetTemplateByID(ctx,scopeID)
213-
casedatabase.ParameterScopeOrganization:
214-
resource,err=api.Database.GetOrganizationByID(ctx,scopeID)
215-
casedatabase.ParameterScopeUser:
216-
user,userErr:=api.Database.GetUserByID(ctx,scopeID)
217-
err=userErr
218-
iferr!=nil {
219-
// Use the userdata resource instead of the user. This way users
220-
// can add user scoped params.
221-
resource=rbac.ResourceUserData.WithID(user.ID.String()).WithOwner(user.ID.String())
222-
}
223213
casedatabase.ParameterScopeImportJob:
224214
// This scope does not make sense from this api.
225215
// ImportJob params are created with the job, and the job id cannot
@@ -246,12 +236,8 @@ func (api *API) parameterRBACResource(rw http.ResponseWriter, r *http.Request, s
246236
funcreadScopeAndID(rw http.ResponseWriter,r*http.Request) (database.ParameterScope, uuid.UUID,bool) {
247237
varscope database.ParameterScope
248238
switchchi.URLParam(r,"scope") {
249-
casestring(codersdk.ParameterOrganization):
250-
scope=database.ParameterScopeOrganization
251239
casestring(codersdk.ParameterTemplate):
252240
scope=database.ParameterScopeTemplate
253-
casestring(codersdk.ParameterUser):
254-
scope=database.ParameterScopeUser
255241
casestring(codersdk.ParameterWorkspace):
256242
scope=database.ParameterScopeWorkspace
257243
default:

‎coderd/parameters_test.go

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package coderd_test
22

33
import (
44
"context"
5+
"github.com/coder/coder/provisioner/echo"
6+
"github.com/coder/coder/provisionersdk/proto"
57
"net/http"
68
"testing"
79

@@ -32,7 +34,8 @@ func TestPostParameter(t *testing.T) {
3234
t.Parallel()
3335
client:=coderdtest.New(t,nil)
3436
user:=coderdtest.CreateFirstUser(t,client)
35-
_,err:=client.CreateParameter(context.Background(),codersdk.ParameterOrganization,user.OrganizationID, codersdk.CreateParameterRequest{
37+
template:=createTemplate(t,client,user)
38+
_,err:=client.CreateParameter(context.Background(),codersdk.ParameterTemplate,template.ID, codersdk.CreateParameterRequest{
3639
Name:"example",
3740
SourceValue:"tomato",
3841
SourceScheme:codersdk.ParameterSourceSchemeData,
@@ -45,15 +48,16 @@ func TestPostParameter(t *testing.T) {
4548
t.Parallel()
4649
client:=coderdtest.New(t,nil)
4750
user:=coderdtest.CreateFirstUser(t,client)
48-
_,err:=client.CreateParameter(context.Background(),codersdk.ParameterOrganization,user.OrganizationID, codersdk.CreateParameterRequest{
51+
template:=createTemplate(t,client,user)
52+
_,err:=client.CreateParameter(context.Background(),codersdk.ParameterTemplate,template.ID, codersdk.CreateParameterRequest{
4953
Name:"example",
5054
SourceValue:"tomato",
5155
SourceScheme:codersdk.ParameterSourceSchemeData,
5256
DestinationScheme:codersdk.ParameterDestinationSchemeProvisionerVariable,
5357
})
5458
require.NoError(t,err)
5559

56-
_,err=client.CreateParameter(context.Background(),codersdk.ParameterOrganization,user.OrganizationID, codersdk.CreateParameterRequest{
60+
_,err=client.CreateParameter(context.Background(),codersdk.ParameterTemplate,template.ID, codersdk.CreateParameterRequest{
5761
Name:"example",
5862
SourceValue:"tomato",
5963
SourceScheme:codersdk.ParameterSourceSchemeData,
@@ -71,21 +75,23 @@ func TestParameters(t *testing.T) {
7175
t.Parallel()
7276
client:=coderdtest.New(t,nil)
7377
user:=coderdtest.CreateFirstUser(t,client)
74-
_,err:=client.Parameters(context.Background(),codersdk.ParameterOrganization,user.OrganizationID)
78+
template:=createTemplate(t,client,user)
79+
_,err:=client.Parameters(context.Background(),codersdk.ParameterTemplate,template.ID)
7580
require.NoError(t,err)
7681
})
7782
t.Run("List",func(t*testing.T) {
7883
t.Parallel()
7984
client:=coderdtest.New(t,nil)
8085
user:=coderdtest.CreateFirstUser(t,client)
81-
_,err:=client.CreateParameter(context.Background(),codersdk.ParameterOrganization,user.OrganizationID, codersdk.CreateParameterRequest{
86+
template:=createTemplate(t,client,user)
87+
_,err:=client.CreateParameter(context.Background(),codersdk.ParameterTemplate,template.ID, codersdk.CreateParameterRequest{
8288
Name:"example",
8389
SourceValue:"tomato",
8490
SourceScheme:codersdk.ParameterSourceSchemeData,
8591
DestinationScheme:codersdk.ParameterDestinationSchemeProvisionerVariable,
8692
})
8793
require.NoError(t,err)
88-
params,err:=client.Parameters(context.Background(),codersdk.ParameterOrganization,user.OrganizationID)
94+
params,err:=client.Parameters(context.Background(),codersdk.ParameterTemplate,template.ID)
8995
require.NoError(t,err)
9096
require.Len(t,params,1)
9197
})
@@ -97,7 +103,8 @@ func TestDeleteParameter(t *testing.T) {
97103
t.Parallel()
98104
client:=coderdtest.New(t,nil)
99105
user:=coderdtest.CreateFirstUser(t,client)
100-
err:=client.DeleteParameter(context.Background(),codersdk.ParameterOrganization,user.OrganizationID,"something")
106+
template:=createTemplate(t,client,user)
107+
err:=client.DeleteParameter(context.Background(),codersdk.ParameterTemplate,template.ID,"something")
101108
varapiErr*codersdk.Error
102109
require.ErrorAs(t,err,&apiErr)
103110
require.Equal(t,http.StatusNotFound,apiErr.StatusCode())
@@ -106,14 +113,39 @@ func TestDeleteParameter(t *testing.T) {
106113
t.Parallel()
107114
client:=coderdtest.New(t,nil)
108115
user:=coderdtest.CreateFirstUser(t,client)
109-
param,err:=client.CreateParameter(context.Background(),codersdk.ParameterOrganization,user.OrganizationID, codersdk.CreateParameterRequest{
116+
template:=createTemplate(t,client,user)
117+
param,err:=client.CreateParameter(context.Background(),codersdk.ParameterTemplate,template.ID, codersdk.CreateParameterRequest{
110118
Name:"example",
111119
SourceValue:"tomato",
112120
SourceScheme:codersdk.ParameterSourceSchemeData,
113121
DestinationScheme:codersdk.ParameterDestinationSchemeProvisionerVariable,
114122
})
115123
require.NoError(t,err)
116-
err=client.DeleteParameter(context.Background(),codersdk.ParameterOrganization,user.OrganizationID,param.Name)
124+
err=client.DeleteParameter(context.Background(),codersdk.ParameterTemplate,template.ID,param.Name)
117125
require.NoError(t,err)
118126
})
119127
}
128+
129+
funccreateTemplate(t*testing.T,client*codersdk.Client,user codersdk.CreateFirstUserResponse) codersdk.Template {
130+
instanceID:="instanceidentifier"
131+
version:=coderdtest.CreateTemplateVersion(t,client,user.OrganizationID,&echo.Responses{
132+
Parse:echo.ParseComplete,
133+
Provision: []*proto.Provision_Response{{
134+
Type:&proto.Provision_Response_Complete{
135+
Complete:&proto.Provision_Complete{
136+
Resources: []*proto.Resource{{
137+
Name:"somename",
138+
Type:"someinstance",
139+
Agents: []*proto.Agent{{
140+
Auth:&proto.Agent_InstanceId{
141+
InstanceId:instanceID,
142+
},
143+
}},
144+
}},
145+
},
146+
},
147+
}},
148+
})
149+
template:=coderdtest.CreateTemplate(t,client,user.OrganizationID,version.ID)
150+
returntemplate
151+
}

‎codersdk/parameters.go

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@ import (
1414
typeParameterScopestring
1515

1616
const (
17-
ParameterOrganizationParameterScope="organization"
18-
ParameterTemplateParameterScope="template"
19-
ParameterUserParameterScope="user"
20-
ParameterWorkspaceParameterScope="workspace"
17+
ParameterTemplateParameterScope="template"
18+
ParameterWorkspaceParameterScope="workspace"
2119
)
2220

2321
typeParameterSourceSchemestring

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp