{ "routes": [ { "route": "/api/*", "allowedRoles": ["anonymous"] }, { "route": "/*", "rewrite": "/index.html" } ], "navigationFallback": { "rewrite": "/index.html" }, "responseOverrides": { "401": { "redirect": "/#/portals", "statusCode": 302 }, "403": { "redirect": "/#/portals", "statusCode": 302 } }, "globalHeaders": { "X-Content-Type-Options": "nosniff", "X-Frame-Options": "DENY", "X-XSS-Protection": "1; mode=block", "Referrer-Policy": "strict-origin-when-cross-origin", "Permissions-Policy": "geolocation=(), microphone=(), camera=()", "Strict-Transport-Security": "max-age=31536000; includeSubDomains", "Content-Security-Policy": "default-src 'self' https:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https: data:; style-src 'self' 'unsafe-inline' https:; img-src 'self' data: https: blob:; font-src 'self' https: data:; connect-src 'self' https: wss:; media-src 'self' https: data:; object-src 'none'; base-uri 'self'; form-action 'self' https:; frame-ancestors 'none'; upgrade-insecure-requests" }, "mimeTypes": { ".json": "application/json", ".js": "text/javascript", ".css": "text/css", ".svg": "image/svg+xml", ".png": "image/png", ".jpg": "image/jpeg", ".jpeg": "image/jpeg", ".gif": "image/gif", ".ico": "image/x-icon", ".woff": "font/woff", ".woff2": "font/woff2", ".ttf": "font/ttf", ".eot": "application/vnd.ms-fontobject" }, "platform": { "apiRuntime": "node:20" }, "forwardingGateway": { "allowedForwardedHosts": [ "miraclesinmotion.org", "www.miraclesinmotion.org" ] } }