Migrate `policies` from being a `Set<Policy>` to a `policyMap`, that's a `Map<String, Policy>`. The key defines the permission whereas the value is the actual policy object. This makes it easier to use this data in code, to query as a MongoDB nested document, and as a Postgres `jsonb` column. Win-win! The migration runs for all collections in parallel, with following stats taken on 1-Jul-2024. 1. Release data, only non-deleted documents, all collections, parallel, 2m 42s. 2. Prod replica data, only non-deleted documents, all collections, parallel, (15m). 3. Release data, only non-deleted documents, all collections, serial, ~9m. This PR is only part of the solution. We have backwards compatible `getPolicies()` and `setPolicies()` methods so the diff isn't too big, but a follow-up PR will remove those two, and migration all usages to use the map instead. This PR only (almost) strictly includes changes that were necessary for the build and tests to pass. **/test all** <!-- This is an auto-generated comment: Cypress test results --> > [!TIP] > 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉 > Workflow run: <https://github.com/appsmithorg/appsmith/actions/runs/10301601562> > Commit: d58ac59ea9bffb170f979176cdfc1ff378b440ef > <a href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=10301601562&attempt=1" target="_blank">Cypress dashboard</a>. > Tags: `@tag.All` > Spec: > <hr>Thu, 08 Aug 2024 12:46:36 UTC <!-- end of auto-generated comment: Cypress test results --> <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Summary by CodeRabbit - **New Features** - Introduced migration logic to convert `policies` to `policyMap`, enhancing data structure for policy management. - **Documentation** - Updated summaries and documentation to reflect changes in policy handling. - **Refactor** - Replaced direct field references with constant values for policy fields in migration files. - Adjusted method signatures to utilize the new `policyMap` structure. - Improved policy management logic for better immutability and safety. - **Tests** - Added new test cases for policy management functionality. - Updated existing test assertions to ensure proper policy handling with the new data structure. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Abhijeet <abhi.nagarnaik@gmail.com> |
||
|---|---|---|
| .. | ||
| .run | ||
| appsmith-git | ||
| appsmith-interfaces | ||
| appsmith-plugins | ||
| appsmith-server | ||
| envs | ||
| mongo-seed | ||
| reactive-caching | ||
| scripts | ||
| .gitignore | ||
| build.sh | ||
| buildpack-run.sh | ||
| pom.xml | ||
| Procfile | ||
| README.md | ||
| system.properties | ||
Appsmith Server
This is the server-side repository for the Appsmith framework.
For details on setting up your development machine, please refer to this Setup Guide.