Skip to content

Reintroduce houdini 2#528

Draft
thokra-nav wants to merge 1 commit into
mainfrom
reintroduce_houdini2
Draft

Reintroduce houdini 2#528
thokra-nav wants to merge 1 commit into
mainfrom
reintroduce_houdini2

Conversation

@thokra-nav

Copy link
Copy Markdown
Contributor

Revert revert houdini 2 (#527)"

This reverts commit 320b248.

Revert revert houdini 2 (#527)"

This reverts commit 320b248.
Copilot AI review requested due to automatic review settings July 2, 2026 14:41
@thokra-nav thokra-nav marked this pull request as draft July 2, 2026 14:42

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Reintroduces Houdini v2 across the Console frontend after a prior revert, updating generated query behavior, route typings, and UI components to match Houdini 2’s masking and “non-exhaustive” union/interface type patterns.

Changes:

  • Bumps Houdini packages to stable v2 releases and updates Houdini/Vite/SvelteKit integration points (houdini.config.js, vite.config.ts, hooks/client).
  • Updates many route queries and pages to use Houdini 2 caching defaults (CacheAndNetwork), new facets shapes, and @mask_disable where unmasked presenter data is expected.
  • Refactors UI components to avoid interface-fragment pitfalls (adds shared IssueFragment.gql, centralizes issue resource derivation, and introduces exhaustive() helper for non-exhaustive union/interface variants).

Reviewed changes

Copilot reviewed 102 out of 104 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
vite.config.ts Ensures schema endpoint env var is available at build/runtime for Houdini schema fetching.
src/routes/userInfo.gql Adds __typename to align with Houdini 2 interface/union handling.
src/routes/team/[team]/valkey/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/valkey/create/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/valkey/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/unleash/+page.svelte Uses Houdini runtime GraphQLError type instead of a local copy.
src/routes/team/[team]/settings/service_accounts/[serviceAccountID]/token/create/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/settings/service_accounts/[serviceAccountID]/binding/add/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/settings/confirm_delete/+page.svelte Moves QueryResult typing to houdini/runtime.
src/routes/team/[team]/settings/+page.svelte Moves QueryResult typing to houdini/runtime.
src/routes/team/[team]/secrets/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/secrets/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/repositories/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/postgres/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/postgres/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/opensearch/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/opensearch/create/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/opensearch/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/members/AddMember.svelte Updates Houdini input type imports for v2.
src/routes/team/[team]/kafka/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/kafka/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/jobs/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/jobs/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/issues/query.gql Reworks issues query to use facets + shared IssueFragment unmasked.
src/routes/team/[team]/issues/metadata.gql Removes redundant metadata query (replaced by facets).
src/routes/team/[team]/issues/+page.ts Drops metadata loader and updates Houdini input type imports.
src/routes/team/[team]/issues/+page.svelte Consumes facets for filters and updates IssueType/severity handling.
src/routes/team/[team]/configs/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/configs/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/buckets/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/buckets/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/bigquery/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/bigquery/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/applications/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/applications/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/alerts/query.gql Switches to facets-based filtering and expands Prometheus alert fields.
src/routes/team/[team]/alerts/PrometheusAlarmDetail.svelte Moves ValueOf typing to houdini/runtime.
src/routes/team/[team]/alerts/metadata.gql Removes redundant metadata query (replaced by facets).
src/routes/team/[team]/alerts/+page.ts Drops metadata loader and updates Houdini input type imports.
src/routes/team/[team]/alerts/+page.svelte Consumes facets and simplifies Prometheus alert rendering.
src/routes/team/[team]/activity-log/query.gql Switches cache policy to CacheAndNetwork.
src/routes/team/[team]/activity-log/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/[env]/valkey/[valkey]/edit/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/[env]/valkey/[valkey]/edit/+page.server.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/[env]/valkey/[valkey]/delete/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/[env]/valkey/[valkey]/(single)/query.gql Uses shared IssueFragment unmasked for issue presenters.
src/routes/team/[team]/[env]/postgres/[postgres]/delete/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/[env]/opensearch/[opensearch]/edit/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/[env]/opensearch/[opensearch]/edit/+page.server.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/[env]/opensearch/[opensearch]/delete/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/[env]/opensearch/[opensearch]/(single)/query.gql Uses shared IssueFragment unmasked for issue presenters.
src/routes/team/[team]/[env]/job/[job]/query.gql Uses shared IssueFragment unmasked for issue presenters.
src/routes/team/[team]/[env]/job/[job]/logs/query.gql Expands log destination inline fragments to satisfy Houdini 2 masking.
src/routes/team/[team]/[env]/job/[job]/logs/JobLogs.svelte Uses generated $result type instead of manual prop typing.
src/routes/team/[team]/[env]/job/[job]/issues/query.gql Uses shared IssueFragment unmasked for issue presenters.
src/routes/team/[team]/[env]/job/[job]/issues/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/[env]/job/[job]/activity-log/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/[env]/cloudsql/[cloudsql]/query.gql Uses shared IssueFragment unmasked for issue presenters.
src/routes/team/[team]/[env]/app/[app]/utilization/query.gql Moves shared fields into inline fragments to satisfy Houdini 2 masking.
src/routes/team/[team]/[env]/app/[app]/utilization/+page.svelte Introduces exhaustive() usage and adapts to data payload shape changes.
src/routes/team/[team]/[env]/app/[app]/resize/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/[env]/app/[app]/query.gql Uses shared IssueFragment unmasked for issue presenters.
src/routes/team/[team]/[env]/app/[app]/logs/query.gql Expands log destination inline fragments to satisfy Houdini 2 masking.
src/routes/team/[team]/[env]/app/[app]/logs/Logs.svelte Uses generated $result typing and exhaustive() for safe iteration.
src/routes/team/[team]/[env]/app/[app]/issues/query.gql Uses shared IssueFragment unmasked for issue presenters.
src/routes/team/[team]/[env]/app/[app]/issues/+page.ts Updates Houdini input type imports for v2.
src/routes/team/[team]/[env]/app/[app]/image/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/team/[team]/[env]/app/[app]/activity-log/+page.ts Updates Houdini input type imports for v2.
src/routes/deployments/+page.ts Updates Houdini input type imports for v2.
src/routes/admin/userSyncLog/query.gql Refactors interface selection into inline fragments for Houdini 2.
src/routes/admin/userSyncLog/+page.svelte Uses exhaustive() to iterate safely over interface/union results.
src/routes/admin/teams/+page.ts Updates Houdini input type imports for v2.
src/routes/admin/service_accounts/[serviceAccountID]/token/create/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/admin/service_accounts/[serviceAccountID]/binding/add/+page.svelte Migrates route typing import to SvelteKit $types.
src/routes/admin/+layout.svelte Migrates route typing import to SvelteKit $types.
src/routes/+layout.svelte Migrates route typing import to SvelteKit $types.
src/lib/utils/houdini.ts Adds exhaustive() helper + Exhaustive<T> type for non-exhaustive variants.
src/lib/domain/vulnerability/SuppressFinding.svelte Moves ValueOf typing to houdini/runtime.
src/lib/domain/vulnerability/BulkSuppressCVE.svelte Moves ValueOf typing to houdini/runtime.
src/lib/domain/list-items/IssueListItem.svelte Switches to unmasked presenter data + centralized issue resource mapping.
src/lib/domain/list-items/DeploymentWithTeamListItem.svelte Moves ValueOf typing to houdini/runtime.
src/lib/domain/list-items/DeploymentListItem.svelte Moves ValueOf typing to houdini/runtime.
src/lib/domain/list-items/ActivityLogListItem.svelte Flattens type-keyed payload props for text components under Houdini 2.
src/lib/domain/issues/IssuesFacets.svelte Updates facets prop shapes to include counts.
src/lib/domain/issues/issueResource.ts Adds shared issue “resource” derivation and IssueDisplayData contract.
src/lib/domain/issues/IssueFragment.gql Adds a shared fragment used with @mask_disable for issue presenters.
src/lib/domain/issues/CriticalIssuesCard.svelte Updates issue typing to shared presenter contract.
src/lib/domain/issues/CriticalIssues.svelte Switches to shared fragment and updated row component props.
src/lib/domain/issues/CriticalIssueRow.svelte Refactors to shared issue resource mapping + safer link handling.
src/lib/domain/alerts/AlertsFacets.svelte Updates environment facets prop shape to include counts.
src/lib/domain/activity/TeamActivityCard.svelte Updates Houdini input type imports for v2.
src/lib/domain/activity/shared/texts/types.ts Updates activity log entry typing model for Houdini 2 interface fragments.
src/lib/domain/activity/shared/texts/PostgresDeletedActivityLogEntryText.svelte Adjusts typing to match Houdini 2 fragment data structure.
src/lib/domain/activity/shared/texts/DefaultText.svelte Adjusts typing to match Houdini 2 fragment data structure.
src/hooks.server.ts Reworks GraphQL request rewriting + cookie forwarding for Houdini 2 client behavior.
src/client.ts Removes custom endpoint switching and tightens SSE handler typing.
src/app.d.ts Extends App namespace types for GraphQL error extension codes.
schema.graphql Updates generated schema content (auto-generated).
pnpm-workspace.yaml Allows Houdini builds and adjusts minimum release age exclusions.
package.json Updates Houdini packages and GraphQL version.
houdini.config.js Adjusts Houdini v2 config (url, defaults, removes imperativeCache feature).
Dockerfile Adjusts build stage base image and keeps runtime stages on alpine.
AGENTS.md Documents Houdini 2 patterns (non-exhaustive variants, interface fragments, presenter strategy).

Comment on lines +179 to +181
<div class="alarms">
{#each alert.alarms as alarm, i (alarm)}
<PrometheusAlarmDetail {alarm} {i} />
Comment on lines 36 to 40
... on PrometheusAlert {
name
duration
query
alarms {
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.

2 participants