feat: add template setting to require active template version (#10277)

This commit is contained in:
Jon Ayers
2023-10-18 17:07:21 -05:00
committed by GitHub
parent 1ad998ee3a
commit 997493d4ae
47 changed files with 802 additions and 70 deletions
+5
View File
@@ -221,6 +221,7 @@ export interface CreateTemplateRequest {
readonly dormant_ttl_ms?: number;
readonly delete_ttl_ms?: number;
readonly disable_everyone_group_access: boolean;
readonly require_active_version: boolean;
}
// From codersdk/templateversions.go
@@ -916,6 +917,7 @@ export interface Template {
readonly failure_ttl_ms: number;
readonly time_til_dormant_ms: number;
readonly time_til_dormant_autodelete_ms: number;
readonly require_active_version: boolean;
}
// From codersdk/templates.go
@@ -1166,6 +1168,7 @@ export interface UpdateTemplateMeta {
readonly time_til_dormant_autodelete_ms?: number;
readonly update_workspace_last_used_at: boolean;
readonly update_workspace_dormant_at: boolean;
readonly require_active_version: boolean;
}
// From codersdk/users.go
@@ -1715,6 +1718,7 @@ export const Experiments: Experiment[] = [
// From codersdk/deployment.go
export type FeatureName =
| "access_control"
| "advanced_template_scheduling"
| "appearance"
| "audit_log"
@@ -1731,6 +1735,7 @@ export type FeatureName =
| "workspace_batch_actions"
| "workspace_proxy";
export const FeatureNames: FeatureName[] = [
"access_control",
"advanced_template_scheduling",
"appearance",
"audit_log",
@@ -37,6 +37,7 @@ export const newTemplate = (formData: CreateTemplateData) => {
autostart_requirement: {
days_of_week: autostart_requirement_days_of_week,
},
require_active_version: false,
};
};
@@ -69,6 +69,7 @@ export const TemplateSettingsForm: FC<TemplateSettingsForm> = ({
template.allow_user_cancel_workspace_jobs,
update_workspace_last_used_at: false,
update_workspace_dormant_at: false,
require_active_version: false,
},
validationSchema,
onSubmit,
@@ -43,6 +43,7 @@ const validFormValues: FormValues = {
time_til_dormant_autodelete_ms: 0,
update_workspace_last_used_at: false,
update_workspace_dormant_at: false,
require_active_version: false,
};
const renderTemplateSettingsPage = async () => {
@@ -113,6 +113,7 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
Boolean(template.time_til_dormant_autodelete_ms),
update_workspace_last_used_at: false,
update_workspace_dormant_at: false,
require_active_version: false,
},
validationSchema,
onSubmit: () => {
@@ -229,6 +230,7 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
allow_user_autostop: form.values.allow_user_autostop,
update_workspace_last_used_at: form.values.update_workspace_last_used_at,
update_workspace_dormant_at: form.values.update_workspace_dormant_at,
require_active_version: false,
});
};
@@ -26,6 +26,7 @@ const validFormValues: TemplateScheduleFormValues = {
failure_cleanup_enabled: false,
inactivity_cleanup_enabled: false,
dormant_autodeletion_cleanup_enabled: false,
require_active_version: false,
autostart_requirement_days_of_week: [
"monday",
"tuesday",
+1
View File
@@ -467,6 +467,7 @@ export const MockTemplate: TypesGen.Template = {
time_til_dormant_autodelete_ms: 0,
allow_user_autostart: true,
allow_user_autostop: true,
require_active_version: false,
};
export const MockTemplateVersionFiles: TemplateVersionFiles = {