d3ro-voice/server/supabase/functions/_shared
Yun Chan 4aadee8264 fix(edge): route /app and /api on d3ro.chanpaca.net through the NAS tunnel again
Since 2026-09-19 the site bridge worker served every path from Pages, so the
API server on the NAS had no public route: admin login (API_SERVER_URL)
and stt-proxy (D3RO_API_URL) called https://d3ro.chanpaca.net/api/... and
got the landing page's 405.

- The worker passes /app, /api and /health through to the domain origin
  (the kd-nas tunnel) and serves everything else from Pages.
- The kd-nas tunnel sends path ^/app on d3ro.chanpaca.net to the web app
  (NAS 3002); other paths keep going to the API (NAS 5050). No extra
  hostname or DNS record is needed, so WEB_APP_ORIGIN is removed.
- API_PATH_PREFIXES joins WEB_APP_BASE_PATH in packages/core/src/web-urls.ts
  (contract regenerated).

Verified live: /app/login 200, /health and /api/health 200, API login 401 for
an unknown account (was 405), landing/legal/404 unchanged, git/sso/admin
hosts unaffected.
2026-09-26 20:19:27 +09:00
..
admin-auth.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admin-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admin-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admin-current-role.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admob-ssv.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admob-ssv.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
apns.test.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
apns.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
audit.ts feat(admin): Phase V2-6 Admin CRM 고도화 — CRUD + 차트 + 결제 + 감사 2026-04-12 21:32:47 +09:00
auth.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
billing-catalog.test.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
billing-catalog.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
content-report-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
content-report-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
core-contract.generated.ts fix(edge): route /app and /api on d3ro.chanpaca.net through the NAS tunnel again 2026-09-26 20:19:27 +09:00
cors.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
generation-receipt.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
generation-receipt.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
generative-ai-safety.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
generative-ai-safety.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
google-play.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
google-play.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
google-pubsub.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
google-pubsub.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
llm-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
llm-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
meeting-document-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
meeting-document-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
payple.test.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
payple.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
push-contract.test.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
push-contract.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
quota.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
stt-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
stt-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
team-contract.test.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
team-contract.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
webpush.test.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
webpush.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00