Skip to content

feat(data-warehouse): show trino connection in data ops settings - #110372

Merged
EDsCODE merged 2 commits into
eric/data-ops-trino-variant-backendfrom
eric/data-ops-trino-settings-frontend
Oct 6, 2026
Merged

EDsCODE merged 2 commits into
eric/data-ops-trino-variant-backendfrom
eric/data-ops-trino-settings-frontend

Conversation

@EDsCODE

@EDsCODE EDsCODE commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

  • A Trino organization's Settings tab in Data ops has no way to connect. After layer 2 its Postgres connection is null, and the tab shows nothing in its place.
  • The tab also calls the warehouse ready while Trino is still setting up on top of it.
  • This PR is layer 4 of 4, on top of feat(data-warehouse): add trino monitoring tab to data ops #110371. The Trino flag must stay off until this layer is on master.

Changes

  • A Trino organization sees its host, port, catalog, schema, and username, plus a Trino CLI command and a JDBC URL.

Trino settings, ready

  • The status stays at provisioning while the query engine sets up, and the connection details stay hidden until it is ready.

Trino settings, query engine setting up

  • A failed setup shows an error banner that tells the user to contact support.

Trino settings, query engine failed

  • The provision form says the warehouse name becomes part of the connection host and catalog. It no longer previews a Postgres host.

Trino provision form

  • The reset password dialog says the new password can take up to five minutes to apply.
  • A DuckDB organization's Settings tab does not change. This is that tab rendered from this branch:

DuckDB settings, unchanged

At 520px the fields stack in one column:

Trino settings at 520px Trino settings at 520px

The Trino states are a new surface, so they have no before screenshot. All values in the screenshots are invented.

Where to look first: trinoCombinedStatus folds the warehouse state and the Trino state into the one status a user sees. Trino's state only counts once the warehouse itself is ready.

How did you test this code?

Test rationale:

  • The trinoCombinedStatus cases catch a wrong status for each pair of warehouse and Trino states. The helper is new.
  • shows the Trino connection and no Postgres details for a Trino organization catches a psql command shown to a Trino organization.
  • keeps the Postgres connection for a DuckDB organization catches the Trino branch changing the existing tab.
  • The provisioning logic case catches status polling that stops while Trino is still setting up.

The screenshots come from Storybook with mocked API responses, at 1200px and 520px.

Not checked:

  • Nothing ran against a live Trino cell, so the CLI command and JDBC URL were not used to connect.
  • The five minute figure comes from the sync intervals in the control plane, not from a measured reset.

👉 Stay up-to-date with PostHog coding conventions for a smoother review.

Release status

  • No feature flag controls this change
  • This change is behind a feature flag and is not available to users
  • This change makes a previously flagged feature available to everyone

Automatic notifications

  • Publish to changelog?

Docs update

None. The variant is not available to users.

🤖 Agent context

Autonomy: Human-driven (agent-assisted)

Agent: Claude Code. Claude Sonnet 5.5 subagents wrote the code. Claude Opus 5.5 planned and coordinated the work.

  • The four layers came from one written design and plan. A separate subagent reviewed each task, and one more reviewed the whole stack.
  • Skills invoked: superpowers:brainstorming, superpowers:writing-plans, superpowers:subagent-driven-development, superpowers:using-git-worktrees, /stacking-prs, /writing-pr-descriptions, /reviewing-with-coderabbit.
  • CodeRabbit CLI pass: skipped. The CLI was signed out and setup was declined.
  • Bot review threads, all resolved: the Greptile fixture finding is fixed. The Trino settings, status, and polling tests now build typed warehouse status fixtures instead of casting partial objects.
  • Restacked onto master on 2026-10-06. Claude Opus 5.5 wrote the restack and the fixture change.
  • No duplicate: a search of open PRs for the Trino Data ops variant found nothing.
  • Public artifact: no customer material informed this work. Every fixture and screenshot uses invented names and example.com hosts.
  • The stack below this layer is feat(data-warehouse): add a trino variant of the data ops scene #110369, feat(data-warehouse): add trino monitoring endpoints and mcp tools #110370, and feat(data-warehouse): add trino monitoring tab to data ops #110371.

🤖 Generated with Claude Code

@EDsCODE
EDsCODE added this pull request to stack #110373 October 1, 2026 21:54
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

🤖 CI report

⚠️ Trunk lane — backend Python lane

This PR is assigned to the backend Python lane. It runs backend Python tests and may merge in parallel with PRs in other lanes.

⚠️ Complexity (TypeScript) — 2 functions above the limit (max 94)

Cyclomatic complexity above the limit in changed typescript files (10 for production files, 15 for test files). Warn only: worth simplifying when you next touch these functions.

Function Location Complexity Limit
SettingsTab products/data_warehouse/frontend/scenes/DataOpsScene/tabs/SettingsTab.tsx:107 94 10
loadWarehouseStatusSuccess products/data_warehouse/frontend/scenes/DataOpsScene/tabs/warehouseProvisioningLogic.ts:688 22 10
✅ Duplication (Python) — clean

New Python code duplication introduced by this branch. Fails at 70+ tokens in app code, or 150+ tokens when both copies live in test files. Advisory while the gate proves itself: extract a shared helper instead of copying.

✅ Duplication (TypeScript) — clean

New TypeScript code duplication introduced by this branch. Fails at 70+ tokens in app code, or 150+ tokens when both copies live in test files. Advisory while the gate proves itself: extract a shared helper instead of copying.

⚠️ Bundle size — 🔺 +3.7 KiB (+0.0%)

Uncompressed size of every built .js bundle, compared against the base branch.

Total: 76.06 MiB · 🔺 +3.7 KiB (+0.0%)

File Size Δ vs base
posthog-app/_parent/products/data_warehouse/frontend/scenes/DataOpsScene/DataWarehouseScene.js 65.2 KiB 🔺 +3.7 KiB (+6.0%)

Posted automatically by build-bundle-size-report · uncompressed bytes from dist-report

⚠️ Eager graph — 2 over budget

How much code each root ships on the eager path — downloaded and parsed before the surface is interactive. Measured from the esbuild output chunks (post-tree-shake, static imports only); lazy import() / React.lazy chunks are not counted.

Root Eager (shipped) Δ vs base Budget
entry (logged-out pages, app bootstrap)
src/index.tsx
1.64 MiB · 23 files 🔺 +75 B (+0.0%) █████████░ 88.9% of 1.84 MiB
logged-out boot: index + App + bootApp (preloaded by every page, including /login)
src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
3.72 MiB · 663 files 🔺 +75 B (+0.0%) █████████░ 92.4% of 4.03 MiB
authenticated shell (every logged-in page)
src/scenes/AuthenticatedShell.tsx
7.60 MiB · 2,405 files 🔺 +75 B (+0.0%) █████████░ 91.1% of 8.34 MiB
🟡 dashboard scene
src/scenes/dashboard/Dashboard.tsx
13.91 MiB · 4,918 files 🔺 +75 B (+0.0%) ██████████ 103.2% of 13.48 MiB
today home path
src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
7.62 MiB · 2,417 files 🔺 +75 B (+0.0%) █████████░ 88.8% of 8.58 MiB
🟡 events scene
src/scenes/activity/explore/EventsScene.tsx
13.64 MiB · 4,790 files 🔺 +75 B (+0.0%) ██████████ 108.0% of 12.64 MiB
replay detail scene
src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
12.13 MiB · 4,143 files 🔺 +75 B (+0.0%) ████████░░ 77.2% of 15.72 MiB

🟢 node_modules/monaco-editor/ stays out of src/index.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/index.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/svg/ stays out of src/index.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/components/ stays out of src/index.tsx
🟢 node_modules/monaco-editor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/layout/navigation-3000/navigationLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/scenes/dashboard/dashboardLogic.tsx stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/lemon-ui/LemonMarkdown/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/RichContentEditor/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/lib/components/CodeSnippet/ stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 src/taxonomy/core-filter-definitions-by-group.json stays out of src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
🟢 node_modules/monaco-editor/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/lib/components/ActivityLog/describers stays out of src/scenes/AuthenticatedShell.tsx
🟢 products/dashboards/frontend/widgets/previews/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/session-recordings/player/sessionRecordingPlayerLogic.ts stays out of src/scenes/AuthenticatedShell.tsx
🟢 zod/v4/locales/de.js stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/svg/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 node_modules/@posthog/brand/dist/generated/hoggies/components/ stays out of src/scenes/AuthenticatedShell.tsx
🟢 src/scenes/project-homepage/ai-first/AiFirstHomepage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/scenes/project-homepage/today/TodayReportPage.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
🟢 src/queries/Query/Query.tsx stays out of src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx

Largest files eagerly shipped from src/index.tsx
Size File
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
24.6 KiB ../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js
6.3 KiB ../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js
4.5 KiB ../node_modules/.pnpm/@jspm+core@2.1.0/node_modules/@jspm/core/nodelibs/browser/process.js
3.9 KiB ../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js
1.4 KiB ../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js
1.3 KiB src/index.tsx
1.3 KiB src/RootErrorBoundary.tsx
912 B ../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js
839 B src/scenes/ChunkLoadErrorBoundary.tsx
Largest files eagerly shipped from src/index.tsx + src/scenes/App.tsx + src/scenes/bootApp.ts
Size File
306.2 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
220.3 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
99.7 KiB src/lib/api.ts
90.7 KiB src/products.tsx
68.7 KiB src/lib/lemon-ui/icons/icons.tsx
40.7 KiB src/lib/utils/eventUsageLogic.ts
38.7 KiB ../node_modules/.pnpm/@dnd-kit+core@6.0.8_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@dnd-kit/core/dist/core.esm.js
33.9 KiB ../node_modules/.pnpm/kea@4.0.0-pre.6_patch_hash=139b8d1f1304f9d9da452a9a1244c94ea679dbcb85687d8999563146879fb6f5_react@18.3.1/node_modules/kea/lib/index.cjs.js
29.0 KiB ../node_modules/.pnpm/zod@4.3.6/node_modules/zod/v4/core/schemas.js
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx
Size File
306.2 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
280.3 KiB src/taxonomy/core-filter-definitions-by-group.json
220.3 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
90.7 KiB src/products.tsx
90.6 KiB ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js
Largest files eagerly shipped from src/scenes/dashboard/Dashboard.tsx
Size File
315.5 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js
306.2 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
280.3 KiB src/taxonomy/core-filter-definitions-by-group.json
220.3 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
181.8 KiB src/queries/validators.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
Largest files eagerly shipped from src/scenes/AuthenticatedShell.tsx + src/scenes/project-homepage/ProjectHomepage.tsx + src/scenes/project-homepage/today/TodayHome.tsx
Size File
306.2 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
280.3 KiB src/taxonomy/core-filter-definitions-by-group.json
220.3 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
90.7 KiB src/products.tsx
90.6 KiB ../node_modules/.pnpm/@tiptap+core@3.20.6_@tiptap+pm@3.20.6/node_modules/@tiptap/core/dist/index.js
Largest files eagerly shipped from src/scenes/activity/explore/EventsScene.tsx
Size File
315.5 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js
306.2 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
280.3 KiB src/taxonomy/core-filter-definitions-by-group.json
220.3 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
181.8 KiB src/queries/validators.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js
Largest files eagerly shipped from src/scenes/session-recordings/detail/SessionRecordingDetail.tsx
Size File
315.5 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/rrweb.js
306.2 KiB ../node_modules/.pnpm/posthog-js@1.435.5_@types+react@18.3.27_react@18.3.1/node_modules/posthog-js/dist/module.mjs
280.3 KiB src/taxonomy/core-filter-definitions-by-group.json
220.3 KiB ../node_modules/.pnpm/@posthog+icons@0.38.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@posthog/icons/dist/posthog-icons.es.js
181.8 KiB src/queries/validators.js
153.7 KiB ../node_modules/.pnpm/re2js@0.4.1/node_modules/re2js/build/index.esm.js
126.8 KiB ../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js
112.3 KiB ../packages/quill/packages/quill/dist/index.js
99.7 KiB src/lib/api.ts
93.3 KiB ../node_modules/.pnpm/prosemirror-view@1.40.1/node_modules/prosemirror-view/dist/index.js

Posted automatically by check-eager-graph · sizes are eager output bytes (shipped, post-tree-shake) from the esbuild metafile · part of #32479

✅ Toolbar bundle — eager 2.21 MiB within budget

What the toolbar ships to customer pages, measured from the esbuild output (minified, post-tree-shake). The eager set is the entry plus everything statically imported from it — fetched before any feature runs; deferred chunks load lazily. The eager guardrail is 5.72 MiB. Each output file must also stay below 10 MB, where CloudFront stops compressing it. The module boundary is enforced separately by check-toolbar-graph.

Metric Size Δ vs base Budget
Eager (shipped)
entry + static imports
2.21 MiB · 19 files 🔺 +75 B (+0.0%) ████░░░░░░ 38.7% of 5.72 MiB
Deferred (lazy) 2.12 MiB · 44 files no change n/a — loads on demand
Loader dist/toolbar.js 1.2 KiB no change █░░░░░░░░░ 6.0% of 19.5 KiB
Largest eagerly-shipped chunks
Size File
851.3 KiB dist/toolbar/toolbar-app-6UODEDZY.css
657.5 KiB dist/toolbar/chunk-chunk-GEFFN7AU.js
259.4 KiB dist/toolbar/chunk-chunk-6EL3FW4B.js
138.2 KiB dist/toolbar/chunk-chunk-RXQP4VID.js
131.8 KiB dist/toolbar/chunk-chunk-FDH2IBXT.js
75.2 KiB dist/toolbar/toolbar-app-NTNFGYPU.js
69.0 KiB dist/toolbar/chunk-chunk-TSAL54PB.js
35.6 KiB dist/toolbar/chunk-chunk-KKPXRYOI.js
21.0 KiB dist/toolbar/chunk-chunk-GNLHSNAR.js
6.8 KiB dist/toolbar/chunk-chunk-DV7IWQNF.js

Posted automatically by check-toolbar-size · sizes are toolbar output bytes (shipped, post-tree-shake) from the esbuild metafile

✅ Dist folder size — 🔺 +34.5 KiB (+0.0%)

Total size of the built frontend/dist folder (all assets), compared against the base branch.

Total: 999.08 MiB · 🔺 +34.5 KiB (+0.0%)

@EDsCODE EDsCODE changed the title feat(data-warehouse): show trino connection and status in data ops settings feat(data-warehouse): show trino connection in data ops settings Oct 1, 2026
@greptile-apps

greptile-apps Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Retrigger

[Medium risk] Adds Trino connection display and status tracking to data warehouse settings.

The repository’s typed-fixture requirement must be satisfied before merging; no blocking runtime failure was established.

Reviews (1) · Last reviewed commit: "feat(data-warehouse): show trino connect..."

Comment thread products/data_warehouse/frontend/scenes/DataOpsScene/tabs/SettingsTab.test.tsx Outdated
@coderabbitai

coderabbitai Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: PostHog/posthog/.coderabbit.yaml
  • Review profile: QUIET
  • Plan: Enterprise
  • Run ID: 7211986a-a97b-4464-adee-290160cce506
📥 Commits

Reviewing files that changed from the base of the PR and between a4c318a and d738666.

📒 Files selected for processing (4)
  • products/data_warehouse/frontend/scenes/DataOpsScene/tabs/SettingsTab.test.tsx
  • products/data_warehouse/frontend/scenes/DataOpsScene/tabs/trinoWarehouseStatus.test.ts
  • products/data_warehouse/frontend/scenes/DataOpsScene/tabs/warehouseProvisioningLogic.test.ts
  • products/data_warehouse/frontend/scenes/DataOpsScene/tabs/warehouseStatusFixtures.ts

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 8 remain after this review.


📝 Walkthrough

Walkthrough

The settings tab now combines warehouse and Trino status for Trino organizations. It displays Trino connection details and connection guidance, and provides Trino-specific password-reset text. Warehouse polling continues while Trino setup is pending or provisioning. Tests cover combined status, polling behavior, and Trino and DuckDB settings.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to d7386

This change shows Trino connection details and status in the Data ops settings tab and leaves DuckDB settings unchanged. No concrete merge-blocking risk was found. The author notes that the Trino flag should stay off until this layer is on master.

Security Architecture Review

Security architecture risk: 🔵 Low · up to d7386

The changes preserve the existing organization-scoped access flow and keep connection details hidden until both services are ready. No new security vulnerability was established, but connection-string safety depends on upstream data constraints that were not fully verified.

Retained concerns
No architecture-level concerns identified.

Security review details

Security Blast Radius

  • observed — The displayed connection targets an organization-wide warehouse, with the current project's schema supplied separately. The upstream Trino presenter rejects mismatched organization identifiers and returns connection metadata only for ready Trino state.

Trust Boundaries and Controls

  • observed — The existing project endpoint inherits authentication, API-scope, access-control, membership, and organization enforcement checks for normal user authentication. Organization identity is resolved server-side rather than accepted from connection fields. These controls were not changed by this PR.
  • observed — Host, catalog, and username come from a configured control-plane request and receive type/non-empty checks before direct interpolation into commands and URLs. Project-controlled schema input receives identifier validation. CodeSnippet's highlighted path serializes lowlight output through toHtml before HTML assignment; upstream field-generation constraints and serializer escaping were not fully verified, so no unprivileged injection path is established.

Resilience and Maintainability Implications

  • observed — The added polling condition requires a ready warehouse and is disjoint from teardown. Existing deleted-state cleanup retains its in-flight and successful-deletion guards, with tests covering deletion retry and suppression of duplicate deletion after stale responses.

Hardening Proposals

  • proposed — If control-plane connection fields are not strictly generated under a documented syntax contract, constrain their accepted syntax and escape CLI arguments and JDBC components at the output boundary. This is defensive hardening, not an observed injection vulnerability.
🚥 Pre-merge checks | ✅ 1
✅ Passed checks (1 passed)
Check name Status Explanation
Description check ✅ Passed The description explains the user problem, visible changes, test rationale, screenshots, known limits, release status, and agent context. The release status uses checkboxes instead of the required sin…
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Comment @coderabbitai help to get the list of available commands.

@trunk-io

trunk-io Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Static Badge   Static Badge   Static Badge

View Full Report ↗︎ ⋅ Docs

EDsCODE and others added 2 commits October 6, 2026 11:00
…ttings

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… tests

The Trino settings, status and polling tests cast partial status objects,
which hid any drift from the generated API type.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@EDsCODE
EDsCODE force-pushed the eric/data-ops-trino-monitoring-frontend branch from 59507ad to 6fefb06 Compare October 6, 2026 09:14
@EDsCODE
EDsCODE force-pushed the eric/data-ops-trino-settings-frontend branch from a4c318a to d738666 Compare October 6, 2026 09:15
@EDsCODE
EDsCODE removed this pull request from stack #110373 October 6, 2026 09:38
Base automatically changed from eric/data-ops-trino-monitoring-frontend to eric/data-ops-trino-variant-backend October 6, 2026 09:38
@EDsCODE
EDsCODE merged commit d738666 into eric/data-ops-trino-variant-backend Oct 6, 2026
235 checks passed
@EDsCODE
EDsCODE deleted the eric/data-ops-trino-settings-frontend branch October 6, 2026 09:38
@EDsCODE

EDsCODE commented Oct 6, 2026

Copy link
Copy Markdown
Collaborator Author

Combined into #110369, which carries the whole Trino Data ops variant against master. GitHub shows this PR as merged because its commits were pushed into its base branch, eric/data-ops-trino-variant-backend. Nothing from it is on master. Review it in #110369.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant