Skip to content

Tab and app icons that Cloudflare Access cannot swap out - #449

Merged
AVADSA25 merged 1 commit into
mainfrom
icons-behind-access
Oct 8, 2026
Merged

AVADSA25 merged 1 commit into
mainfrom
icons-behind-access

Conversation

@AVADSA25

@AVADSA25 AVADSA25 commented Oct 8, 2026

Copy link
Copy Markdown
Owner

What

Mickael (8 Oct): the CODEC tab shows the AVA Digital icon, and installing CODEC as a Chrome app gives no icon.

Cause: codec.avadigital.ai sits behind Cloudflare Access, which answers any request without the login cookie with a 302 to the Access login page (checked: /manifest.json, /static/icons/icon-192.png, /favicon.png all 302 without the cookie). Chrome fetches the web manifest without credentials by default, so the install had no manifest icons; the tab's /favicon.png lost the same way and the tab kept the login page's AVA Digital icon.

  • Every page's tab icon is now an inline data:image/png (64 px, made from static/icons/icon-192.png), so there is no request to block.
  • The manifest link has crossorigin="use-credentials", so Chrome fetches it with the Access cookie and the install gets the 192/512/maskable icons.

Checks

  • tests/test_pwa.py: the manifest link carries credentials on the six app pages; the tab icon on all seven pages is an inline 64x64 PNG and /favicon.png is no longer linked. Negative control on main's pages: 13 failed. PWA and static tests: 40 passed.
  • Real proof needs Chrome behind Access: reload the tab (icon), then uninstall and reinstall the app (icon).

Deploy

Restart codec-dashboard (pages are served from disk; a restart is not strictly needed, but it keeps the deploy routine).

🤖 Generated with Claude Code

Behind Cloudflare Access, a request without the login cookie gets the Access
login page. Chrome fetches the web manifest without credentials, so the
installed app had no icon, and the /favicon.png request lost too, so the tab
kept the login page's AVA Digital icon. The tab icon is now an inline data:
PNG (64 px, from the app icon) in every page, and the manifest link has
crossorigin="use-credentials" so it is fetched with the login cookie.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AVADSA25
AVADSA25 merged commit 09bd813 into main Oct 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants