diff --git a/static-site/app/pathogens/files/page.tsx b/static-site/app/pathogens/files/page.tsx
index 87d47012c..5174f800f 100644
--- a/static-site/app/pathogens/files/page.tsx
+++ b/static-site/app/pathogens/files/page.tsx
@@ -42,6 +42,26 @@ export default function PathogenWorkflowFiles(): React.ReactElement {
{`The 'show full history' link details the temporal history of files for a given pathogen.`}
+
+
+ {`We gratefully acknowledge the authors, originating and submitting laboratories of the genetic sequences`}
+ {` and metadata for sharing their work. This work is made possible by the open sharing of genetic data by`}
+ {` research groups from all over the world. We gratefully acknowledge their contributions.`}
+
+
+ {`Please note that although data generators have generously shared data in an open fashion,`}
+ {` that does not mean there should be free license to publish on this data.`}
+ {` Data generators should be cited where possible and collaborations should be sought in some circumstances.`}
+ {` Please try to avoid scooping someone else's work. Reach out if uncertain.`}
+
+
+ {`Some of these files contain Restricted Data from Pathoplexus.`}
+
+ {`To use these in your own analysis, please read `}
+
+ Pathoplexus Restricted Data Terms of Use
+
+ {`.`}
diff --git a/static-site/components/list-resources/icon-container.tsx b/static-site/components/list-resources/icon-container.tsx
index 2b4c097b5..31256125c 100644
--- a/static-site/components/list-resources/icon-container.tsx
+++ b/static-site/components/list-resources/icon-container.tsx
@@ -4,6 +4,7 @@ import React, { useState } from "react";
import { IconType } from "react-icons";
import { MdFormatListBulleted, MdHistory, MdOutlineWarningAmber } from "react-icons/md";
+import { RiErrorWarningLine } from "react-icons/ri";
import { InternalError } from "../error-boundary";
@@ -57,6 +58,9 @@ export default function IconContainer({
case "bullet-list":
Icon = MdFormatListBulleted;
break;
+ case "restricted":
+ Icon = RiErrorWarningLine;
+ break;
case "out-of-date":
Icon = MdOutlineWarningAmber;
break;
diff --git a/static-site/components/list-resources/individual-resource.tsx b/static-site/components/list-resources/individual-resource.tsx
index 1d4069868..3894cf7f1 100644
--- a/static-site/components/list-resources/individual-resource.tsx
+++ b/static-site/components/list-resources/individual-resource.tsx
@@ -70,6 +70,12 @@ export function IndividualResource({
return null;
}
+ const restricted = resource.restrictedDataWarning ? (
+
+
+
+ ) : null;
+
// If an out of date warning exists then show it. Otherwise show cadence information if it's available
let history: React.JSX.Element | null = null;
if (resource.outOfDateWarning) {
@@ -115,6 +121,7 @@ export function IndividualResource({
/>
+ {restricted}
{history}
diff --git a/static-site/components/list-resources/listResourcesApi.tsx b/static-site/components/list-resources/listResourcesApi.tsx
index 545a159ab..3e3ce7824 100644
--- a/static-site/components/list-resources/listResourcesApi.tsx
+++ b/static-site/components/list-resources/listResourcesApi.tsx
@@ -206,6 +206,10 @@ function groupIntermediatesByPathogen(
url,
lastUpdated,
};
+ if (nameParts.at(-1)?.includes("restricted")) {
+ // "restricted" in filename
+ resourceDetails.restrictedDataWarning = "Warning! This file may contain restricted data. Please refer to Restricted Data Terms of Use linked above.";
+ }
const nDaysOld = _timeDelta(lastUpdated);
if (nDaysOld && nDaysOld>365) {
resourceDetails.outOfDateWarning = `Warning! This file may be over a year old. Last known update on ${lastUpdated}`;
diff --git a/static-site/components/list-resources/resource-group.tsx b/static-site/components/list-resources/resource-group.tsx
index 8734cfe56..8102d91cb 100644
--- a/static-site/components/list-resources/resource-group.tsx
+++ b/static-site/components/list-resources/resource-group.tsx
@@ -377,6 +377,9 @@ function _getMaxResourceWidth(
(w: number, r: DisplayNamedResource): number => {
/* add the pixels for the display name */
let _w = r.displayName.default.length * namePxPerChar;
+ if (r.restrictedDataWarning) {
+ _w += 40; // icon + padding
+ }
if (r.outOfDateWarning) {
_w += 40; // icon + padding
} else if (r.nVersions && r.updateCadence) {
diff --git a/static-site/components/list-resources/types.ts b/static-site/components/list-resources/types.ts
index 6f2a7c6c4..fbfc8761f 100644
--- a/static-site/components/list-resources/types.ts
+++ b/static-site/components/list-resources/types.ts
@@ -77,6 +77,9 @@ export interface Resource {
nVersions?: number;
updateCadence?: UpdateCadence;
+ /** Warning is set if the resource potentially uses restricted data. */
+ restrictedDataWarning?: string;
+
/** If the resource is (potentially) out of date (according to the `lastUpdated` property)
* the `outOfDateWarning` may be set */
outOfDateWarning?: string;