Skip to content

fix(@schematics/angular): include the SSR entry file in the trust-proxy-headers migration - #34513

Merged
alan-agius4 merged 1 commit into
angular:mainfrom
thekhegay:trust-proxy-migration-ssr-entry
Oct 26, 2026
Merged

alan-agius4 merged 1 commit into
angular:mainfrom
thekhegay:trust-proxy-migration-ssr-entry

Conversation

@thekhegay

Copy link
Copy Markdown
Contributor

PR Checklist

PR Type

  • Bugfix
  • Feature
  • Code style update (formatting, local variables)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • CI related changes
  • Documentation content changes
  • Other... Please describe:

What is the current behavior?

Issue Number: N/A

trust-proxy-headers migration collects only server option of build target
In workspace created by ng new --ssr on 21 that option is src/main.server.ts, and new AngularNodeAppEngine() is in src/server.ts, which is set in ssr.entry

So ng update from 21 prints Migration completed (No changes made) for this migration and src/server.ts keeps new AngularNodeAppEngine() without options
On 21 undefined trustProxyHeaders trusted x-forwarded-host and x-forwarded-proto, on 22 it trusts nothing (#32911), so after update default SSR app stops trusting these headers and only logs warning when they arrive, which is exactly what migration was ment to avoid

Existing spec cases pass only because test workspace has server: '/server.ts', ng new does not create that layout

What is the new behavior?

Migration also collects ssr.entry file from build target options and configurations, server is still collected for other layouts
On default SSR workspace src/server.ts gets TODO comment and trustProxyHeaders: ['x-forwarded-host', 'x-forwarded-proto'], src/main.server.ts is left as is

New case in migration_spec.ts uses real layout (server: 'src/main.server.ts', ssr.entry: 'src/server.ts'), it fails on main

Does this PR introduce a breaking change?

  • Yes
  • No

Other information

Workspaces that already went to 22 can run it again once they are on release with this fix:

ng update @angular/cli --name trust-proxy-headers

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request updates the trust-proxy-headers migration to include the ssr.entry file when configuring proxy headers. The review identified that the current implementation fails when the ssr option is set to the boolean true instead of an object, and suggested handling this case explicitly. Additionally, a new test case was requested to ensure the migration correctly handles the ssr: true configuration.

@alan-agius4
alan-agius4 self-requested a review October 23, 2026 20:10
@alan-agius4 alan-agius4 added action: review The PR is still awaiting reviews from at least one requested reviewer target: patch This PR is targeted for the next patch release labels Oct 23, 2026
@alan-agius4 alan-agius4 added action: merge The PR is ready for merge by the caretaker and removed action: review The PR is still awaiting reviews from at least one requested reviewer labels Oct 26, 2026
@alan-agius4
alan-agius4 force-pushed the trust-proxy-migration-ssr-entry branch from 3c59e3b to 10af305 Compare October 26, 2026 09:02
…xy-headers migration

migration collected only `build.options.server`, which in application builder projects is `src/main.server.ts`, while `AngularNodeAppEngine` is created in `ssr.entry` file (`src/server.ts`)
so on default SSR workspace it made no changes and after update app stoped trusting `X-Forwarded-Host` and `X-Forwarded-Proto`, now `ssr.entry` file is collected too
@alan-agius4
alan-agius4 force-pushed the trust-proxy-migration-ssr-entry branch from 10af305 to d1df453 Compare October 26, 2026 10:28
@alan-agius4
alan-agius4 merged commit 43c401c into angular:main Oct 26, 2026
11 checks passed
@alan-agius4

Copy link
Copy Markdown
Collaborator

This PR was merged into the repository. The changes were merged into the following branches:

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

Labels

action: merge The PR is ready for merge by the caretaker area: @schematics/angular target: patch This PR is targeted for the next patch release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants