SealSkin

ui

Serving the web app at /, the built UI under /ui/, the web app's manifest, and the template schema.

The web app's page is served at the root, so the server's address is the web app's and a sign-in lands there; its assets, the pages the extension and the mobile app frame, and its service worker stay under /ui/, where the worker's scope keeps it off the sessions of the origin. /ui/ itself sends the browser to /, so an older link or a provider's return still arrives.

attributelogger
= logging.getLogger(__name__)
attributerouter
= APIRouter()
attributeBRIDGE_VERSION
= 1
attributeNO_CACHE_SUFFIXES
= ('.html', '.json', '/sw.js')
attributeWEB_APP_CSP
= "frame-ancestors 'none'; script-src 'self'; object-src 'none'; base-uri 'self'"