fix: show feature flags for a federated graph under split config - #3129
fix: show feature flags for a federated graph under split config#3129JivusAyrus wants to merge 16 commits into
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughFeature-flag resolution now uses the latest valid composition for a federated graph and target. Split-config-loading retains flags from previous valid compositions and reports failed latest compositions. API contracts, integration tests, and Studio stale-composition indicators were updated. ChangesFeature-flag composition scoping
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (2)
controlplane/test/composition/getCompositionDetails.test.ts (1)
597-600: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winTest federated-graph isolation, not only positive retrieval. Each test uses one graph, so removing
federatedGraphIdfiltering would still pass.
controlplane/test/composition/getCompositionDetails.test.ts#L597-L600: add another graph and assert its flag composition is excluded.controlplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.ts#L121-L135: assert only the requested graph’s flags are returned.controlplane/test/federated-graph/get-federated-graph-by-id.test.ts#L243-L245: assert the response excludes a flag composed for another graph.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@controlplane/test/composition/getCompositionDetails.test.ts` around lines 597 - 600, Add federated-graph isolation assertions at all three sites: in controlplane/test/composition/getCompositionDetails.test.ts:597-600, create a flag composition for another graph and assert it is excluded; in controlplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.ts:121-135, assert only flags from the requested graph are returned; and in controlplane/test/federated-graph/get-federated-graph-by-id.test.ts:243-245, assert the response excludes a flag composed for another graph.controlplane/test/federated-graph/get-federated-graph-by-id.test.ts (1)
195-224: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueAdd explicit callback annotations.
The newly added test, cleanup, and
labels.mapcallbacks rely on inferred parameter and return types. Annotate them to follow the TypeScript guideline.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@controlplane/test/federated-graph/get-federated-graph-by-id.test.ts` around lines 195 - 224, Add explicit parameter and return type annotations to the callbacks introduced in the test, including the test callback, testContext.onTestFinished cleanup callback, and labels.map callback. Keep the existing callback behavior unchanged while following the repository’s TypeScript typing guideline.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@controlplane/test/composition/getCompositionDetails.test.ts`:
- Around line 597-600: Add federated-graph isolation assertions at all three
sites: in controlplane/test/composition/getCompositionDetails.test.ts:597-600,
create a flag composition for another graph and assert it is excluded; in
controlplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.ts:121-135,
assert only flags from the requested graph are returned; and in
controlplane/test/federated-graph/get-federated-graph-by-id.test.ts:243-245,
assert the response excludes a flag composed for another graph.
In `@controlplane/test/federated-graph/get-federated-graph-by-id.test.ts`:
- Around line 195-224: Add explicit parameter and return type annotations to the
callbacks introduced in the test, including the test callback,
testContext.onTestFinished cleanup callback, and labels.map callback. Keep the
existing callback behavior unchanged while following the repository’s TypeScript
typing guideline.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: b82d47b6-fa3c-4d4e-ac52-1899e0edd73a
📒 Files selected for processing (7)
controlplane/src/core/bufservices/feature-flag/getFeatureFlagsInLatestCompositionByFederatedGraph.tscontrolplane/src/core/bufservices/federated-graph/getCompositionDetails.tscontrolplane/src/core/bufservices/federated-graph/getFederatedGraphById.tscontrolplane/src/core/repositories/FeatureFlagRepository.tscontrolplane/test/composition/getCompositionDetails.test.tscontrolplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.tscontrolplane/test/federated-graph/get-federated-graph-by-id.test.ts
…ompositionDetails
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
controlplane/src/core/repositories/FeatureFlagRepository.ts (1)
1488-1494: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick winDeclare the explicit return type as
Promise<Array<{ id: string; featureFlagId: string | null }> | undefined>. The database column permitsnull.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@controlplane/src/core/repositories/FeatureFlagRepository.ts` around lines 1488 - 1494, Add an explicit return type annotation to the getFeatureFlagSchemaVersionsByBaseSchemaVersion method. The return type should be Promise<Array<{ id: string; featureFlagId: string | null }> | undefined> to properly account for the fact that the database column permits null values for the featureFlagId field.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@controlplane/src/core/repositories/FeatureFlagRepository.ts`:
- Around line 1488-1494: Add an explicit return type annotation to the
getFeatureFlagSchemaVersionsByBaseSchemaVersion method. The return type should
be Promise<Array<{ id: string; featureFlagId: string | null }> | undefined> to
properly account for the fact that the database column permits null values for
the featureFlagId field.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 36fed3a3-7f8b-4340-bd59-771e59bab8db
📒 Files selected for processing (3)
controlplane/src/core/bufservices/federated-graph/getCompositionDetails.tscontrolplane/src/core/repositories/FeatureFlagRepository.tscontrolplane/test/composition/getCompositionDetails.test.ts
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
controlplane/src/core/bufservices/federated-graph/getFederatedGraphById.ts (1)
76-89: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winFilter out disabled feature flags from
featureFlagsInLatestValidComposition.This loop pushes any flag whose ID appears in
ffsInLatestValidComposition, without checkingflag.isEnabled.featureFlagsincludes disabled flags becausegetFeatureFlagsByFederatedGraphcallsgetFeatureFlagsByBaseSubgraphIdAndLabelMatcherswithexcludeDisabled: false.The sibling handler
getFeatureFlagsInLatestCompositionByFederatedGraph.tsfilters the same repository result byflag.isEnabledand documents why: a disabled flag's router config is removed without recomposing, so its schema version rows still exist but should not be reported as part of the latest composition. Before this PR's fix, split-config mode likely returned no rows here, so this gap stayed hidden. Now that the fix makes the repository method return real rows under split config, disabled flags can appear infeatureFlagsInLatestValidCompositionhere, inconsistent with the sibling handler.Apply the same
isEnabledcheck in this loop.🐛 Proposed fix to exclude disabled flags
if (ffsInLatestValidComposition) { for (const ff of ffsInLatestValidComposition) { const flag = featureFlags.find((f) => f.id === ff.featureFlagId); - if (flag) { + // A disabled feature flag is no longer served in the latest composition (its router config is + // removed without recomposing), so exclude it even though its schema version rows still exist. + if (flag && flag.isEnabled) { featureFlagsInLatestValidComposition.push(flag); } } }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@controlplane/src/core/bufservices/federated-graph/getFederatedGraphById.ts` around lines 76 - 89, Update the loop in getFederatedGraphById that builds featureFlagsInLatestValidComposition to append a matched flag only when it exists and flag.isEnabled is true. Preserve the existing featureFlags lookup and skip disabled flags consistently with getFeatureFlagsInLatestCompositionByFederatedGraph.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@controlplane/src/core/bufservices/federated-graph/getFederatedGraphById.ts`:
- Around line 76-89: Update the loop in getFederatedGraphById that builds
featureFlagsInLatestValidComposition to append a matched flag only when it
exists and flag.isEnabled is true. Preserve the existing featureFlags lookup and
skip disabled flags consistently with
getFeatureFlagsInLatestCompositionByFederatedGraph.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6921879b-ba0f-445d-92ed-3df3a8fe331b
📒 Files selected for processing (3)
controlplane/src/core/bufservices/feature-flag/getFeatureFlagsInLatestCompositionByFederatedGraph.tscontrolplane/src/core/bufservices/federated-graph/getFederatedGraphById.tscontrolplane/src/core/repositories/FeatureFlagRepository.ts
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In
`@controlplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.ts`:
- Around line 340-342: Update the assertion to use the same comparator on both
sides of the sort. The resp.featureFlags array is sorted using the default
comparator, while the expected array is sorted using localeCompare, which can
produce different orders for mixed-case alphanumeric names. Either apply
localeCompare to both arrays or use an order-independent comparison approach
like Set equality to ensure consistent results.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6adac01c-c789-4af2-9bbe-5925e09c4718
📒 Files selected for processing (1)
controlplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.ts
…for-a-federated-graph' and 'suvij/cosmo-315-controlplane-feature-flags-not-shown-for-a-federated-graph' of github.com:wundergraph/cosmo into suvij/cosmo-315-controlplane-feature-flags-not-shown-for-a-federated-graph
…ot-shown-for-a-federated-graph
There was a problem hiding this comment.
Claude Code Review
Claude Code Review is paused for this repository. To reconnect it, an admin of this repository's GitHub organization (or the account owner, for personal repositories) who can also manage your Claude organization's Code Review settings needs to re-link GitHub in Code Review settings. This is a one-time step.
Tip: disable this comment in your organization's Code Review settings.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Router image scan passed✅ No security vulnerabilities found in image: |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
proto/wg/cosmo/platform/v1/platform.proto (1)
2612-2622: 🎯 Functional Correctness | 🔴 Critical | ⚡ Quick winAdd a doc comment for
has_failed_latest_compositionto fix the generated-file CI check.This field has no comment in the
.protosource.connect/src/wg/cosmo/platform/v1/platform_pb.tscarries a doc comment for the generatedhasFailedLatestCompositionfield, but a generator cannot produce that comment from a source field with no comment. When CI regenerates the TypeScript file from this.protofile, the comment is missing, and the generated-file check fails in multiple pipelines.Add the doc comment above
has_failed_latest_compositionin this file. Then regenerateplatform_pb.tsand commit the exact output.🛠️ Proposed fix
string updated_at = 8; + // Whether this flag's latest composition failed, meaning the composition being reported for it is the + // last successful one rather than the latest. Only populated by RPCs that resolve a flag against a + // federated graph's composition (currently GetFeatureFlagsInLatestCompositionByFederatedGraph); left + // unset elsewhere, so treat unset as "not computed" rather than "not stale". optional bool has_failed_latest_composition = 9;🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@proto/wg/cosmo/platform/v1/platform.proto` around lines 2612 - 2622, Add a documentation comment immediately above the has_failed_latest_composition field in the FeatureFlag message, matching the intended generated hasFailedLatestComposition documentation; then regenerate platform_pb.ts so its output includes that comment exactly.Source: Pipeline failures
🧹 Nitpick comments (5)
controlplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.ts (1)
200-232: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider extracting the shared test setup.
The tests at Lines 200-343 and Lines 344-476 build the same fixture: namespace,
userssubgraph,products-standalonesubgraph, ausers-fffeature subgraph, aproducts-standalone-featurefeature subgraph, and the federated graph. Only the flag names differ. A local helper that returns{ namespace, labels, federatedGraphName }would remove about 60 duplicated lines and keep each test focused on its assertions.Also applies to: 344-410
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@controlplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.ts` around lines 200 - 232, Extract the duplicated fixture creation from the tests around the split-config cases into a local helper that creates the namespace, all four subgraphs, and the federated graph, then returns namespace, labels, and federatedGraphName. Update both tests to call this helper and retain only their differing feature-flag names and assertions.controlplane/src/core/repositories/FeatureFlagRepository.ts (3)
1534-1542: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider adding the organization scope to both queries.
Sibling queries in this file constrain
schemaVersion.organizationId(seegetLatestValidFlagCompositionClientSchemaat Line 1608 andgetLatestValidFeatureFlagSchemaVersionat Line 1706). The two queries here rely only onfederatedGraphId, which the current callers resolve org-scoped. Adding the predicate keeps the scoping consistent and protects against a future caller that passes an unresolved id.♻️ Proposed change
.where( and( baseLinkageCondition, + eq(schemaVersion.organizationId, this.organizationId), isNotNull(federatedGraphsToFeatureFlagSchemaVersions.featureFlagId),Apply the same predicate to the
latestSchemaVersionsquery at Line 1568 so both sides of the comparison use the same scope.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@controlplane/src/core/repositories/FeatureFlagRepository.ts` around lines 1534 - 1542, Add the schema version organization scope predicate to both queries in the relevant repository methods, including the `latestSchemaVersions` query and the preceding composition query. Match the existing `schemaVersion.organizationId` constraint used by `getLatestValidFlagCompositionClientSchema` and `getLatestValidFeatureFlagSchemaVersion`, ensuring both comparison sides remain organization-scoped.
1499-1520: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAnnotate
baseLinkageConditionwith an explicit type.
let baseLinkageCondition;has no type annotation and no initializer. TypeScript treats it as an evolvingany, so a wrong condition type in either branch is not caught at compile time. Annotate it asSQL<unknown> | undefined.♻️ Proposed annotation
- let baseLinkageCondition; + let baseLinkageCondition: SQL<unknown> | undefined;As per coding guidelines: "Avoid
anytype in TypeScript; use specific types or generics" and "Use explicit type annotations for function parameters and return types in TypeScript".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@controlplane/src/core/repositories/FeatureFlagRepository.ts` around lines 1499 - 1520, Add an explicit type annotation to the baseLinkageCondition variable declaration. Change let baseLinkageCondition; to explicitly type it as SQL<unknown> | undefined so that TypeScript can properly validate the condition expressions assigned in both the if and else branches instead of treating the variable as an evolving any type.Source: Coding guidelines
1654-1669: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueExtract the composition-validity predicate into a helper.
The same three conditions now appear four times in this file: Lines 1538-1540, Lines 1609-1611, Lines 1667-1669, and Lines 1710-1712. A single private helper keeps the definition of a "valid composition" in one place, so a future change (for example, a new failure column) cannot be applied inconsistently.
♻️ Proposed helper
private compositionSucceededConditions(): SQL<unknown>[] { return [ eq(graphCompositions.isComposable, true), or(isNull(graphCompositions.deploymentError), eq(graphCompositions.deploymentError, ''))!, or(isNull(graphCompositions.admissionError), eq(graphCompositions.admissionError, ''))!, ]; }Then spread it into each
and(...).🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@controlplane/src/core/repositories/FeatureFlagRepository.ts` around lines 1654 - 1669, Create a private helper method compositionSucceededConditions() in the FeatureFlagRepository class that returns an array of the three SQL conditions: eq(graphCompositions.isComposable, true), or(isNull(graphCompositions.deploymentError), eq(graphCompositions.deploymentError, '')), and or(isNull(graphCompositions.admissionError), eq(graphCompositions.admissionError, '')). Replace all four occurrences of these three conditions at lines 1538-1540, 1609-1611, 1667-1669, and 1710-1712 by spreading the helper method's return value into the and(...) calls.studio/src/pages/[organizationSlug]/[namespace]/graph/[slug]/schema/index.tsx (1)
1252-1267: 🚀 Performance & Scalability | 🔵 Trivial | ⚡ Quick winAvoid fetching feature-flag composition status twice on this page.
GraphSelectoralready callsgetFeatureFlagsInLatestCompositionByFederatedGraphat lines 885-894.SchemaExplorerPagecalls the same RPC again here to computeactiveFeatureFlagIsStale.GraphSelectorrenders inside this page's toolbar, so the page issues this query twice and duplicates thehasFailedLatestCompositionmapping logic.Compute
activeFeatureFlagIsStaleonce and pass it toGraphSelector, or move the query into one shared location, so the page fetches this data once.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@studio/src/pages/`[organizationSlug]/[namespace]/graph/[slug]/schema/index.tsx around lines 1252 - 1267, Remove the duplicate getFeatureFlagsInLatestCompositionByFederatedGraph query from SchemaExplorerPage and consolidate activeFeatureFlagIsStale computation with GraphSelector’s existing query, passing the resolved value through the GraphSelector props or another shared path. Preserve the feature-flag name matching and hasFailedLatestComposition behavior while ensuring the page fetches composition status only once.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@controlplane/test/feature-flag/get-federated-graph-sdl-by-name.test.ts`:
- Around line 33-35: Update the parameterized test title in the test.each block
to use neutral wording that accurately covers both splitConfigEnabled=true and
false outcomes, including the successful fallback and ERR_NOT_FOUND cases.
---
Outside diff comments:
In `@proto/wg/cosmo/platform/v1/platform.proto`:
- Around line 2612-2622: Add a documentation comment immediately above the
has_failed_latest_composition field in the FeatureFlag message, matching the
intended generated hasFailedLatestComposition documentation; then regenerate
platform_pb.ts so its output includes that comment exactly.
---
Nitpick comments:
In `@controlplane/src/core/repositories/FeatureFlagRepository.ts`:
- Around line 1534-1542: Add the schema version organization scope predicate to
both queries in the relevant repository methods, including the
`latestSchemaVersions` query and the preceding composition query. Match the
existing `schemaVersion.organizationId` constraint used by
`getLatestValidFlagCompositionClientSchema` and
`getLatestValidFeatureFlagSchemaVersion`, ensuring both comparison sides remain
organization-scoped.
- Around line 1499-1520: Add an explicit type annotation to the
baseLinkageCondition variable declaration. Change let baseLinkageCondition; to
explicitly type it as SQL<unknown> | undefined so that TypeScript can properly
validate the condition expressions assigned in both the if and else branches
instead of treating the variable as an evolving any type.
- Around line 1654-1669: Create a private helper method
compositionSucceededConditions() in the FeatureFlagRepository class that returns
an array of the three SQL conditions: eq(graphCompositions.isComposable, true),
or(isNull(graphCompositions.deploymentError),
eq(graphCompositions.deploymentError, '')), and
or(isNull(graphCompositions.admissionError),
eq(graphCompositions.admissionError, '')). Replace all four occurrences of these
three conditions at lines 1538-1540, 1609-1611, 1667-1669, and 1710-1712 by
spreading the helper method's return value into the and(...) calls.
In
`@controlplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.ts`:
- Around line 200-232: Extract the duplicated fixture creation from the tests
around the split-config cases into a local helper that creates the namespace,
all four subgraphs, and the federated graph, then returns namespace, labels, and
federatedGraphName. Update both tests to call this helper and retain only their
differing feature-flag names and assertions.
In
`@studio/src/pages/`[organizationSlug]/[namespace]/graph/[slug]/schema/index.tsx:
- Around line 1252-1267: Remove the duplicate
getFeatureFlagsInLatestCompositionByFederatedGraph query from SchemaExplorerPage
and consolidate activeFeatureFlagIsStale computation with GraphSelector’s
existing query, passing the resolved value through the GraphSelector props or
another shared path. Preserve the feature-flag name matching and
hasFailedLatestComposition behavior while ensuring the page fetches composition
status only once.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 26d64e1b-3a05-4942-864f-a7fad6469d1e
📒 Files selected for processing (11)
connect/src/wg/cosmo/platform/v1/platform_pb.tscontrolplane/src/core/bufservices/feature-flag/getFeatureFlagsInLatestCompositionByFederatedGraph.tscontrolplane/src/core/bufservices/federated-graph/getFederatedGraphById.tscontrolplane/src/core/repositories/FeatureFlagRepository.tscontrolplane/src/types/index.tscontrolplane/test/feature-flag/get-feature-flags-in-latest-composition-by-federated-graph.test.tscontrolplane/test/feature-flag/get-federated-graph-sdl-by-name.test.tsproto/wg/cosmo/platform/v1/platform.protostudio/src/components/schema/stale-composition-warning.tsxstudio/src/pages/[organizationSlug]/[namespace]/graph/[slug]/schema/index.tsxstudio/src/pages/[organizationSlug]/[namespace]/graph/[slug]/schema/sdl.tsx
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
…ompositions link and update usage in schema pages
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| {errors && <CompositionErrorsDialog errors={errors} />} | ||
| {viewCompositionsHref && ( | ||
| <Button variant="destructive" size="xs" asChild> | ||
| <Link href={viewCompositionsHref}>View compositions</Link> |
There was a problem hiding this comment.
arent the values still fromn the dom even in the suggested fix?
…ot-shown-for-a-federated-graph
…r-a-federated-graph' of github.com:wundergraph/cosmo into suvij/cosmo-315-controlplane-feature-flags-not-shown-for-a-federated-graph
Summary by CodeRabbit
New Features
Bug Fixes
Tests
Checklist
In case the ff composition fails
