Skip to content

@W-20784722@ Move envBasePath into ssrParameters - #3590

Merged
vcua-mobify merged 8 commits into
feature/productize-path-prefixesfrom
path-prefix-in-ssrParameters
Jan 23, 2026
Merged

@W-20784722@ Move envBasePath into ssrParameters#3590
vcua-mobify merged 8 commits into
feature/productize-path-prefixesfrom
path-prefix-in-ssrParameters

Conversation

@vcua-mobify

@vcua-mobify vcua-mobify commented Jan 21, 2026

Copy link
Copy Markdown
Contributor

This PR moves the experimental envBasePath property from the config root into ssrParameters.

This change allows us to send envBasePath to MRT as part of ssrParameters, thereby allowing MRT to consume and handle this path prefix.

This PR also updates existing files so that on both local and remote MRT environments:

  • The server obtains the envBasePath from the MRT_ENV_BASE_PATH system environment variable in node
  • The client app obtains the envBasePath from window
  • window.MRT_ENV_BASE_PATH is set on app render
  • The local dev server sets config.ssrParameters.envBasePath into process.env.MRT_ENV_BASE_PATH
  • Updates our local validation of envBasePath to match MRT restrictions (we no longer allow multi-part base paths like /path1/path2/path3)

Additionally, this PR updates the default config + generator config templates.

Testing the changes:

In your config file, set envBasePath to something like '/shop' or '/us' or '/test'
Start the app
Verify that all express routes (ie. calls to /mobify/proxy or /mobify/bundle or /callback) use the envBasePath you have set
You can also check that window.MRT_ENV_BASE_PATH is set to what you have in the config file

Try setting an invalid base path. You should see an error on app start.

Starting the app without a base path works as normal.

@vcua-mobify
vcua-mobify requested a review from a team as a code owner January 21, 2026 01:18
@cc-prodsec

cc-prodsec commented Jan 21, 2026

Copy link
Copy Markdown
Collaborator

Snyk checks have passed. No issues have been found so far.

Status Scanner Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues
Licenses 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Comment thread packages/pwa-kit-runtime/src/utils/ssr-namespace-paths.js Outdated
@vcua-mobify
vcua-mobify requested a review from noahadams January 21, 2026 22:32

// Load config to get envBasePath for local development
const config = getConfig() || {}
const envBasePath = config.ssrParameters?.envBasePath || ''

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.

can we add a comment describing why we need to read from ssrParameters only for local development

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Comment added

@unandyala unandyala 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.

Left couple of comments. overall LGTM

apiKey: process.env.GOOGLE_CLOUD_API_KEY
}
},
envBasePath: '/',

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.

Do we need the same default value in ssrParameters?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

No. The default value is for the envBasePath to be undefined so that it is not set on MRT or local.

Once it is defined, it must be a valid value (ie. /shop). The changes in this PR disallow setting envBasePath to just /

@vcua-mobify
vcua-mobify merged commit 2c250bd into feature/productize-path-prefixes Jan 23, 2026
42 checks passed
@vcua-mobify
vcua-mobify deleted the path-prefix-in-ssrParameters branch January 23, 2026 19:24
vcua-mobify added a commit that referenced this pull request Mar 10, 2026
* @W-20784722@ Move envBasePath into ssrParameters (#3590)

* Move envBasePath into ssrParameters

* Apply MRT restrictions on supported base paths

* Update changelogs

* one more changelog

* Update express.test.js

* Remove whitespace trimming

* Remove test base path

* Add comment

* @W-20784635@ Support adding base paths to shopper facing URLs (#3615)

* Add base path to react router routes

* Handle basename for urls that bypass react router

* Add a feature toggle for app base names

* Add tests

* Update config templates

* Rename getBasename to getRouterBasePath

* Update changelogs

* Test fixes

* Remove unused import and cleanup comments

* Apply suggestions

* Clean up redundant code

* Fix issues from merge conflict

* Update CHANGELOG.md

* [Storefront Preview] Address base path duplication for manually entered urls (#3666)

* Address base path duplication

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Apply suggestions

* Fix unwanted basePath removal if base path is a substring

* Lint

* Add console warn

* Update refresh component to avoid duplicate base paths

* Fix merge issue

* Add tests for coverage

* Squash changelogs

* Remove warning

---------

Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>
vcua-mobify added a commit that referenced this pull request Mar 13, 2026
* @W-20784722@ Move envBasePath into ssrParameters (#3590)

* Move envBasePath into ssrParameters

* Apply MRT restrictions on supported base paths

* Update changelogs

* one more changelog

* Update express.test.js

* Remove whitespace trimming

* Remove test base path

* Add comment

* @W-20784635@ Support adding base paths to shopper facing URLs (#3615)

* Add base path to react router routes

* Handle basename for urls that bypass react router

* Add a feature toggle for app base names

* Add tests

* Update config templates

* Rename getBasename to getRouterBasePath

* Update changelogs

* Test fixes

* Remove unused import and cleanup comments

* Apply suggestions

* Clean up redundant code

* Fix issues from merge conflict

* Update CHANGELOG.md

* [Storefront Preview] Address base path duplication for manually entered urls (#3666)

* Address base path duplication

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Apply suggestions

* Fix unwanted basePath removal if base path is a substring

* Lint

* Add console warn

* Update refresh component to avoid duplicate base paths

* Fix merge issue

* Add tests for coverage

* Squash changelogs

* Remove warning

---------

Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>
vcua-mobify added a commit that referenced this pull request Mar 13, 2026
* W-2129587: removed wrapperStyle, add position fixed for LoadingSpinner to have full screen overlay

* bump version to preview.1

* @W-21414441@ Bugfix - Fix adding to cart from a master product in the wishlist (#3732)

* Fix add to cart bug and add e2e test

* Update CHANGELOG.md

* W-21432256 fix redirect payment methods status value during preview t… (#3734)

* W-21432256 fix redirect payment methods status value during preview testing

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration (#3741)

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration

Signed-off-by: d.phan <d.phan@salesforce.com>

* add changelog

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

---------

Signed-off-by: d.phan <d.phan@salesforce.com>

* clean up changelog

* bump versions

* Add missing overrides to extensible app (#3745)

* Add missing overrides to extensible app

* Update CHANGELOG.md

* Bump versions

* @W-20784635@ Productize base paths (#3614)

* @W-20784722@ Move envBasePath into ssrParameters (#3590)

* Move envBasePath into ssrParameters

* Apply MRT restrictions on supported base paths

* Update changelogs

* one more changelog

* Update express.test.js

* Remove whitespace trimming

* Remove test base path

* Add comment

* @W-20784635@ Support adding base paths to shopper facing URLs (#3615)

* Add base path to react router routes

* Handle basename for urls that bypass react router

* Add a feature toggle for app base names

* Add tests

* Update config templates

* Rename getBasename to getRouterBasePath

* Update changelogs

* Test fixes

* Remove unused import and cleanup comments

* Apply suggestions

* Clean up redundant code

* Fix issues from merge conflict

* Update CHANGELOG.md

* [Storefront Preview] Address base path duplication for manually entered urls (#3666)

* Address base path duplication

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Apply suggestions

* Fix unwanted basePath removal if base path is a substring

* Lint

* Add console warn

* Update refresh component to avoid duplicate base paths

* Fix merge issue

* Add tests for coverage

* Squash changelogs

* Remove warning

---------

Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>

* Bump version to 3.17.1-preview.0

* Update CHANGELOG.md

---------

Signed-off-by: nayanavishwa <nayana.vishwa@salesforce.com>
Signed-off-by: d.phan <d.phan@salesforce.com>
Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>
Co-authored-by: nayanavishwa <nayana.vishwa@salesforce.com>
Co-authored-by: amittapalli <amittapalli@yahoo.com>
Co-authored-by: Danny Phan <125327707+dannyphan2000@users.noreply.github.com>
vcua-mobify added a commit that referenced this pull request Mar 20, 2026
* W-2129587: removed wrapperStyle, add position fixed for LoadingSpinner to have full screen overlay

* bump version to preview.1

* @W-21414441@ Bugfix - Fix adding to cart from a master product in the wishlist (#3732)

* Fix add to cart bug and add e2e test

* Update CHANGELOG.md

* W-21432256 fix redirect payment methods status value during preview t… (#3734)

* W-21432256 fix redirect payment methods status value during preview testing

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration (#3741)

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration

Signed-off-by: d.phan <d.phan@salesforce.com>

* add changelog

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

---------

Signed-off-by: d.phan <d.phan@salesforce.com>

* clean up changelog

* bump versions

* Add missing overrides to extensible app (#3745)

* Add missing overrides to extensible app

* Update CHANGELOG.md

* Bump versions

* @W-20784635@ Productize base paths (#3614)

* @W-20784722@ Move envBasePath into ssrParameters (#3590)

* Move envBasePath into ssrParameters

* Apply MRT restrictions on supported base paths

* Update changelogs

* one more changelog

* Update express.test.js

* Remove whitespace trimming

* Remove test base path

* Add comment

* @W-20784635@ Support adding base paths to shopper facing URLs (#3615)

* Add base path to react router routes

* Handle basename for urls that bypass react router

* Add a feature toggle for app base names

* Add tests

* Update config templates

* Rename getBasename to getRouterBasePath

* Update changelogs

* Test fixes

* Remove unused import and cleanup comments

* Apply suggestions

* Clean up redundant code

* Fix issues from merge conflict

* Update CHANGELOG.md

* [Storefront Preview] Address base path duplication for manually entered urls (#3666)

* Address base path duplication

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Apply suggestions

* Fix unwanted basePath removal if base path is a substring

* Lint

* Add console warn

* Update refresh component to avoid duplicate base paths

* Fix merge issue

* Add tests for coverage

* Squash changelogs

* Remove warning

---------

Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>

* Bump version to 3.17.1-preview.0

* Update CHANGELOG.md

* @W-21671037@ Remove base path from /__pwa-kit requests if showBasePath is false (#3758)

* Remove base path from /__pwa-kit requests if showBasePath is false

* Update CHANGELOG.md

* Use a redirect so client side is able hydrate.

* Apply storefront preview component changes to deal with client-side single page navigation

* Update CHANGELOG.md

* Bump version to 3.17.1

---------

Signed-off-by: nayanavishwa <nayana.vishwa@salesforce.com>
Signed-off-by: d.phan <d.phan@salesforce.com>
Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>
Co-authored-by: nayanavishwa <nayana.vishwa@salesforce.com>
Co-authored-by: amittapalli <amittapalli@yahoo.com>
Co-authored-by: Danny Phan <125327707+dannyphan2000@users.noreply.github.com>
vcua-mobify added a commit that referenced this pull request Mar 20, 2026
* Bump versions

* @W-21414441@ Bump versions for 3.17.0-preview.1 (#3733)

* W-2129587: removed wrapperStyle, add position fixed for LoadingSpinner to have full screen overlay

* bump version to preview.1

* @W-21414441@ Bugfix - Fix adding to cart from a master product in the wishlist (#3732)

* Fix add to cart bug and add e2e test

* Update CHANGELOG.md

* W-21432256 fix redirect payment methods status value during preview t… (#3734)

* W-21432256 fix redirect payment methods status value during preview testing

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration (#3741)

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration

Signed-off-by: d.phan <d.phan@salesforce.com>

* add changelog

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

---------

Signed-off-by: d.phan <d.phan@salesforce.com>

* clean up changelog

---------

Signed-off-by: nayanavishwa <nayana.vishwa@salesforce.com>
Signed-off-by: d.phan <d.phan@salesforce.com>
Co-authored-by: nayanavishwa <nayana.vishwa@salesforce.com>
Co-authored-by: amittapalli <amittapalli@yahoo.com>
Co-authored-by: Danny Phan <125327707+dannyphan2000@users.noreply.github.com>

* @W-21414441@ Bump versions for 3.17.0-preview.12 (#3744)

* W-2129587: removed wrapperStyle, add position fixed for LoadingSpinner to have full screen overlay

* bump version to preview.1

* @W-21414441@ Bugfix - Fix adding to cart from a master product in the wishlist (#3732)

* Fix add to cart bug and add e2e test

* Update CHANGELOG.md

* W-21432256 fix redirect payment methods status value during preview t… (#3734)

* W-21432256 fix redirect payment methods status value during preview testing

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration (#3741)

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration

Signed-off-by: d.phan <d.phan@salesforce.com>

* add changelog

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

---------

Signed-off-by: d.phan <d.phan@salesforce.com>

* clean up changelog

* bump versions

* Add missing overrides to extensible app (#3745)

* Add missing overrides to extensible app

* Update CHANGELOG.md

---------

Signed-off-by: nayanavishwa <nayana.vishwa@salesforce.com>
Signed-off-by: d.phan <d.phan@salesforce.com>
Co-authored-by: nayanavishwa <nayana.vishwa@salesforce.com>
Co-authored-by: amittapalli <amittapalli@yahoo.com>
Co-authored-by: Danny Phan <125327707+dannyphan2000@users.noreply.github.com>

* @W-21414441@ PWA Kit Release 3.17.0 (#3746)

* W-2129587: removed wrapperStyle, add position fixed for LoadingSpinner to have full screen overlay

* bump version to preview.1

* @W-21414441@ Bugfix - Fix adding to cart from a master product in the wishlist (#3732)

* Fix add to cart bug and add e2e test

* Update CHANGELOG.md

* W-21432256 fix redirect payment methods status value during preview t… (#3734)

* W-21432256 fix redirect payment methods status value during preview testing

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration (#3741)

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration

Signed-off-by: d.phan <d.phan@salesforce.com>

* add changelog

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

---------

Signed-off-by: d.phan <d.phan@salesforce.com>

* clean up changelog

* bump versions

* Add missing overrides to extensible app (#3745)

* Add missing overrides to extensible app

* Update CHANGELOG.md

* Bump versions

---------

Signed-off-by: nayanavishwa <nayana.vishwa@salesforce.com>
Signed-off-by: d.phan <d.phan@salesforce.com>
Co-authored-by: nayanavishwa <nayana.vishwa@salesforce.com>
Co-authored-by: amittapalli <amittapalli@yahoo.com>
Co-authored-by: Danny Phan <125327707+dannyphan2000@users.noreply.github.com>

* @W-21566314@ - Bump version for 3.17.1-preview.0 (#3749)

* W-2129587: removed wrapperStyle, add position fixed for LoadingSpinner to have full screen overlay

* bump version to preview.1

* @W-21414441@ Bugfix - Fix adding to cart from a master product in the wishlist (#3732)

* Fix add to cart bug and add e2e test

* Update CHANGELOG.md

* W-21432256 fix redirect payment methods status value during preview t… (#3734)

* W-21432256 fix redirect payment methods status value during preview testing

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration (#3741)

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration

Signed-off-by: d.phan <d.phan@salesforce.com>

* add changelog

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

---------

Signed-off-by: d.phan <d.phan@salesforce.com>

* clean up changelog

* bump versions

* Add missing overrides to extensible app (#3745)

* Add missing overrides to extensible app

* Update CHANGELOG.md

* Bump versions

* @W-20784635@ Productize base paths (#3614)

* @W-20784722@ Move envBasePath into ssrParameters (#3590)

* Move envBasePath into ssrParameters

* Apply MRT restrictions on supported base paths

* Update changelogs

* one more changelog

* Update express.test.js

* Remove whitespace trimming

* Remove test base path

* Add comment

* @W-20784635@ Support adding base paths to shopper facing URLs (#3615)

* Add base path to react router routes

* Handle basename for urls that bypass react router

* Add a feature toggle for app base names

* Add tests

* Update config templates

* Rename getBasename to getRouterBasePath

* Update changelogs

* Test fixes

* Remove unused import and cleanup comments

* Apply suggestions

* Clean up redundant code

* Fix issues from merge conflict

* Update CHANGELOG.md

* [Storefront Preview] Address base path duplication for manually entered urls (#3666)

* Address base path duplication

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Apply suggestions

* Fix unwanted basePath removal if base path is a substring

* Lint

* Add console warn

* Update refresh component to avoid duplicate base paths

* Fix merge issue

* Add tests for coverage

* Squash changelogs

* Remove warning

---------

Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>

* Bump version to 3.17.1-preview.0

* Update CHANGELOG.md

---------

Signed-off-by: nayanavishwa <nayana.vishwa@salesforce.com>
Signed-off-by: d.phan <d.phan@salesforce.com>
Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>
Co-authored-by: nayanavishwa <nayana.vishwa@salesforce.com>
Co-authored-by: amittapalli <amittapalli@yahoo.com>
Co-authored-by: Danny Phan <125327707+dannyphan2000@users.noreply.github.com>

* @W-21671037@ Release PWA Kit 3.17.1 (#3761)

* W-2129587: removed wrapperStyle, add position fixed for LoadingSpinner to have full screen overlay

* bump version to preview.1

* @W-21414441@ Bugfix - Fix adding to cart from a master product in the wishlist (#3732)

* Fix add to cart bug and add e2e test

* Update CHANGELOG.md

* W-21432256 fix redirect payment methods status value during preview t… (#3734)

* W-21432256 fix redirect payment methods status value during preview testing

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration (#3741)

* @W-21551291: [1CC][PWA Kit] Custom billing address lost after OTP registration

Signed-off-by: d.phan <d.phan@salesforce.com>

* add changelog

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

* lint fix

Signed-off-by: d.phan <d.phan@salesforce.com>

---------

Signed-off-by: d.phan <d.phan@salesforce.com>

* clean up changelog

* bump versions

* Add missing overrides to extensible app (#3745)

* Add missing overrides to extensible app

* Update CHANGELOG.md

* Bump versions

* @W-20784635@ Productize base paths (#3614)

* @W-20784722@ Move envBasePath into ssrParameters (#3590)

* Move envBasePath into ssrParameters

* Apply MRT restrictions on supported base paths

* Update changelogs

* one more changelog

* Update express.test.js

* Remove whitespace trimming

* Remove test base path

* Add comment

* @W-20784635@ Support adding base paths to shopper facing URLs (#3615)

* Add base path to react router routes

* Handle basename for urls that bypass react router

* Add a feature toggle for app base names

* Add tests

* Update config templates

* Rename getBasename to getRouterBasePath

* Update changelogs

* Test fixes

* Remove unused import and cleanup comments

* Apply suggestions

* Clean up redundant code

* Fix issues from merge conflict

* Update CHANGELOG.md

* [Storefront Preview] Address base path duplication for manually entered urls (#3666)

* Address base path duplication

* Update CHANGELOG.md

* Update CHANGELOG.md

* Update CHANGELOG.md

* Apply suggestions

* Fix unwanted basePath removal if base path is a substring

* Lint

* Add console warn

* Update refresh component to avoid duplicate base paths

* Fix merge issue

* Add tests for coverage

* Squash changelogs

* Remove warning

---------

Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>

* Bump version to 3.17.1-preview.0

* Update CHANGELOG.md

* @W-21671037@ Remove base path from /__pwa-kit requests if showBasePath is false (#3758)

* Remove base path from /__pwa-kit requests if showBasePath is false

* Update CHANGELOG.md

* Use a redirect so client side is able hydrate.

* Apply storefront preview component changes to deal with client-side single page navigation

* Update CHANGELOG.md

* Bump version to 3.17.1

---------

Signed-off-by: nayanavishwa <nayana.vishwa@salesforce.com>
Signed-off-by: d.phan <d.phan@salesforce.com>
Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>
Co-authored-by: nayanavishwa <nayana.vishwa@salesforce.com>
Co-authored-by: amittapalli <amittapalli@yahoo.com>
Co-authored-by: Danny Phan <125327707+dannyphan2000@users.noreply.github.com>

* Update CHANGELOG.md

---------

Signed-off-by: nayanavishwa <nayana.vishwa@salesforce.com>
Signed-off-by: d.phan <d.phan@salesforce.com>
Signed-off-by: vcua-mobify <47404250+vcua-mobify@users.noreply.github.com>
Co-authored-by: nayanavishwa <nayana.vishwa@salesforce.com>
Co-authored-by: amittapalli <amittapalli@yahoo.com>
Co-authored-by: Danny Phan <125327707+dannyphan2000@users.noreply.github.com>
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.

4 participants