fitzee opened a new pull request, #44465:
URL: https://github.com/apache/superset/pull/44465

   ## TL;DR
   
   Validate the actual screenshot bytes used in scheduled PDF/PNG delivery, and 
require the delivered PDF to match the bytes assembled from validated images. 
This is the capture-only split from #44336, based directly on master; it does 
not depend on that PR or add retry fields or migrations.
   
   ### SUMMARY
   
   Master already includes capture readiness, perceptual blank detection, 
capture-time stability checks and sticky capture rejection (#43784, #44034, 
#44114, #44191). This adds final-image validation, exact-PDF provenance and 
fail-closed handling when standard capture cannot establish content state. It 
also adds chart-holder diagnostics.
   
   The detection-policy changes require separate scrutiny: more neutral 
light-grey backgrounds are classified as blank, while sparse readable text and 
solid-colour visualizations are retained. A title-only page or dark background 
can still pass. Visible query-error panels remain deliverable, with diagnostic 
warnings. This is not a guarantee that every rendering defect is detected.
   
   PDF provenance validates its source images and exact assembled bytes; it 
does not rasterize and visually inspect the finished PDF. The diff includes 
realistic image fixtures and diagnostics tests alongside the delivery-boundary 
checks. Whole-execution retries and ownership fencing remain in #44336.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   No UI change. Previously, successful capture provenance alone could allow 
corrupt or unvalidated final bytes through. These additional checks reject 
those artifacts before delivery. The classifier fixtures cover white/light-grey 
placeholders, sparse labels and solid-colour output; live browser canaries 
remain necessary.
   
   ### TESTING INSTRUCTIONS
   
   - 357 unit tests passed across report execution, screenshot utilities, 
webdriver and execution-context tests.
   - 146 PostgreSQL report/dashboard integration tests passed.
   - All changed-file pre-commit hooks passed, including mypy, Ruff and pylint.
   - Regression tests cover undecodable images, near-white placeholders, sparse 
content and substitution of PDF bytes after validated assembly.
   - Manually exercise scheduled PDF and PNG output, including legitimate 
empty/error panels, sparse charts and tall dashboards. Confirm rejected 
captures never reach notification transport and inspect holder-state 
diagnostics.
   
   ### ADDITIONAL INFORMATION
   
   - [ ] Has associated issue
   - [ ] Required new feature flags
   - [ ] Changes UI
   - [ ] Includes DB Migration
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   Risk: false rejection can suppress delivery; false negatives remain 
possible. The classifier also affects tiled-thumbnail retry decisions. 
Reverting this PR restores master's existing capture safeguards, not an 
unchecked capture path. No schema rollback is needed. CI and live 
scheduled-report canaries must pass before rollout.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to