Skip to content

Conversation

@the-gigi-apollo
Copy link
Contributor

ref dxm-431 instructions for adding root cert to router container

@the-gigi-apollo the-gigi-apollo requested a review from a team as a code owner January 22, 2026 09:19
@github-actions

This comment has been minimized.

@apollo-librarian
Copy link

apollo-librarian bot commented Jan 22, 2026

✅ Docs preview ready

The preview is ready to be viewed. View the preview

File Changes

1 new, 8 changed, 0 removed
+ graphos/routing/(latest)/self-hosted/containerization/proxy-certificates.mdx
* graphos/routing/(latest)/self-hosted/index.mdx
* graphos/routing/(latest)/self-hosted/containerization/aws.mdx
* graphos/routing/(latest)/self-hosted/containerization/azure.mdx
* graphos/routing/(latest)/self-hosted/containerization/docker-router-only.mdx
* graphos/routing/(latest)/self-hosted/containerization/docker.mdx
* graphos/routing/(latest)/self-hosted/containerization/gcp.mdx
* graphos/routing/(latest)/self-hosted/containerization/index.mdx
* graphos/routing/(latest)/self-hosted/containerization/kubernetes/quickstart.mdx

Build ID: ffaaf4fe256e7033a71fb371
Build Logs: View logs

URL: https://www.apollographql.com/docs/deploy-preview/ffaaf4fe256e7033a71fb371

@the-gigi-apollo the-gigi-apollo force-pushed the gigi/dxm-431-instructions-for-adding-root-cert-to-router-container branch 2 times, most recently from 08542ff to 3455d3b Compare January 25, 2026 06:33
@the-gigi-apollo the-gigi-apollo force-pushed the gigi/dxm-431-instructions-for-adding-root-cert-to-router-container branch from 2bba501 to 599c74e Compare January 28, 2026 00:38
the-gigi-apollo and others added 18 commits January 27, 2026 16:40
This preserves the changes in the individual files, which can be nicer for
later cherry-picking or review.
EOL of serverless plans remains Feb. 1, but a grace period until Feb. 15 has been implemented. This change clarifies the language of the discontinuation notice.
Current merge policies for `@authenticated`, `@requiresScopes` and `@policy` were inconsistent.

If single subgraph declared a field with one of the directives then it would restrict access to this supergraph field regardless which subgraph would resolve this field (results in AND rule for any applied auth directive, i.e. `@authenticated` AND `@policy` is required to access this field). If the same auth directive (`@requiresScopes`/`@policy`) were applied across the subgraphs then the resulting supergraph field could be resolved by fullfilling either one of the subgraph requirements (resulting in OR rule, i.e. either `@policy` 1 or `@policy` 2 has to be true to access the field). While arguably this allowed for easier schema evolution, it did result in weakening the security requirements.

Since `@policy` and `@requiresScopes` values are represent boolean conditions in Disjunctive Normal Form, we can merge them conjunctively to get the final auth requirements, i.e.

```graphql
type T @authenticated {
  # requires scopes (A1 AND A2) OR A3
  secret: String @requiresScopes(scopes: [["A1", "A2"], ["A3"]])
}

type T {
  # requires scopes B1 OR B2
  secret: String @requiresScopes(scopes: [["B1"], ["B2"]]
}

type T @authenticated {
  secret: String @requiresScopes(
    scopes: [
      ["A1", "A2", "B1"],
      ["A1", "A2", "B2"],
      ["A3", "B1"],
      ["A3", "B2"]
    ])
}
```

This algorithm also deduplicates redundant requirements, e.g.

```graphql
type T {
  # requires A1 AND A2 scopes to access
  secret: String @requiresScopes(scopes: [["A1", "A2"]])
}

type T {
  # requires only A1 scope to access
  secret: String @requiresScopes(scopes: [["A1"]])
}

type T {
  # requires only A1 scope to access as A2 is redundant
  secret: String @requiresScopes(scopes: [["A1"]])
}
```

Partial backport of apollographql/federation#3321 and apollographql/federation#3343


Co-authored-by: Sachin D. Shinde <[email protected]>
…satisfiability errors (#8847)

This PR updates satisfiability error messaging to align more with JS code to facilitate validation. Specifically, this PR updates witness operation generation logic to include optional arguments.
)

Restricts usage of `@authenticated`, `@policy` and `@requiresScopes` from being applied on interfaces, interface objects and their fields.

GraphQL spec currently does not define any interface inheritance rules and developers have to explicitly redefine all interface fields on their implementations. At runtime, GraphQL servers cannot return abstract types and always return concrete output types. Due to the above, applying auth directives on the interfaces may lead to unexpected runtime behavior as they won't have any effect at runtime.

Backport of apollographql/federation@faea2d1
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: abernix <[email protected]>
Co-authored-by: Jesse Rosenberger <[email protected]>
Co-authored-by: Parker <[email protected]>
@the-gigi-apollo the-gigi-apollo requested review from a team as code owners February 4, 2026 02:53
@pragl
Copy link
Contributor

pragl commented Feb 6, 2026

Does proxy-certificates.mdx need to be added to the sidebar?

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.