From 55493d9d5b524f756748cad5ad91a182e182be8e Mon Sep 17 00:00:00 2001 From: Fran McDade <18710366+frano-m@users.noreply.github.com> Date: Fri, 1 May 2026 18:07:45 +1000 Subject: [PATCH 1/3] feat: apply hannes' poc for oauth authorization code flow (#4793) based on poc patches in #4793. points anvil-cmg dev at hannes' personal azul deployment with his client id, matching the original poc; subsequent commit switches to the real anvildev endpoints. Co-authored-by: hannes-ucsc Co-Authored-By: Claude Opus 4.7 (1M context) --- site-config/anvil-cmg/dev/authentication/constants.ts | 2 +- site-config/anvil-cmg/dev/config.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/site-config/anvil-cmg/dev/authentication/constants.ts b/site-config/anvil-cmg/dev/authentication/constants.ts index 4b0230c48..852c8be16 100644 --- a/site-config/anvil-cmg/dev/authentication/constants.ts +++ b/site-config/anvil-cmg/dev/authentication/constants.ts @@ -5,7 +5,7 @@ import { GoogleProfile } from "@databiosphere/findable-ui/lib/google/types"; import { OAUTH_GOOGLE_SIGN_IN } from "../../../common/authentication"; const CLIENT_ID = - "561542988117-9e04fhfrc9su130eb2ggea7bdppolkjq.apps.googleusercontent.com"; + "561542988117-flam3i2fft6q27eig0me0gg2u7j57b5t.apps.googleusercontent.com"; export const GOOGLE_PROVIDER: OAuthProvider = { ...GOOGLE_SIGN_IN_PROVIDER, diff --git a/site-config/anvil-cmg/dev/config.ts b/site-config/anvil-cmg/dev/config.ts index 3726d8931..200a6a84c 100644 --- a/site-config/anvil-cmg/dev/config.ts +++ b/site-config/anvil-cmg/dev/config.ts @@ -26,7 +26,7 @@ import { floating } from "./layout/floating"; // Template constants const APP_TITLE = "AnVIL Data Explorer"; -const DATA_URL = "https://service.anvil.gi.ucsc.edu"; +const DATA_URL = "https://service.hannes2.anvil.gi.ucsc.edu"; const BROWSER_URL = "https://explore.anvil.gi.ucsc.edu"; const PORTAL_URL = "https://anvilproject.dev.clevercanary.com"; From 5246210289a982319624a1a3656b4f86848e3eec Mon Sep 17 00:00:00 2001 From: Fran McDade <18710366+frano-m@users.noreply.github.com> Date: Fri, 1 May 2026 18:08:25 +1000 Subject: [PATCH 2/3] feat: switch anvil-cmg dev to anvildev azul authorize endpoint (#4793) revert data url to the real anvildev service, swap to the anvildev google client id, and wire the authorize field through the google provider so findable-ui's authorization code flow targets service.anvil.gi.ucsc.edu/user/authorize. Co-Authored-By: Claude Opus 4.7 (1M context) --- site-config/anvil-cmg/dev/authentication/constants.ts | 3 ++- site-config/anvil-cmg/dev/config.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/site-config/anvil-cmg/dev/authentication/constants.ts b/site-config/anvil-cmg/dev/authentication/constants.ts index 852c8be16..1c49f314f 100644 --- a/site-config/anvil-cmg/dev/authentication/constants.ts +++ b/site-config/anvil-cmg/dev/authentication/constants.ts @@ -5,11 +5,12 @@ import { GoogleProfile } from "@databiosphere/findable-ui/lib/google/types"; import { OAUTH_GOOGLE_SIGN_IN } from "../../../common/authentication"; const CLIENT_ID = - "561542988117-flam3i2fft6q27eig0me0gg2u7j57b5t.apps.googleusercontent.com"; + "561542988117-3cv4g8ii9enl2000ra6m02r3ne7bgnth.apps.googleusercontent.com"; export const GOOGLE_PROVIDER: OAuthProvider = { ...GOOGLE_SIGN_IN_PROVIDER, ...OAUTH_GOOGLE_SIGN_IN, + authorize: "https://service.anvil.gi.ucsc.edu/user/authorize", clientId: CLIENT_ID, }; diff --git a/site-config/anvil-cmg/dev/config.ts b/site-config/anvil-cmg/dev/config.ts index 200a6a84c..3726d8931 100644 --- a/site-config/anvil-cmg/dev/config.ts +++ b/site-config/anvil-cmg/dev/config.ts @@ -26,7 +26,7 @@ import { floating } from "./layout/floating"; // Template constants const APP_TITLE = "AnVIL Data Explorer"; -const DATA_URL = "https://service.hannes2.anvil.gi.ucsc.edu"; +const DATA_URL = "https://service.anvil.gi.ucsc.edu"; const BROWSER_URL = "https://explore.anvil.gi.ucsc.edu"; const PORTAL_URL = "https://anvilproject.dev.clevercanary.com"; From b3c1f4aa7cd9d7b9e8fdc81fe7f04eb28dbcf1bb Mon Sep 17 00:00:00 2001 From: Fran McDade <18710366+frano-m@users.noreply.github.com> Date: Tue, 5 May 2026 14:51:44 +1000 Subject: [PATCH 3/3] feat: upgrade findable-ui to 52.1 and set explicit oauth flow (#4793) findable-ui 52.1 makes oauthprovider a discriminated union keyed on a new `flow` field (oauth_flow.authorization_code | oauth_flow.implicit), replacing the previous truthiness check on `authorize`. set the flow explicitly on every provider: anvil-cmg/dev keeps authorize and gets authorization_code; the other five (anvil-cmg cc-dev/prod/tempdev, hca-dcp cc-ma-dev/ma-prod) get implicit. Co-Authored-By: Claude Opus 4.7 (1M context) --- package-lock.json | 9 ++++----- package.json | 2 +- site-config/anvil-cmg/cc-dev/authentication/constants.ts | 6 +++++- site-config/anvil-cmg/dev/authentication/constants.ts | 6 +++++- site-config/anvil-cmg/prod/authentication/constants.ts | 6 +++++- .../anvil-cmg/tempdev/authentication/constants.ts | 6 +++++- .../hca-dcp/cc-ma-dev/authentication/constants.ts | 6 +++++- site-config/hca-dcp/ma-prod/authentication/constants.ts | 6 +++++- 8 files changed, 35 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3b4b76e4..9854fa48f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "name": "explorer", "version": "3.0.1", "dependencies": { - "@databiosphere/findable-ui": "^51.1.0", + "@databiosphere/findable-ui": "^52.1.0", "@emotion/react": "^11", "@emotion/styled": "^11", "@mdx-js/loader": "^3", @@ -1110,9 +1110,9 @@ } }, "node_modules/@databiosphere/findable-ui": { - "version": "51.1.0", - "resolved": "https://registry.npmjs.org/@databiosphere/findable-ui/-/findable-ui-51.1.0.tgz", - "integrity": "sha512-aWy0zOOGim5xoJvWes1v/mqKSobBUlGmfZt4uIMp5f+oNKEFlAA27CSJ01SsbhWQKgpPdZT3f+kXxfYG0FDk+A==", + "version": "52.1.0", + "resolved": "https://registry.npmjs.org/@databiosphere/findable-ui/-/findable-ui-52.1.0.tgz", + "integrity": "sha512-kRZmj/Wd2UAfWxKwh0iJ3YYGLWim98s6q3c/P5rTGIsUgUSXuFFzEBfw2nxzP+B2OrE/MkqtnKH/y1pmUxG6lg==", "license": "Apache-2.0", "engines": { "node": "22.12.0" @@ -1136,7 +1136,6 @@ "react": "^19.2.3", "react-dom": "^19.2.3", "react-dropzone": "^14.3.8", - "react-gtm-module": "^2.0.11", "react-idle-timer": "^5.7.2", "react-window": "^1.8.11", "rehype-raw": "^7.0.0", diff --git a/package.json b/package.json index b2e4ca99c..7d5628b1d 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "check-system-status:anvil-cmg": "esrun e2e/anvil/anvil-check-system-status.ts" }, "dependencies": { - "@databiosphere/findable-ui": "^51.1.0", + "@databiosphere/findable-ui": "^52.1.0", "@emotion/react": "^11", "@emotion/styled": "^11", "@mdx-js/loader": "^3", diff --git a/site-config/anvil-cmg/cc-dev/authentication/constants.ts b/site-config/anvil-cmg/cc-dev/authentication/constants.ts index 4a96cb855..d2b0a256a 100644 --- a/site-config/anvil-cmg/cc-dev/authentication/constants.ts +++ b/site-config/anvil-cmg/cc-dev/authentication/constants.ts @@ -1,4 +1,7 @@ -import { OAuthProvider } from "@databiosphere/findable-ui/lib/config/entities"; +import { + OAUTH_FLOW, + OAuthProvider, +} from "@databiosphere/findable-ui/lib/config/entities"; import { GOOGLE_SIGN_IN_PROVIDER } from "@databiosphere/findable-ui/lib/google/config"; import { GoogleProfile } from "@databiosphere/findable-ui/lib/google/types"; @@ -11,4 +14,5 @@ export const GOOGLE_PROVIDER: OAuthProvider = { ...GOOGLE_SIGN_IN_PROVIDER, ...OAUTH_GOOGLE_SIGN_IN, clientId: CLIENT_ID, + flow: OAUTH_FLOW.IMPLICIT, }; diff --git a/site-config/anvil-cmg/dev/authentication/constants.ts b/site-config/anvil-cmg/dev/authentication/constants.ts index 1c49f314f..820d7a774 100644 --- a/site-config/anvil-cmg/dev/authentication/constants.ts +++ b/site-config/anvil-cmg/dev/authentication/constants.ts @@ -1,4 +1,7 @@ -import { OAuthProvider } from "@databiosphere/findable-ui/lib/config/entities"; +import { + OAUTH_FLOW, + OAuthProvider, +} from "@databiosphere/findable-ui/lib/config/entities"; import { GOOGLE_SIGN_IN_PROVIDER } from "@databiosphere/findable-ui/lib/google/config"; import { GoogleProfile } from "@databiosphere/findable-ui/lib/google/types"; @@ -12,6 +15,7 @@ export const GOOGLE_PROVIDER: OAuthProvider = { ...OAUTH_GOOGLE_SIGN_IN, authorize: "https://service.anvil.gi.ucsc.edu/user/authorize", clientId: CLIENT_ID, + flow: OAUTH_FLOW.AUTHORIZATION_CODE, }; export const TERRA_SERVICE = { diff --git a/site-config/anvil-cmg/prod/authentication/constants.ts b/site-config/anvil-cmg/prod/authentication/constants.ts index 32d4ae204..31ae57023 100644 --- a/site-config/anvil-cmg/prod/authentication/constants.ts +++ b/site-config/anvil-cmg/prod/authentication/constants.ts @@ -1,4 +1,7 @@ -import { OAuthProvider } from "@databiosphere/findable-ui/lib/config/entities"; +import { + OAUTH_FLOW, + OAuthProvider, +} from "@databiosphere/findable-ui/lib/config/entities"; import { GOOGLE_SIGN_IN_PROVIDER } from "@databiosphere/findable-ui/lib/google/config"; import { GoogleProfile } from "@databiosphere/findable-ui/lib/google/types"; @@ -11,6 +14,7 @@ export const GOOGLE_PROVIDER: OAuthProvider = { ...GOOGLE_SIGN_IN_PROVIDER, ...OAUTH_GOOGLE_SIGN_IN, clientId: CLIENT_ID, + flow: OAUTH_FLOW.IMPLICIT, }; export const TERRA_SERVICE = { diff --git a/site-config/anvil-cmg/tempdev/authentication/constants.ts b/site-config/anvil-cmg/tempdev/authentication/constants.ts index cde75587a..71034357c 100644 --- a/site-config/anvil-cmg/tempdev/authentication/constants.ts +++ b/site-config/anvil-cmg/tempdev/authentication/constants.ts @@ -1,4 +1,7 @@ -import { OAuthProvider } from "@databiosphere/findable-ui/lib/config/entities"; +import { + OAUTH_FLOW, + OAuthProvider, +} from "@databiosphere/findable-ui/lib/config/entities"; import { GOOGLE_SIGN_IN_PROVIDER } from "@databiosphere/findable-ui/lib/google/config"; import { GoogleProfile } from "@databiosphere/findable-ui/lib/google/types"; @@ -11,6 +14,7 @@ export const GOOGLE_PROVIDER: OAuthProvider = { ...GOOGLE_SIGN_IN_PROVIDER, ...OAUTH_GOOGLE_SIGN_IN, clientId: CLIENT_ID, + flow: OAUTH_FLOW.IMPLICIT, }; export const TERRA_SERVICE = { diff --git a/site-config/hca-dcp/cc-ma-dev/authentication/constants.ts b/site-config/hca-dcp/cc-ma-dev/authentication/constants.ts index a13dc58d6..50ab95e03 100644 --- a/site-config/hca-dcp/cc-ma-dev/authentication/constants.ts +++ b/site-config/hca-dcp/cc-ma-dev/authentication/constants.ts @@ -1,4 +1,7 @@ -import { OAuthProvider } from "@databiosphere/findable-ui/lib/config/entities"; +import { + OAUTH_FLOW, + OAuthProvider, +} from "@databiosphere/findable-ui/lib/config/entities"; import { GOOGLE_SIGN_IN_PROVIDER } from "@databiosphere/findable-ui/lib/google/config"; import { GoogleProfile } from "@databiosphere/findable-ui/lib/google/types"; @@ -11,6 +14,7 @@ export const GOOGLE_PROVIDER: OAuthProvider = { ...GOOGLE_SIGN_IN_PROVIDER, ...OAUTH_GOOGLE_SIGN_IN, clientId: CLIENT_ID, + flow: OAUTH_FLOW.IMPLICIT, }; export const TERRA_SERVICE = { diff --git a/site-config/hca-dcp/ma-prod/authentication/constants.ts b/site-config/hca-dcp/ma-prod/authentication/constants.ts index 5ff736f93..94f27dd07 100644 --- a/site-config/hca-dcp/ma-prod/authentication/constants.ts +++ b/site-config/hca-dcp/ma-prod/authentication/constants.ts @@ -1,4 +1,7 @@ -import { OAuthProvider } from "@databiosphere/findable-ui/lib/config/entities"; +import { + OAUTH_FLOW, + OAuthProvider, +} from "@databiosphere/findable-ui/lib/config/entities"; import { GOOGLE_SIGN_IN_PROVIDER } from "@databiosphere/findable-ui/lib/google/config"; import { GoogleProfile } from "@databiosphere/findable-ui/lib/google/types"; @@ -11,6 +14,7 @@ export const GOOGLE_PROVIDER: OAuthProvider = { ...GOOGLE_SIGN_IN_PROVIDER, ...OAUTH_GOOGLE_SIGN_IN, clientId: CLIENT_ID, + flow: OAUTH_FLOW.IMPLICIT, }; export const TERRA_SERVICE = {