From 8022441070562938c7a054f70a59bd6a5ca358f3 Mon Sep 17 00:00:00 2001 From: Jez Barnsley Date: Thu, 30 Apr 2026 14:40:51 +0100 Subject: [PATCH 1/5] Extra enums + hidden route for metric regen --- designer/server/src/lib/metrics.js | 14 +- .../__snapshots__/form-metrics.test.js.snap | 804 ++++++++++++++++++ .../server/src/routes/admin/form-metrics.js | 49 +- .../src/routes/admin/form-metrics.test.js | 28 +- .../views/admin/form-metrics-regenerate.njk | 31 + designer/server/test/fixtures/auth.js | 3 +- model/src/form/form-metrics/enums.ts | 4 +- model/src/manage/roles.test.ts | 3 +- model/src/manage/roles.ts | 3 +- 9 files changed, 931 insertions(+), 8 deletions(-) create mode 100644 designer/server/src/views/admin/form-metrics-regenerate.njk diff --git a/designer/server/src/lib/metrics.js b/designer/server/src/lib/metrics.js index ab82b3c88..08e239bbf 100644 --- a/designer/server/src/lib/metrics.js +++ b/designer/server/src/lib/metrics.js @@ -1,5 +1,6 @@ import config from '~/src/config.js' -import { getJson } from '~/src/lib/fetch.js' +import { getJson, postJson } from '~/src/lib/fetch.js' +import { getHeaders } from '~/src/lib/utils.js' const metricsEndpoint = new URL('/report/', config.auditUrl) @@ -18,6 +19,17 @@ export async function getMetrics() { return body } +/** + * Regenerate the full set of metrics afresh (clears the 'mertics' DB and repopulates) + * @param {string} token + */ +export async function regenerateMetrics(token) { + const requestUrl = new URL('regenerate', metricsEndpoint) + await postJson(requestUrl, { + ...getHeaders(token) + }) +} + /** * @import { FormOverviewMetric, FormTotalsMetric } from '@defra/forms-model' */ diff --git a/designer/server/src/routes/admin/__snapshots__/form-metrics.test.js.snap b/designer/server/src/routes/admin/__snapshots__/form-metrics.test.js.snap index ecf2e9000..15dbb225c 100644 --- a/designer/server/src/routes/admin/__snapshots__/form-metrics.test.js.snap +++ b/designer/server/src/routes/admin/__snapshots__/form-metrics.test.js.snap @@ -472,6 +472,810 @@ exports[`Form metrics routes GET should render form 1`] = ` + + + + + + +" +`; + +exports[`Form metrics routes form-metrics should render regenerate form 1`] = ` +" + + + + Admin tools - Defra Form Designer metrics - Forms designer + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+ + + + + +
+
+
+ +
+

+ Defra Form Designer metrics +

+
+
+
+
+
+ + +
+
+
+ +
+

Regenerating metrics

+

This will clear out the 'metrics' collection in the 'forms-audit-api' database, and regenerate a full history of metrics.

+ + +
+ + +
+
+ +
+ + +
+ + + + + + + + + + + +" +`; + +exports[`Form metrics routes form-metrics should render report form 1`] = ` +" + + + + Admin tools - Defra Form Designer metrics - Forms designer + + + + + + + + + + + + + + + + + + Skip to main content + + + + + + +
+ + + + + +
+
+
+ +
+

+ Defra Form Designer metrics +

+
+
+
+
+
+ + +
+
+
+ +
+
Form activity
+ +
+ +
+

+ Contents +

+ +
+ +
+ 25 December 2025 to 1 January 2026 +

Last 7 days

+ +

Form activity

+
+ + +
+
+
+ New forms created + 0 +
+
+ + 0 (-%) + + +
+

No difference in forms created than last week

+
+
+ + + + +
+
+
+ Forms published + 0 +
+
+ + 0 (-%) + + +
+

No difference in forms published than last week

+
+
+ + + + +
+
+
+ Form submissions + 0 +
+
+ + 0 (-%) + + +
+

No difference in submissions than last week

+
+
+ +
+
+
+
+ +
+ 2 December 2025 to 1 January 2026 +

Last 30 days

+ +

Form activity

+
+ + +
+
+
+ New forms created + 0 +
+
+ + 0 (-%) + + +
+

No difference in forms created than last month

+
+
+ + + + +
+
+
+ Forms published + 0 +
+
+ + 0 (-%) + + +
+

No difference in forms published than last month

+
+
+ + + + +
+
+
+ Form submissions + 0 +
+
+ + 0 (-%) + + +
+

No difference in submissions than last month

+
+
+ +
+
+
+
+ +
+ Since launch +

All time

+ +

Form activity

+
+ + +
+
+
+ New forms created + 0 +
+
+ + 0 (-%) + + +
+

No difference in forms created than last year

+
+
+ + + + +
+
+
+ Forms published + 0 +
+
+ + 0 (-%) + + +
+

No difference in forms published than last year

+
+
+ + + + +
+
+
+ Form submissions + 0 +
+
+ + 0 (-%) + + +
+

No difference in submissions than last year

+
+
+ +
+
+
+
+ + + + + + + + + + + + + + + + + + + +
Form nameOrganisationStatusPagesQuestion typesConditionsSectionsDays to publishFeaturesSubmissions
+ + +
+
+ +
+ + +
+ + + + +