PromucFlow_constructor/app/server/appsmith-interfaces
Shrikant Sharat Kandula 8cbb13ea6e
chore: Change policies set to policyMap (#34566)
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>
2024-08-11 13:32:59 +05:30
..
src chore: Change policies set to policyMap (#34566) 2024-08-11 13:32:59 +05:30
pom.xml chore: Make core encrypt/decrypt methods statically available (#34117) 2024-06-12 12:38:25 +05:30