mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add port-sharing backend (#11939)
This commit is contained in:
@@ -736,6 +736,10 @@ export const updateTemplateSettings = async (
|
||||
await expect(page).toHaveURL(`/templates/${templateName}/settings`);
|
||||
|
||||
for (const [key, value] of Object.entries(templateSettingValues)) {
|
||||
// Skip max_port_share_level for now since the frontend is not yet able to handle it
|
||||
if (key === "max_port_share_level") {
|
||||
continue;
|
||||
}
|
||||
const labelText = capitalize(key).replace("_", " ");
|
||||
await page.getByLabel(labelText, { exact: true }).fill(value);
|
||||
}
|
||||
|
||||
Generated
+40
-2
@@ -369,6 +369,12 @@ export interface DangerousConfig {
|
||||
readonly allow_all_cors: boolean;
|
||||
}
|
||||
|
||||
// From codersdk/workspaceagentportshare.go
|
||||
export interface DeleteWorkspaceAgentPortShareRequest {
|
||||
readonly agent_name: string;
|
||||
readonly port: number;
|
||||
}
|
||||
|
||||
// From codersdk/deployment.go
|
||||
export interface DeploymentConfig {
|
||||
readonly config?: DeploymentValues;
|
||||
@@ -1043,6 +1049,7 @@ export interface Template {
|
||||
readonly time_til_dormant_ms: number;
|
||||
readonly time_til_dormant_autodelete_ms: number;
|
||||
readonly require_active_version: boolean;
|
||||
readonly max_port_share_level: WorkspaceAgentPortShareLevel;
|
||||
}
|
||||
|
||||
// From codersdk/templates.go
|
||||
@@ -1302,6 +1309,7 @@ export interface UpdateTemplateMeta {
|
||||
readonly require_active_version: boolean;
|
||||
readonly deprecation_message?: string;
|
||||
readonly disable_everyone_group_access: boolean;
|
||||
readonly max_port_share_level?: WorkspaceAgentPortShareLevel;
|
||||
}
|
||||
|
||||
// From codersdk/users.go
|
||||
@@ -1362,6 +1370,13 @@ export interface UploadResponse {
|
||||
readonly hash: string;
|
||||
}
|
||||
|
||||
// From codersdk/workspaceagentportshare.go
|
||||
export interface UpsertWorkspaceAgentPortShareRequest {
|
||||
readonly agent_name: string;
|
||||
readonly port: number;
|
||||
readonly share_level: WorkspaceAgentPortShareLevel;
|
||||
}
|
||||
|
||||
// From codersdk/users.go
|
||||
export interface User {
|
||||
readonly id: string;
|
||||
@@ -1611,6 +1626,19 @@ export interface WorkspaceAgentMetadataResult {
|
||||
readonly error: string;
|
||||
}
|
||||
|
||||
// From codersdk/workspaceagentportshare.go
|
||||
export interface WorkspaceAgentPortShare {
|
||||
readonly workspace_id: string;
|
||||
readonly agent_name: string;
|
||||
readonly port: number;
|
||||
readonly share_level: WorkspaceAgentPortShareLevel;
|
||||
}
|
||||
|
||||
// From codersdk/workspaceagentportshare.go
|
||||
export interface WorkspaceAgentPortShares {
|
||||
readonly shares: WorkspaceAgentPortShare[];
|
||||
}
|
||||
|
||||
// From codersdk/workspaceagents.go
|
||||
export interface WorkspaceAgentScript {
|
||||
readonly log_source_id: string;
|
||||
@@ -1860,8 +1888,8 @@ export const Entitlements: Entitlement[] = [
|
||||
];
|
||||
|
||||
// From codersdk/deployment.go
|
||||
export type Experiment = "example";
|
||||
export const Experiments: Experiment[] = ["example"];
|
||||
export type Experiment = "example" | "shared-ports";
|
||||
export const Experiments: Experiment[] = ["example", "shared-ports"];
|
||||
|
||||
// From codersdk/deployment.go
|
||||
export type FeatureName =
|
||||
@@ -1870,6 +1898,7 @@ export type FeatureName =
|
||||
| "appearance"
|
||||
| "audit_log"
|
||||
| "browser_only"
|
||||
| "control_shared_ports"
|
||||
| "external_provisioner_daemons"
|
||||
| "external_token_encryption"
|
||||
| "high_availability"
|
||||
@@ -1887,6 +1916,7 @@ export const FeatureNames: FeatureName[] = [
|
||||
"appearance",
|
||||
"audit_log",
|
||||
"browser_only",
|
||||
"control_shared_ports",
|
||||
"external_provisioner_daemons",
|
||||
"external_token_encryption",
|
||||
"high_availability",
|
||||
@@ -2148,6 +2178,14 @@ export const WorkspaceAgentLifecycles: WorkspaceAgentLifecycle[] = [
|
||||
"starting",
|
||||
];
|
||||
|
||||
// From codersdk/workspaceagentportshare.go
|
||||
export type WorkspaceAgentPortShareLevel = "authenticated" | "owner" | "public";
|
||||
export const WorkspaceAgentPortShareLevels: WorkspaceAgentPortShareLevel[] = [
|
||||
"authenticated",
|
||||
"owner",
|
||||
"public",
|
||||
];
|
||||
|
||||
// From codersdk/workspaceagents.go
|
||||
export type WorkspaceAgentStartupScriptBehavior = "blocking" | "non-blocking";
|
||||
export const WorkspaceAgentStartupScriptBehaviors: WorkspaceAgentStartupScriptBehavior[] =
|
||||
|
||||
+1
@@ -48,6 +48,7 @@ const validFormValues: FormValues = {
|
||||
update_workspace_dormant_at: false,
|
||||
require_active_version: false,
|
||||
disable_everyone_group_access: false,
|
||||
max_port_share_level: "owner",
|
||||
};
|
||||
|
||||
const renderTemplateSettingsPage = async () => {
|
||||
|
||||
@@ -489,6 +489,7 @@ export const MockTemplate: TypesGen.Template = {
|
||||
require_active_version: false,
|
||||
deprecated: false,
|
||||
deprecation_message: "",
|
||||
max_port_share_level: "owner",
|
||||
};
|
||||
|
||||
export const MockTemplateVersionFiles: TemplateVersionFiles = {
|
||||
|
||||
Reference in New Issue
Block a user