Skip to content

Commit 08463c2

Browse files
authored
feat: add OpenIn option to coder_app (#15743)
This PR is the coder/coder part of [the open_in parameter issue](coder/terraform-provider-coder#297) aiming to add a new optional parameter to choose how to open modules. This PR is heavily linked [to this PR](coder/terraform-provider-coder#321). ℹ️ For now, some integrations tests can not be pushed as it requires a release on the terraform-provider repo.
1 parent 3f1795f commit 08463c2

34 files changed

+1075
-800
lines changed

agent/proto/agent.pb.go

Lines changed: 429 additions & 419 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 & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ message WorkspaceApp {
4242
}
4343
Health health = 12;
4444
bool hidden = 13;
45+
string open_in = 14;
4546
}
4647

4748
message WorkspaceAgentScript {

coderd/agentapi/apps_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ func TestBatchUpdateAppHealths(t *testing.T) {
3030
DisplayName: "code-server 1",
3131
HealthcheckUrl: "http://localhost:3000",
3232
Health: database.WorkspaceAppHealthInitializing,
33+
OpenIn: database.WorkspaceAppOpenInSlimWindow,
3334
}
3435
app2 = database.WorkspaceApp{
3536
ID: uuid.New(),
@@ -38,6 +39,7 @@ func TestBatchUpdateAppHealths(t *testing.T) {
3839
DisplayName: "code-server 2",
3940
HealthcheckUrl: "http://localhost:3001",
4041
Health: database.WorkspaceAppHealthHealthy,
42+
OpenIn: database.WorkspaceAppOpenInSlimWindow,
4143
}
4244
)
4345

@@ -163,6 +165,7 @@ func TestBatchUpdateAppHealths(t *testing.T) {
163165
AgentID: agent.ID,
164166
Slug: "code-server-3",
165167
DisplayName: "code-server 3",
168+
OpenIn: database.WorkspaceAppOpenInSlimWindow,
166169
}
167170

168171
dbM := dbmock.NewMockStore(gomock.NewController(t))

coderd/apidoc/docs.go

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

coderd/apidoc/swagger.json

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

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2502,7 +2502,7 @@ func (s *MethodTestSuite) TestSystemFunctions() {
25022502
check.Args(time.Now()).Asserts(rbac.ResourceSystem, policy.ActionRead)
25032503
}))
25042504
s.Run("GetWorkspaceAppsCreatedAfter", s.Subtest(func(db database.Store, check *expects) {
2505-
_ = dbgen.WorkspaceApp(s.T(), db, database.WorkspaceApp{CreatedAt: time.Now().Add(-time.Hour)})
2505+
_ = dbgen.WorkspaceApp(s.T(), db, database.WorkspaceApp{CreatedAt: time.Now().Add(-time.Hour), OpenIn: database.WorkspaceAppOpenInSlimWindow})
25062506
check.Args(time.Now()).Asserts(rbac.ResourceSystem, policy.ActionRead)
25072507
}))
25082508
s.Run("GetWorkspaceResourcesCreatedAfter", s.Subtest(func(db database.Store, check *expects) {
@@ -2551,13 +2551,13 @@ func (s *MethodTestSuite) TestSystemFunctions() {
25512551
aBuild := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: aWs.ID, JobID: uuid.New()})
25522552
aRes := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: aBuild.JobID})
25532553
aAgt := dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: aRes.ID})
2554-
a := dbgen.WorkspaceApp(s.T(), db, database.WorkspaceApp{AgentID: aAgt.ID})
2554+
a := dbgen.WorkspaceApp(s.T(), db, database.WorkspaceApp{AgentID: aAgt.ID, OpenIn: database.WorkspaceAppOpenInSlimWindow})
25552555

25562556
bWs := dbgen.Workspace(s.T(), db, database.WorkspaceTable{})
25572557
bBuild := dbgen.WorkspaceBuild(s.T(), db, database.WorkspaceBuild{WorkspaceID: bWs.ID, JobID: uuid.New()})
25582558
bRes := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: bBuild.JobID})
25592559
bAgt := dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: bRes.ID})
2560-
b := dbgen.WorkspaceApp(s.T(), db, database.WorkspaceApp{AgentID: bAgt.ID})
2560+
b := dbgen.WorkspaceApp(s.T(), db, database.WorkspaceApp{AgentID: bAgt.ID, OpenIn: database.WorkspaceAppOpenInSlimWindow})
25612561

25622562
check.Args([]uuid.UUID{a.AgentID, b.AgentID}).
25632563
Asserts(rbac.ResourceSystem, policy.ActionRead).
@@ -2611,6 +2611,7 @@ func (s *MethodTestSuite) TestSystemFunctions() {
26112611
ID: uuid.New(),
26122612
Health: database.WorkspaceAppHealthDisabled,
26132613
SharingLevel: database.AppSharingLevelOwner,
2614+
OpenIn: database.WorkspaceAppOpenInSlimWindow,
26142615
}).Asserts(rbac.ResourceSystem, policy.ActionCreate)
26152616
}))
26162617
s.Run("InsertWorkspaceResourceMetadata", s.Subtest(func(db database.Store, check *expects) {

coderd/database/dbgen/dbgen.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,7 @@ func WorkspaceApp(t testing.TB, db database.Store, orig database.WorkspaceApp) d
659659
Health: takeFirst(orig.Health, database.WorkspaceAppHealthHealthy),
660660
DisplayOrder: takeFirst(orig.DisplayOrder, 1),
661661
Hidden: orig.Hidden,
662+
OpenIn: takeFirst(orig.OpenIn, database.WorkspaceAppOpenInSlimWindow),
662663
})
663664
require.NoError(t, err, "insert app")
664665
return resource

coderd/database/dbmem/dbmem.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8348,6 +8348,10 @@ func (q *FakeQuerier) InsertWorkspaceApp(_ context.Context, arg database.InsertW
83488348
arg.SharingLevel = database.AppSharingLevelOwner
83498349
}
83508350

8351+
if arg.OpenIn == "" {
8352+
arg.OpenIn = database.WorkspaceAppOpenInSlimWindow
8353+
}
8354+
83518355
// nolint:gosimple
83528356
workspaceApp := database.WorkspaceApp{
83538357
ID: arg.ID,
@@ -8367,6 +8371,7 @@ func (q *FakeQuerier) InsertWorkspaceApp(_ context.Context, arg database.InsertW
83678371
Health: arg.Health,
83688372
Hidden: arg.Hidden,
83698373
DisplayOrder: arg.DisplayOrder,
8374+
OpenIn: arg.OpenIn,
83708375
}
83718376
q.workspaceApps = append(q.workspaceApps, workspaceApp)
83728377
return workspaceApp, nil

coderd/database/dump.sql

Lines changed: 8 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ALTER TABLE workspace_apps DROP COLUMN open_in;
2+
3+
DROP TYPE workspace_app_open_in;

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