[dashboard] Separate storage of dynamic UI form classes from form data
With the new AppCatalog API come 2 important changes regarding Application packages:
* they have unique id across all tenants with the same AppCatalog
* AppCatalog returns each package description along with its create/update timestamps
Given that, we can afford to get rid of dynamic UI form classes in-session storage (which forces us to use heavy backends as DB or MemCached instead of default SignedCookies storage for sessions) - and keep them only in file-system cache and in memory of web-server processes.
When an Application is being added to an Environment, we update file-system cache (taking package update-time into account), parse definitions from cache and create form classes in memory along with package id. All the requests during configuration of that application instance will use the same file-system cache entry (and recreate form classes from it), while form data will be kept as usual in the request.session. The right data for the form/service regenerated on each request will be taken by the app_id key.
Blueprint information
- Status:
- Complete
- Approver:
- ruhe
- Priority:
- Undefined
- Drafter:
- Timur Sufiev
- Direction:
- Needs approval
- Assignee:
- Timur Sufiev
- Definition:
- New
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- ruhe
- Completed by
- ruhe
Related branches
Related bugs
Sprints
Whiteboard
Gerrit topic: https:/
Addressed by: https:/
Separate form classes storage from cleaned data storage
Addressed by: https:/
Handle dynamic forms in a cleaner and a more performance way