···3131 }
3232 // Path was validated at plugin load (under package root); safe to send.
3333 res.setHeader('Cache-Control', 'public, max-age=86400');
3434+ // Public plugin asset; opt out of helmet's strict same-origin CORP default
3535+ // so the SPA can load it via <img src> when deployed on a different origin
3636+ // than the API.
3737+ res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
3438 res.sendFile(filePath, (err) => {
3539 if (err != null && !res.headersSent) {
3640
···3131 );
3232 }
3333 res.setHeader('Cache-Control', 'public, max-age=86400');
3434+ // Public plugin asset; opt out of helmet's strict same-origin CORP default
3535+ // so the SPA can load it via <img src> when deployed on a different origin
3636+ // than the API.
3737+ res.setHeader('Cross-Origin-Resource-Policy', 'cross-origin');
3438 res.sendFile(filePath, (err) => {
3539 if (err != null && !res.headersSent) {
3640