Repository navigation
fix(platform): name a failed import status read on the OAuth apps card - #4400
Conversation
|
Independent exact-head verdict — Codex #11, separate from author Claude #6. PASS for the scoped review; no blocking findings at
Observed local verification, existing dependencies only:
CI: pending, stalled incident Delivery fallback for TALE-316 and TALE-359 ( |
5b152b2 to
bd44527
Compare
75121d3 to
cd45be2
Compare
The Settings > Connectors OAuth apps card read a failed Knowledge import status read (OneDrive, Google Drive's import lane) as "Not configured" and offered Configure, so an admin could override a deployment app that was there. The rows that read decides now say "Status unavailable" without Configure or the Entra ID SSO reuse, and one alert names the failure with Try again, which runs only the failed reads. A row the app list or the connector catalog already answers keeps its answer; the app-list alert is unchanged. Copy in EN/DE/FR, a sentence in the admin connectors docs, and the automation register entry for the new jsdom suite.
cd45be2 to
9421bc2
Compare
What changed
The Settings > Connectors OAuth apps card asks the Knowledge import lanes (
cloud_import/queries:getOauthAppStatusfor OneDrive and for Google Drive's import half) whether a deployment app stands behind their rows. On main, a read that settled in error (data: undefined,isLoading: false, e.g. a 503) collapsedenvConfiguredtofalse. The row then said Not configured and offered Configure (and Use Entra ID SSO app on OneDrive), with no failure named and no retry. An admin could override a deployment app that was there.oauth-apps-card.tsxnow reads both status queries throughreadStateOf, the same pattern #4378 used for the same endpoint in the Documents connect dialog:statusUnavailable. It shows a Status unavailable badge and no Configure or Use Entra ID SSO app.CatalogLoadErrornames the failure (connectors.oauthApps.statusLoadFailed). Its Try again refetches only the failed status reads, andfailureKeymakes each new failure announce again.loadingleaves out a read that is unavailable, so the card doesn't re-mask. Try again is busy, keeps its node and its focus, and keeps them again if the retry fails too.SettingsSectionwithtabIndex={-1}). Configure comes back only once a read answers:configured: false→ Not configured,source: 'env'→ Deployment app.Also in this PR:
statusUnavailableandstatusLoadFailed. Neither key contains ß, so de-CH needs no override.docs/{en,de,fr}/platform/admin/connectors.md.tests/manual/reference/automation.md, placed right after the bug(platform): Cloud import connect treats a failed app-status read as not connected #3864 connect-dialog paragraph.How I verified it
oauth-apps-card.status-read.test.tsxruns the real hooks, adapters,backendFetchand retry policy againstsyntheticBackend(). It passes 13/13 in jsdom, covering:configured: false, an env source, and the loading mask;oauth-apps-card.tsx, 9 of 13 fail. The 4 that pass are the answered or known-row cases.oauth-apps-card.test.tsxpass 22/22 in headless Chromium through a review-only Vitest config outside the clone, so the focus handoff was checked in a real browser too. The axe test was added after that run.lib/i18n(--project server): 188/188docs.test.tsandlocale-tree.test.ts: 25/25bun run lint:manual: okoxlintover the card and both card suites: 0 warnings, 0 errorsoxfmt --check: cleantscover the card, its suites,connectors-settings.tsxand the ambient files: exit 0, 0 errorsgit merge-treeagainst all 53 open PR heads that touchautomation.md,messages/{en,de,fr}.yml, the card or the connectors docs: each PR conflicts in the same files with this branch as with main, so the branch adds no new conflict.Open points for the reviewer
Closes #3893