From 4ae61b5c1d3cd84a6a651202b9c5f3081d8f0d85 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 17 Mar 2026 15:17:53 +0000 Subject: [PATCH 1/6] feat(deployment): make data use terms agreement text configurable via values.yaml Add a `dataUseTerms.agreementHtml` setting in values.yaml that allows overriding the "I agree to the data use terms." checkbox label in the download dialog with custom HTML. This enables linking to multiple different pages or customizing the agreement text per instance. The default value preserves the current behavior with a link to the data use terms page. https://claude.ai/code/session_013oJyL4K1RSVkBKLpEBa3DC --- .../loculus/templates/_common-metadata.tpl | 3 +++ kubernetes/loculus/values.schema.json | 6 +++++ kubernetes/loculus/values.yaml | 1 + .../DownloadDialog/DownloadDialog.spec.tsx | 3 +++ .../DownloadDialog/DownloadDialog.tsx | 22 +++++++++---------- .../components/SearchPage/SearchFullUI.tsx | 3 +++ website/src/config.ts | 4 ++++ .../src/pages/[organism]/search/index.astro | 2 ++ website/src/types/config.ts | 1 + 9 files changed, 33 insertions(+), 12 deletions(-) diff --git a/kubernetes/loculus/templates/_common-metadata.tpl b/kubernetes/loculus/templates/_common-metadata.tpl index 41c21f956b..896d5fcfa9 100644 --- a/kubernetes/loculus/templates/_common-metadata.tpl +++ b/kubernetes/loculus/templates/_common-metadata.tpl @@ -213,6 +213,9 @@ enableSeqSets: {{ $.Values.seqSets.enabled }} seqSetsFieldsToDisplay: {{ $.Values.seqSets.fieldsToDisplay | toJson }} {{- end }} enableDataUseTerms: {{ $.Values.dataUseTerms.enabled }} +{{ if $.Values.dataUseTerms.agreementHtml }} +dataUseTermsAgreementHtml: {{ quote $.Values.dataUseTerms.agreementHtml }} +{{- end }} accessionPrefix: {{ quote $.Values.accessionPrefix }} {{- $commonMetadata := (include "loculus.commonMetadata" . | fromYaml).fields }} organisms: diff --git a/kubernetes/loculus/values.schema.json b/kubernetes/loculus/values.schema.json index e6ca37d919..1c9e1d7e27 100644 --- a/kubernetes/loculus/values.schema.json +++ b/kubernetes/loculus/values.schema.json @@ -1527,6 +1527,12 @@ "required": ["open", "restricted"], "additionalProperties": false } + }, + "agreementHtml": { + "groups": ["general"], + "type": "string", + "description": "Custom HTML for the data use terms agreement checkbox label shown in the download dialog. Can contain links and other HTML elements." + } }, "required": ["enabled", "urls"], "additionalProperties": false diff --git a/kubernetes/loculus/values.yaml b/kubernetes/loculus/values.yaml index 28c62876b3..61371a03ad 100644 --- a/kubernetes/loculus/values.yaml +++ b/kubernetes/loculus/values.yaml @@ -39,6 +39,7 @@ dataUseTerms: urls: open: https://#TODO-MVP/open restricted: https://#TODO-MVP/restricted + agreementHtml: 'I agree to the data use terms.' fileSharing: outputFileUrlType: backend s3: diff --git a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.spec.tsx b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.spec.tsx index 8c5bdedaab..448f23cc18 100644 --- a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.spec.tsx +++ b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.spec.tsx @@ -55,6 +55,7 @@ async function renderDialog({ downloadParams = new SequenceEntrySelection(new Set()), allowSubmissionOfConsensusSequences = true, dataUseTermsEnabled = true, + dataUseTermsAgreementHtml, richFastaHeaderFields, metadata = mockMetadata, selectedReferenceNames = { main: null }, @@ -64,6 +65,7 @@ async function renderDialog({ downloadParams?: SequenceFilter; allowSubmissionOfConsensusSequences?: boolean; dataUseTermsEnabled?: boolean; + dataUseTermsAgreementHtml?: string; richFastaHeaderFields?: string[]; metadata?: Metadata[]; selectedReferenceNames?: SegmentReferenceSelections; @@ -92,6 +94,7 @@ async function renderDialog({ referenceGenomesInfo={referenceGenomesInfo} allowSubmissionOfConsensusSequences={allowSubmissionOfConsensusSequences} dataUseTermsEnabled={dataUseTermsEnabled} + dataUseTermsAgreementHtml={dataUseTermsAgreementHtml} schema={schema} richFastaHeaderFields={richFastaHeaderFields} selectedReferenceNames={selectedReferenceNames} diff --git a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx index b8b2e16970..58e1c8f2e8 100644 --- a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx +++ b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx @@ -30,6 +30,7 @@ type DownloadDialogProps = { referenceGenomesInfo: ReferenceGenomesInfo; allowSubmissionOfConsensusSequences: boolean; dataUseTermsEnabled: boolean; + dataUseTermsAgreementHtml?: string; schema: Schema; richFastaHeaderFields: Schema['richFastaHeaderFields']; selectedReferenceNames?: SegmentReferenceSelections; @@ -42,6 +43,7 @@ export const DownloadDialog: FC = ({ referenceGenomesInfo, allowSubmissionOfConsensusSequences, dataUseTermsEnabled, + dataUseTermsAgreementHtml, schema, richFastaHeaderFields, selectedReferenceNames, @@ -141,18 +143,14 @@ export const DownloadDialog: FC = ({ checked={agreedToDataUseTerms} onChange={() => setAgreedToDataUseTerms(!agreedToDataUseTerms)} /> - - I agree to the{' '} - - data use terms - - . - + data use terms.`, + }} + /> )} diff --git a/website/src/components/SearchPage/SearchFullUI.tsx b/website/src/components/SearchPage/SearchFullUI.tsx index 32643636cd..be98ad9da3 100644 --- a/website/src/components/SearchPage/SearchFullUI.tsx +++ b/website/src/components/SearchPage/SearchFullUI.tsx @@ -48,6 +48,7 @@ export interface InnerSearchFullUIProps { initialQueryDict: QueryState; showEditDataUseTermsControls?: boolean; dataUseTermsEnabled?: boolean; + dataUseTermsAgreementHtml?: string; sequenceFlaggingConfig?: SequenceFlaggingConfig; linkOuts?: LinkOut[]; contactConfig?: ContactConfig; @@ -76,6 +77,7 @@ export const InnerSearchFullUI = ({ initialQueryDict, showEditDataUseTermsControls = false, dataUseTermsEnabled = true, + dataUseTermsAgreementHtml, sequenceFlaggingConfig, linkOuts, contactConfig, @@ -354,6 +356,7 @@ export const InnerSearchFullUI = ({ referenceGenomesInfo={referenceGenomesInfo} allowSubmissionOfConsensusSequences={schema.submissionDataTypes.consensusSequences} dataUseTermsEnabled={dataUseTermsEnabled} + dataUseTermsAgreementHtml={dataUseTermsAgreementHtml} schema={schema} richFastaHeaderFields={schema.richFastaHeaderFields} selectedReferenceNames={referenceSelection?.selectedReferences} diff --git a/website/src/config.ts b/website/src/config.ts index b478f2f916..d8a379fc75 100644 --- a/website/src/config.ts +++ b/website/src/config.ts @@ -251,6 +251,10 @@ export function dataUseTermsAreEnabled() { return getWebsiteConfig().enableDataUseTerms; } +export function getDataUseTermsAgreementHtml() { + return getWebsiteConfig().dataUseTermsAgreementHtml; +} + function readTypedConfigFile(fileName: string, schema: z.ZodType) { const configFilePath = path.join(getConfigDir(), fileName); const json = JSON.parse(fs.readFileSync(configFilePath, 'utf8')); diff --git a/website/src/pages/[organism]/search/index.astro b/website/src/pages/[organism]/search/index.astro index 0a7c01af38..3f5b0ca754 100644 --- a/website/src/pages/[organism]/search/index.astro +++ b/website/src/pages/[organism]/search/index.astro @@ -4,6 +4,7 @@ import { SearchFullUI } from '../../../components/SearchPage/SearchFullUI'; import { dataUseTermsAreEnabled, getContactConfig, + getDataUseTermsAgreementHtml, getReferenceGenomes, getRuntimeConfig, getSchema, @@ -69,6 +70,7 @@ const contactConfig = getContactConfig(websiteConfig); initialCount={totalCount} initialQueryDict={initialQueryDict} dataUseTermsEnabled={dataUseTermsAreEnabled()} + dataUseTermsAgreementHtml={getDataUseTermsAgreementHtml()} sequenceFlaggingConfig={sequenceFlaggingConfig} linkOuts={schema.linkOuts} contactConfig={contactConfig} diff --git a/website/src/types/config.ts b/website/src/types/config.ts index 41bd804cd8..6871dd62f5 100644 --- a/website/src/types/config.ts +++ b/website/src/types/config.ts @@ -246,6 +246,7 @@ export const websiteConfig = z.object({ enableSubmissionNavigationItem: z.boolean(), enableSubmissionPages: z.boolean(), enableDataUseTerms: z.boolean(), + dataUseTermsAgreementHtml: z.string().optional(), sequenceFlagging: sequenceFlaggingConfig.optional(), }); export type WebsiteConfig = z.infer; From 500ac06829320d49b4ff168d0a4dfced39acfcea Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 17 Mar 2026 15:18:24 +0000 Subject: [PATCH 2/6] chore(website): update package-lock.json https://claude.ai/code/session_013oJyL4K1RSVkBKLpEBa3DC --- website/package-lock.json | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/website/package-lock.json b/website/package-lock.json index 7956de0b4f..3954b7db33 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -1304,6 +1304,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1336,6 +1337,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1368,6 +1370,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2833,6 +2836,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -2872,6 +2876,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2892,6 +2897,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2912,6 +2918,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2932,6 +2939,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2952,6 +2960,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2972,6 +2981,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2992,6 +3002,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3012,6 +3023,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3032,6 +3044,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3052,6 +3065,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3072,6 +3086,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3092,6 +3107,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3112,6 +3128,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3129,6 +3146,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, "license": "MIT", "optional": true }, @@ -7022,6 +7040,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, "license": "Apache-2.0", "optional": true, "bin": { @@ -15876,6 +15895,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15892,6 +15912,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15908,6 +15929,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15924,6 +15946,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15940,6 +15963,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15956,6 +15980,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15972,6 +15997,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15988,6 +16014,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16004,6 +16031,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16020,6 +16048,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16036,6 +16065,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16052,6 +16082,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16068,6 +16099,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16084,6 +16116,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16100,6 +16133,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16116,6 +16150,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16132,6 +16167,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16148,6 +16184,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16164,6 +16201,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16180,6 +16218,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16196,6 +16235,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16212,6 +16252,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16228,6 +16269,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16283,6 +16325,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, From f08eb8d7e798a549885d6d11d8e5ed8af4ec4a3c Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 17 Mar 2026 15:21:06 +0000 Subject: [PATCH 3/6] Revert "chore(website): update package-lock.json" This reverts commit 500ac06829320d49b4ff168d0a4dfced39acfcea. --- website/package-lock.json | 43 --------------------------------------- 1 file changed, 43 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 3954b7db33..7956de0b4f 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -1304,7 +1304,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1337,7 +1336,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -1370,7 +1368,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2836,7 +2833,6 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -2876,7 +2872,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2897,7 +2892,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2918,7 +2912,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2939,7 +2932,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2960,7 +2952,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2981,7 +2972,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3002,7 +2992,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3023,7 +3012,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3044,7 +3032,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3065,7 +3052,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3086,7 +3072,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3107,7 +3092,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3128,7 +3112,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3146,7 +3129,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "dev": true, "license": "MIT", "optional": true }, @@ -7040,7 +7022,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "dev": true, "license": "Apache-2.0", "optional": true, "bin": { @@ -15895,7 +15876,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15912,7 +15892,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15929,7 +15908,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15946,7 +15924,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15963,7 +15940,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15980,7 +15956,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -15997,7 +15972,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16014,7 +15988,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16031,7 +16004,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16048,7 +16020,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16065,7 +16036,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16082,7 +16052,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16099,7 +16068,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16116,7 +16084,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16133,7 +16100,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16150,7 +16116,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16167,7 +16132,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16184,7 +16148,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16201,7 +16164,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16218,7 +16180,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16235,7 +16196,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16252,7 +16212,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16269,7 +16228,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -16325,7 +16283,6 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, From ecf8d158e8fb03ac675d939beab406d79d7dbeda Mon Sep 17 00:00:00 2001 From: theosanderson-agent Date: Tue, 17 Mar 2026 15:42:54 +0000 Subject: [PATCH 4/6] fix(deployment): fix JSON syntax error in values.schema.json and lint error in DownloadDialog The agreementHtml property was placed outside the properties object in the dataUseTerms schema definition, causing invalid JSON. Also add eslint-disable for the __html key required by dangerouslySetInnerHTML. Co-Authored-By: Claude Opus 4.6 (1M context) --- kubernetes/loculus/values.schema.json | 3 +-- .../components/SearchPage/DownloadDialog/DownloadDialog.tsx | 1 + 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/kubernetes/loculus/values.schema.json b/kubernetes/loculus/values.schema.json index 1c9e1d7e27..3a6130e500 100644 --- a/kubernetes/loculus/values.schema.json +++ b/kubernetes/loculus/values.schema.json @@ -1526,8 +1526,7 @@ }, "required": ["open", "restricted"], "additionalProperties": false - } - }, + }, "agreementHtml": { "groups": ["general"], "type": "string", diff --git a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx index 58e1c8f2e8..18c200cb8a 100644 --- a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx +++ b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx @@ -146,6 +146,7 @@ export const DownloadDialog: FC = ({ data use terms.`, From 4eea88436b306f9b1a5480dda35483cdfb4abedf Mon Sep 17 00:00:00 2001 From: theosanderson-agent Date: Tue, 17 Mar 2026 15:57:36 +0000 Subject: [PATCH 5/6] fix(website): remove data use terms link from fallback and values.yaml Remove the agreementHtml setting from values.yaml so the fallback is used, and simplify the fallback text to plain "I agree to the data use terms." without a link. Co-Authored-By: Claude Opus 4.6 (1M context) --- kubernetes/loculus/values.yaml | 1 - .../components/SearchPage/DownloadDialog/DownloadDialog.tsx | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/kubernetes/loculus/values.yaml b/kubernetes/loculus/values.yaml index 61371a03ad..28c62876b3 100644 --- a/kubernetes/loculus/values.yaml +++ b/kubernetes/loculus/values.yaml @@ -39,7 +39,6 @@ dataUseTerms: urls: open: https://#TODO-MVP/open restricted: https://#TODO-MVP/restricted - agreementHtml: 'I agree to the data use terms.' fileSharing: outputFileUrlType: backend s3: diff --git a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx index 18c200cb8a..af8cf0d939 100644 --- a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx +++ b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx @@ -7,7 +7,6 @@ import { DownloadForm, type DownloadFormState } from './DownloadForm.tsx'; import { type DownloadOption, type DownloadUrlGenerator } from './DownloadUrlGenerator.ts'; import { getDefaultSelectedFields } from './FieldSelector/FieldSelectorModal.tsx'; import type { SequenceFilter } from './SequenceFilters.tsx'; -import { routes } from '../../../routes/routes.ts'; import { ACCESSION_VERSION_FIELD } from '../../../settings.ts'; import type { Metadata, Schema } from '../../../types/config.ts'; import type { ReferenceGenomesInfo } from '../../../types/referencesGenomes.ts'; @@ -149,7 +148,7 @@ export const DownloadDialog: FC = ({ // eslint-disable-next-line @typescript-eslint/naming-convention __html: dataUseTermsAgreementHtml ?? - `I agree to the data use terms.`, + 'I agree to the data use terms.', }} /> From 98b9f0938ffe6cce9263fc92af1f585097f1b89d Mon Sep 17 00:00:00 2001 From: theosanderson-agent Date: Tue, 17 Mar 2026 16:16:47 +0000 Subject: [PATCH 6/6] style(website): format DownloadDialog.tsx with prettier Co-Authored-By: Claude Opus 4.6 (1M context) --- .../components/SearchPage/DownloadDialog/DownloadDialog.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx index af8cf0d939..6119a3afcc 100644 --- a/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx +++ b/website/src/components/SearchPage/DownloadDialog/DownloadDialog.tsx @@ -146,9 +146,7 @@ export const DownloadDialog: FC = ({ className='text-sm' dangerouslySetInnerHTML={{ // eslint-disable-next-line @typescript-eslint/naming-convention - __html: - dataUseTermsAgreementHtml ?? - 'I agree to the data use terms.', + __html: dataUseTermsAgreementHtml ?? 'I agree to the data use terms.', }} />