Skip to content

Commit cd1e088

Browse files
authored
feat: add --derp-only flag to wsproxy (#8850)
1 parent d6e9870 commit cd1e088

22 files changed

+233
-39
lines changed

coderd/apidoc/docs.go

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/apidoc/swagger.json

+7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbfake/dbfake.go

+2
Original file line numberDiff line numberDiff line change
@@ -4164,6 +4164,7 @@ func (q *FakeQuerier) InsertWorkspaceProxy(_ context.Context, arg database.Inser
41644164
DisplayName: arg.DisplayName,
41654165
Icon: arg.Icon,
41664166
DerpEnabled: arg.DerpEnabled,
4167+
DerpOnly: arg.DerpOnly,
41674168
TokenHashedSecret: arg.TokenHashedSecret,
41684169
RegionID: lastRegionID + 1,
41694170
CreatedAt: arg.CreatedAt,
@@ -4238,6 +4239,7 @@ func (q *FakeQuerier) RegisterWorkspaceProxy(_ context.Context, arg database.Reg
42384239
p.Url = arg.Url
42394240
p.WildcardHostname = arg.WildcardHostname
42404241
p.DerpEnabled = arg.DerpEnabled
4242+
p.DerpOnly = arg.DerpOnly
42414243
p.UpdatedAt = database.Now()
42424244
q.workspaceProxies[i] = p
42434245
return p, nil

coderd/database/dump.sql

+4-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE workspace_proxies DROP COLUMN derp_only;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
BEGIN;
2+
3+
ALTER TABLE workspace_proxies
4+
ADD COLUMN "derp_only" BOOLEAN NOT NULL DEFAULT false;
5+
6+
COMMENT ON COLUMN workspace_proxies.derp_only IS 'Disables app/terminal proxying for this proxy and only acts as a DERP relay.';
7+
8+
COMMIT;

coderd/database/models.go

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

+21-8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/proxies.sql

+3-1
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@ INSERT INTO
88
display_name,
99
icon,
1010
derp_enabled,
11+
derp_only,
1112
token_hashed_secret,
1213
created_at,
1314
updated_at,
1415
deleted
1516
)
1617
VALUES
17-
($1, '', '', $2, $3, $4, $5, $6, $7, $8, false) RETURNING *;
18+
($1, '', '', $2, $3, $4, $5, $6, $7, $8, $9, false) RETURNING *;
1819

1920
-- name: RegisterWorkspaceProxy :one
2021
UPDATE
@@ -23,6 +24,7 @@ SET
2324
url = @url :: text,
2425
wildcard_hostname = @wildcard_hostname :: text,
2526
derp_enabled = @derp_enabled :: boolean,
27+
derp_only = @derp_only :: boolean,
2628
updated_at = Now()
2729
WHERE
2830
id = @id

codersdk/workspaceproxy.go

+1
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ type WorkspaceProxy struct {
4949
// Extends Region with extra information
5050
Region `table:"region,recursive_inline"`
5151
DerpEnabled bool `json:"derp_enabled" table:"derp_enabled"`
52+
DerpOnly bool `json:"derp_only" table:"derp_only"`
5253

5354
// Status is the latest status check of the proxy. This will be empty for deleted
5455
// proxies. This value can be used to determine if a workspace proxy is healthy

docs/admin/audit-logs.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ We track the following resources:
2121
| User<br><i>create, write, delete</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>avatar_url</td><td>false</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>deleted</td><td>true</td></tr><tr><td>email</td><td>true</td></tr><tr><td>hashed_password</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>last_seen_at</td><td>false</td></tr><tr><td>login_type</td><td>true</td></tr><tr><td>quiet_hours_schedule</td><td>true</td></tr><tr><td>rbac_roles</td><td>true</td></tr><tr><td>status</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>username</td><td>true</td></tr></tbody></table> |
2222
| Workspace<br><i>create, write, delete</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>autostart_schedule</td><td>true</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>deleted</td><td>false</td></tr><tr><td>deleting_at</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>last_used_at</td><td>false</td></tr><tr><td>locked_at</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>organization_id</td><td>false</td></tr><tr><td>owner_id</td><td>true</td></tr><tr><td>template_id</td><td>true</td></tr><tr><td>ttl</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr></tbody></table> |
2323
| WorkspaceBuild<br><i>start, stop</i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>build_number</td><td>false</td></tr><tr><td>created_at</td><td>false</td></tr><tr><td>daily_cost</td><td>false</td></tr><tr><td>deadline</td><td>false</td></tr><tr><td>id</td><td>false</td></tr><tr><td>initiator_by_avatar_url</td><td>false</td></tr><tr><td>initiator_by_username</td><td>false</td></tr><tr><td>initiator_id</td><td>false</td></tr><tr><td>job_id</td><td>false</td></tr><tr><td>max_deadline</td><td>false</td></tr><tr><td>provisioner_state</td><td>false</td></tr><tr><td>reason</td><td>false</td></tr><tr><td>template_version_id</td><td>true</td></tr><tr><td>transition</td><td>false</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>workspace_id</td><td>false</td></tr></tbody></table> |
24-
| WorkspaceProxy<br><i></i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>created_at</td><td>true</td></tr><tr><td>deleted</td><td>false</td></tr><tr><td>derp_enabled</td><td>true</td></tr><tr><td>display_name</td><td>true</td></tr><tr><td>icon</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>region_id</td><td>true</td></tr><tr><td>token_hashed_secret</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>url</td><td>true</td></tr><tr><td>wildcard_hostname</td><td>true</td></tr></tbody></table> |
24+
| WorkspaceProxy<br><i></i> | <table><thead><tr><th>Field</th><th>Tracked</th></tr></thead><tbody><tr><td>created_at</td><td>true</td></tr><tr><td>deleted</td><td>false</td></tr><tr><td>derp_enabled</td><td>true</td></tr><tr><td>derp_only</td><td>true</td></tr><tr><td>display_name</td><td>true</td></tr><tr><td>icon</td><td>true</td></tr><tr><td>id</td><td>true</td></tr><tr><td>name</td><td>true</td></tr><tr><td>region_id</td><td>true</td></tr><tr><td>token_hashed_secret</td><td>true</td></tr><tr><td>updated_at</td><td>false</td></tr><tr><td>url</td><td>true</td></tr><tr><td>wildcard_hostname</td><td>true</td></tr></tbody></table> |
2525

2626
<!-- End generated by 'make docs/admin/audit-logs.md'. -->
2727

0 commit comments

Comments
 (0)