feat: support extensions marketplace settings context hash
Issue: Support extensions marketplace context in the W... (#414 - closed)
What does this MR do and why?
Summary:
- Introduces a new field
settingsContextHashin extensions gallery settings when extensions gallery is enabled. - Updates the Settings Sync URL passed in
productConfiguration.configurationStore.syncto include this hash in the path parameter if it exists. - Example App: adds a new input field for
settingsContextHashwhen extensions gallery is enabled. Will create a follow up MR to make Example App closely mimic real world by generating a hash of the settings and a local alternative marketplace but for now manually entering the hash should be enough for testing purposes. - Updates
cleanExtensionslogic:- Include removing the last synced extensions data in the VSCode web state store as part of the clean extensions step.
- Handle migration from none to
settings_context_hashby not clearing extensions if no last settings context hash stored. - If extensions marketplace is enabled and settings context hash is passed, only clear extensions if the last and current settings context hash doesn't match.
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
Local setup
- Pull the BE changes from Update Settings Sync endpoints to account for s... (gitlab!172748 - merged) and start the GDK
- Pull the Web IDE changes from this branch and start Example App:
yarn start:example - Follow the validation steps in the next section. The cases are listed in order to ensure the most minimal steps.
Screenshots or screen recordings
| Case | Expectation | Validation steps | Recording |
|---|---|---|---|
|
Regression No |
|
|
|
|
Migration No |
|
|
migration |
|
Existing context to new context
|
|
|
|
|
Switching between different existing contexts
|
|
|
|
|
Re-enabling marketplace with same context
|
|
|
|
|
Re-enabling marketplace with different context
|
|
|