feat: add port-sharing backend (#11939)

This commit is contained in:
Garrett Delfosse
2024-02-13 09:31:20 -05:00
committed by GitHub
parent c939416702
commit 3ab3a62bef
48 changed files with 1947 additions and 59 deletions
@@ -0,0 +1,20 @@
DROP TABLE workspace_agent_port_share;
DROP VIEW template_with_users;
ALTER TABLE templates DROP COLUMN max_port_sharing_level;
-- Update the template_with_users view by recreating it.
CREATE VIEW
template_with_users
AS
SELECT
templates.*,
coalesce(visible_users.avatar_url, '') AS created_by_avatar_url,
coalesce(visible_users.username, '') AS created_by_username
FROM
templates
LEFT JOIN
visible_users
ON
templates.created_by = visible_users.id;
COMMENT ON VIEW template_with_users IS 'Joins in the username + avatar url of the created by user.';
@@ -0,0 +1,27 @@
CREATE TABLE workspace_agent_port_share (
workspace_id uuid NOT NULL REFERENCES workspaces (id) ON DELETE CASCADE,
agent_name text NOT NULL,
port integer NOT NULL,
share_level app_sharing_level NOT NULL
);
ALTER TABLE workspace_agent_port_share ADD PRIMARY KEY (workspace_id, agent_name, port);
ALTER TABLE templates ADD COLUMN max_port_sharing_level app_sharing_level NOT NULL DEFAULT 'owner'::app_sharing_level;
-- Update the template_with_users view by recreating it.
DROP VIEW template_with_users;
CREATE VIEW
template_with_users
AS
SELECT
templates.*,
coalesce(visible_users.avatar_url, '') AS created_by_avatar_url,
coalesce(visible_users.username, '') AS created_by_username
FROM
templates
LEFT JOIN
visible_users
ON
templates.created_by = visible_users.id;
COMMENT ON VIEW template_with_users IS 'Joins in the username + avatar url of the created by user.';
@@ -0,0 +1,4 @@
INSERT INTO workspace_agent_port_share
(workspace_id, agent_name, port, share_level)
VALUES
('b90547be-8870-4d68-8184-e8b2242b7c01', 'qua', 8080, 'public'::app_sharing_level) RETURNING *;