mirror of https://github.com/coder/coder.git
81 lines
1.1 KiB
SQL
81 lines
1.1 KiB
SQL
-- name: GetWorkspaceAgentPortShare :one
|
|
SELECT
|
|
*
|
|
FROM
|
|
workspace_agent_port_share
|
|
WHERE
|
|
workspace_id = $1
|
|
AND agent_name = $2
|
|
AND port = $3;
|
|
|
|
-- name: ListWorkspaceAgentPortShares :many
|
|
SELECT
|
|
*
|
|
FROM
|
|
workspace_agent_port_share
|
|
WHERE
|
|
workspace_id = $1;
|
|
|
|
-- name: DeleteWorkspaceAgentPortShare :exec
|
|
DELETE FROM
|
|
workspace_agent_port_share
|
|
WHERE
|
|
workspace_id = $1
|
|
AND agent_name = $2
|
|
AND port = $3;
|
|
|
|
-- name: UpsertWorkspaceAgentPortShare :one
|
|
INSERT INTO
|
|
workspace_agent_port_share (
|
|
workspace_id,
|
|
agent_name,
|
|
port,
|
|
share_level,
|
|
protocol
|
|
)
|
|
VALUES (
|
|
$1,
|
|
$2,
|
|
$3,
|
|
$4,
|
|
$5
|
|
)
|
|
ON CONFLICT (
|
|
workspace_id,
|
|
agent_name,
|
|
port
|
|
)
|
|
DO UPDATE SET
|
|
share_level = $4,
|
|
protocol = $5
|
|
RETURNING *;
|
|
|
|
-- name: ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate :exec
|
|
UPDATE
|
|
workspace_agent_port_share
|
|
SET
|
|
share_level = 'authenticated'
|
|
WHERE
|
|
share_level = 'public'
|
|
AND workspace_id IN (
|
|
SELECT
|
|
id
|
|
FROM
|
|
workspaces
|
|
WHERE
|
|
template_id = $1
|
|
);
|
|
|
|
-- name: DeleteWorkspaceAgentPortSharesByTemplate :exec
|
|
DELETE FROM
|
|
workspace_agent_port_share
|
|
WHERE
|
|
workspace_id IN (
|
|
SELECT
|
|
id
|
|
FROM
|
|
workspaces
|
|
WHERE
|
|
template_id = $1
|
|
);
|