diff --git a/coderd/insights.go b/coderd/insights.go index 1b7454cbab..411471caa5 100644 --- a/coderd/insights.go +++ b/coderd/insights.go @@ -474,6 +474,14 @@ func convertTemplateInsightsApps(usage database.GetTemplateInsightsRow, appUsage Icon: "/icon/terminal.svg", Seconds: usage.UsageSshSeconds, }, + { + TemplateIDs: usage.SftpTemplateIds, + Type: codersdk.TemplateAppsTypeBuiltin, + DisplayName: codersdk.TemplateBuiltinAppDisplayNameSFTP, + Slug: "sftp", + Icon: "/icon/terminal.svg", + Seconds: usage.UsageSftpSeconds, + }, } // Use a stable sort, similarly to how we would sort in the query, note that diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_three_weeks_second_template.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_three_weeks_second_template.json.golden index c37694aae6..b5552f1db6 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_three_weeks_second_template.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_three_weeks_second_template.json.golden @@ -45,6 +45,14 @@ "icon": "/icon/terminal.svg", "seconds": 10800 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000002" diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_three_weeks_second_template_only_report.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_three_weeks_second_template_only_report.json.golden index 2e487c498f..a5ad121ea8 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_three_weeks_second_template_only_report.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_three_weeks_second_template_only_report.json.golden @@ -45,6 +45,14 @@ "icon": "/icon/terminal.svg", "seconds": 10800 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000002" diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_all_templates.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_all_templates.json.golden index e7634e3a60..b3eef47ce0 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_all_templates.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_all_templates.json.golden @@ -52,6 +52,14 @@ "icon": "/icon/terminal.svg", "seconds": 11520 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000001", diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_deployment_wide.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_deployment_wide.json.golden index e7634e3a60..b3eef47ce0 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_deployment_wide.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_deployment_wide.json.golden @@ -52,6 +52,14 @@ "icon": "/icon/terminal.svg", "seconds": 11520 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000001", diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_first_template.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_first_template.json.golden index 37dc61b2d0..9adec1dd2a 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_first_template.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_first_template.json.golden @@ -45,6 +45,14 @@ "icon": "/icon/terminal.svg", "seconds": 7920 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000001" diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_other_timezone_(São_Paulo).json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_other_timezone_(São_Paulo).json.golden index 76ec01508a..e45e23bd88 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_other_timezone_(São_Paulo).json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_other_timezone_(São_Paulo).json.golden @@ -47,6 +47,14 @@ "icon": "/icon/terminal.svg", "seconds": 4320 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000001", diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_second_template.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_second_template.json.golden index f4a4560213..0aaae26873 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_second_template.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_second_template.json.golden @@ -43,6 +43,14 @@ "icon": "/icon/terminal.svg", "seconds": 3600 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000002" diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_third_template.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_third_template.json.golden index e10e78fa9c..fc0e3785d1 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_week_third_template.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_week_third_template.json.golden @@ -43,6 +43,14 @@ "icon": "/icon/terminal.svg", "seconds": 3600 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000003" diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_deployment_wide.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_deployment_wide.json.golden index 2cdab49717..37012ce9d3 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_deployment_wide.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_deployment_wide.json.golden @@ -52,6 +52,14 @@ "icon": "/icon/terminal.svg", "seconds": 15120 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000001", diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_first_template.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_first_template.json.golden index 1c25aea880..6852211092 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_first_template.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_first_template.json.golden @@ -45,6 +45,14 @@ "icon": "/icon/terminal.svg", "seconds": 7920 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000001" diff --git a/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_templates.json.golden b/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_templates.json.golden index bf09656759..38df7fbced 100644 --- a/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_templates.json.golden +++ b/coderd/testdata/insights/template/multiple_users_and_workspaces_weekly_aggregated_templates.json.golden @@ -52,6 +52,14 @@ "icon": "/icon/terminal.svg", "seconds": 15120 }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 + }, { "template_ids": [ "00000000-0000-0000-0000-000000000001", diff --git a/coderd/testdata/insights/template/parameters_two_days_ago,_no_data.json.golden b/coderd/testdata/insights/template/parameters_two_days_ago,_no_data.json.golden index f735c19be4..dd9761ef0a 100644 --- a/coderd/testdata/insights/template/parameters_two_days_ago,_no_data.json.golden +++ b/coderd/testdata/insights/template/parameters_two_days_ago,_no_data.json.golden @@ -36,6 +36,14 @@ "slug": "ssh", "icon": "/icon/terminal.svg", "seconds": 0 + }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 } ], "parameters_usage": [] diff --git a/coderd/testdata/insights/template/parameters_yesterday_and_today_deployment_wide.json.golden b/coderd/testdata/insights/template/parameters_yesterday_and_today_deployment_wide.json.golden index f260941893..7f0c5b2ed9 100644 --- a/coderd/testdata/insights/template/parameters_yesterday_and_today_deployment_wide.json.golden +++ b/coderd/testdata/insights/template/parameters_yesterday_and_today_deployment_wide.json.golden @@ -36,6 +36,14 @@ "slug": "ssh", "icon": "/icon/terminal.svg", "seconds": 0 + }, + { + "template_ids": [], + "type": "builtin", + "display_name": "SFTP", + "slug": "sftp", + "icon": "/icon/terminal.svg", + "seconds": 0 } ], "parameters_usage": [ diff --git a/codersdk/insights.go b/codersdk/insights.go index 5166d29d2d..27eb8c3009 100644 --- a/codersdk/insights.go +++ b/codersdk/insights.go @@ -206,6 +206,7 @@ const ( TemplateBuiltinAppDisplayNameJetBrains string = "JetBrains" TemplateBuiltinAppDisplayNameWebTerminal string = "Web Terminal" TemplateBuiltinAppDisplayNameSSH string = "SSH" + TemplateBuiltinAppDisplayNameSFTP string = "SFTP" ) // TemplateAppUsage shows the usage of an app for one or more templates.