{"ok":true,"meta":{"generatedAt":"2026-06-30T13:21:08.857Z"},"data":{"version":"tzv3-public-origin-policy-v1","endpoint":"/api/infrastructure/public-origin-policy","command":"npm run origin:audit","script":"scripts/tzv3-origin-audit.mjs","configured":true,"publicOrigins":[{"id":"canonical-site-origin","envName":"NEXT_PUBLIC_SITE_URL","value":"https://www.artescort.vip","source":"env","requiredForProduction":true,"cleanOriginRequired":true,"contractReady":true,"productionReady":true,"checks":[{"id":"absolute-http-url","ok":true,"severity":"contract","detail":"NEXT_PUBLIC_SITE_URL should be an absolute HTTP(S) URL."},{"id":"https","ok":true,"severity":"production","detail":"NEXT_PUBLIC_SITE_URL should use HTTPS in production."},{"id":"not-placeholder","ok":true,"severity":"production","detail":"NEXT_PUBLIC_SITE_URL should not use example, localhost, loopback, or your-domain placeholders."},{"id":"configured","ok":true,"severity":"production","detail":"NEXT_PUBLIC_SITE_URL is required for production origin readiness."},{"id":"clean-origin","ok":true,"severity":"production","detail":"NEXT_PUBLIC_SITE_URL should be a bare origin without path, query, or hash."}]},{"id":"primary-domain-monitor-origin","envName":"PRIMARY_DOMAIN_CHECK_URL","value":"https://www.artescort.vip","source":"default","requiredForProduction":false,"cleanOriginRequired":true,"contractReady":true,"productionReady":true,"checks":[{"id":"absolute-http-url","ok":true,"severity":"contract","detail":"PRIMARY_DOMAIN_CHECK_URL should be an absolute HTTP(S) URL."},{"id":"https","ok":true,"severity":"production","detail":"PRIMARY_DOMAIN_CHECK_URL should use HTTPS in production."},{"id":"not-placeholder","ok":true,"severity":"production","detail":"PRIMARY_DOMAIN_CHECK_URL should not use example, localhost, loopback, or your-domain placeholders."},{"id":"configured","ok":true,"severity":"production","detail":"PRIMARY_DOMAIN_CHECK_URL is optional for production origin readiness."},{"id":"clean-origin","ok":true,"severity":"production","detail":"PRIMARY_DOMAIN_CHECK_URL should be a bare origin without path, query, or hash."}]},{"id":"public-schedule-link","envName":"NEXT_PUBLIC_SCHEDULE_URL","value":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en","source":"env","requiredForProduction":true,"cleanOriginRequired":false,"contractReady":true,"productionReady":true,"checks":[{"id":"absolute-http-url","ok":true,"severity":"contract","detail":"NEXT_PUBLIC_SCHEDULE_URL should be an absolute HTTP(S) URL."},{"id":"https","ok":true,"severity":"production","detail":"NEXT_PUBLIC_SCHEDULE_URL should use HTTPS in production."},{"id":"not-placeholder","ok":true,"severity":"production","detail":"NEXT_PUBLIC_SCHEDULE_URL should not use example, localhost, loopback, or your-domain placeholders."},{"id":"configured","ok":true,"severity":"production","detail":"NEXT_PUBLIC_SCHEDULE_URL is required for production origin readiness."}]},{"id":"media-cdn-origin","envName":"NEXT_PUBLIC_MEDIA_CDN_URL","value":"https://artesc.example","source":"default","requiredForProduction":true,"cleanOriginRequired":true,"contractReady":true,"productionReady":false,"checks":[{"id":"absolute-http-url","ok":true,"severity":"contract","detail":"NEXT_PUBLIC_MEDIA_CDN_URL should be an absolute HTTP(S) URL."},{"id":"https","ok":true,"severity":"production","detail":"NEXT_PUBLIC_MEDIA_CDN_URL should use HTTPS in production."},{"id":"not-placeholder","ok":false,"severity":"production","detail":"NEXT_PUBLIC_MEDIA_CDN_URL should not use example, localhost, loopback, or your-domain placeholders."},{"id":"configured","ok":false,"severity":"production","detail":"NEXT_PUBLIC_MEDIA_CDN_URL is required for production origin readiness."},{"id":"clean-origin","ok":true,"severity":"production","detail":"NEXT_PUBLIC_MEDIA_CDN_URL should be a bare origin without path, query, or hash."}]}],"values":{"siteUrl":"https://www.artescort.vip","siteUrlSource":"NEXT_PUBLIC_SITE_URL","scheduleUrl":"https://australia-wlkk.vercel.app/scheduling/embed?site=artesc&lang=en","scheduleUrlSource":"NEXT_PUBLIC_SCHEDULE_URL","mediaCdnUrl":"https://artesc.example","mediaCdnUrlSource":"default-placeholder","primaryDomainCheckUrl":"https://www.artescort.vip","primaryDomainCheckUrlSource":"canonical-site-origin"},"routeProofs":[{"id":"home","path":"/","url":"https://www.artescort.vip/"},{"id":"robots","path":"/robots.txt","url":"https://www.artescort.vip/robots.txt"},{"id":"sitemap","path":"/sitemap.xml","url":"https://www.artescort.vip/sitemap.xml"},{"id":"profile","path":"/profiles/sofia","url":"https://www.artescort.vip/profiles/sofia"},{"id":"schedule-preview","path":"/schedule-preview?site=artesc&lang=en","url":"https://www.artescort.vip/schedule-preview?site=artesc&lang=en"},{"id":"readiness","path":"/api/readiness","url":"https://www.artescort.vip/api/readiness"},{"id":"public-origin-policy","path":"/api/infrastructure/public-origin-policy","url":"https://www.artescort.vip/api/infrastructure/public-origin-policy"}],"vercelLink":{"version":"tzv3-vercel-link-v1","linkedProject":{"projectId":null,"orgId":null,"projectName":null},"protectedScheduleProjects":["australia-wlkk"],"status":"unlinked","productionReady":false,"projectAllowed":false,"requiredAction":"Run vercel link for the confirmed Artesc website project.","evidence":[".vercel/project.json is missing or unreadable","linked project is not in the protected schedule-project list"],"safety":{"mode":"read-only","writes":false,"printsSecrets":false,"redactsProjectIds":true}},"summary":{"originCount":4,"routeProofCount":7,"contractReadyOriginCount":4,"productionReadyOriginCount":3,"contractFailureCount":0,"productionWarningCount":3},"contractReady":true,"productionReady":false,"productionBoundary":["Local contract readiness only proves URL shape and route URL derivation.","Production readiness requires real HTTPS origins, no placeholders, and a Vercel link to the Artesc website project.","Run this audit on the deployed domain with TZV3_BASE_URL before SEO, load smoke, and final promotion."],"safety":{"mode":"read-only","writes":false,"printsSecrets":false,"note":"Reads public env names, derived URLs, and redacted Vercel link metadata only. It never writes deployment settings."},"contractFailures":[],"productionWarnings":[{"origin":"media-cdn-origin","envName":"NEXT_PUBLIC_MEDIA_CDN_URL","check":"not-placeholder","detail":"NEXT_PUBLIC_MEDIA_CDN_URL should not use example, localhost, loopback, or your-domain placeholders.","currentValue":"https://artesc.example"},{"origin":"media-cdn-origin","envName":"NEXT_PUBLIC_MEDIA_CDN_URL","check":"configured","detail":"NEXT_PUBLIC_MEDIA_CDN_URL is required for production origin readiness.","currentValue":"https://artesc.example"},{"origin":"vercel-link","envName":".vercel/project.json","check":"unlinked","detail":"Run vercel link for the confirmed Artesc website project.","currentValue":"unlinked"}]}}