Review Dashboard Page - #383
Conversation
…full, non-anonymized data
…tutions full, non-anonymized data
…not membership-checked
…one that needed guarding
|
Fixed security issues 1 to 5 as described below:
|
…n a WHERE clause. Change WHERE clause condition from function-based to set-based. This reduces number of queries to be executed
…s can collide; Generate uncollidable dashboard ID; Add command to schedule job to remove dashboard related records old than 1 hour
…t request after 400ms once fully entered filter budget value, avoid submitting request for every keystroke; narrow to only touch the rows this specific comparison actually needs, regardless of total system size
…based aggregation; the redlinesSummary cursor/FETCH loop + string CONCAT is replaced with a single JSON_ARRAYAGG(JSON_OBJECT(...)) query. Removed the now-dead cursor, handler, and loop-only variable declarations
|
Fixed performance issues 1 to 5 as described below:
|
…d be treated as string with leading zero instead of integer; add try catch block to avoid spinner get stuck; show alert if error occurred
…ives or institutions within the current set of filters
|
I have fixed 5 security issues and 5 performance issues in this PR. BEFORE artifact: AFTER artifact: I have imported live db mysqldump file into local db for testing and comparison. I tried 3 different institutions: There are two remaining items for revising dashboard page:
I will work on them in separate PR. |
|
Note for deployment procedure:
|
This PR is submitted to fix #375
It is not yet ready for review. It is submitted for progress update.
It contains below changes: