visionA/visionA-frontend/.env.local.example
jim800121chen 99dea42239 feat(visionA-frontend): Phase 0 → 0.7 雲端前端(Next.js + OIDC redirect 流程)
visionA 雲端版前端 — 沿用 local-tool 既有 UI(原則 4:先抄 local-tool)+
新增雲端特有的登入 / 配對 / 設定流程,含以下整合階段:

- Phase 0:13 頁 + 30+ 元件 + 雛形 banner
  - dashboard / devices / models / workspace / clusters / settings 等頁
  - AppShell + Sidebar + Header + tokens + i18n(中英雙語 96 keys)
  - API client + 5 stores + 3 hooks
- Phase 0.6:OIDC redirect 改造
  - login 頁改為 OIDC redirect(`window.location.href = /api/auth/login`)
  - register 改說明頁、account 改唯讀(user 資料來源是 MC)
  - api client 改 cookie session(credentials: include)+ 完全清掉 localStorage
- Phase 0.7:stage 部署 + nil guard
  - getApiBaseUrl() 修:browser 環境視為 same-origin(與 login 頁一致)
  - login 頁加「已登入 → router.replace('/')」effect
  - User type email/name 改 optional(MC id_token 不一定回 email/name claim)
  - header.tsx UserMenu displayName 4 層 fallback:name → email → id → i18n
  - 雛形 banner 文案更新(已接 Innovedus 帳號中心)+ 版號 Phase 0.7

驗證:pnpm lint / test (125/125) / build 全綠

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-01 11:21:36 +08:00

39 lines
2.3 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# visionA Cloud Frontend — 環境變數範本
#
# 複製一份為 `.env.local`,並依實際環境填入。
# `.env.local` 由 .gitignore 忽略,**切勿 commit**。
#
# 所有 runtime 變數都以 `NEXT_PUBLIC_` 開頭Next.js 要求前端可讀)。
# ⚠️ 因此不要放真正機密的值——這類值應走後端 API。
# 後端 API server base URL不含 trailing slash
# 預設對應 visionA-backend 本地開發 portTDD §1.4 api-server 預設 3001
# F5 雛形階段允許以 3721 對應 local-tool 既有後端,以方便整合測試)
#
# ⚠️ BFF PatternOF2 / Phase 0.6 OIDC 之後):
# - 所有 API 請求帶 `credentials: 'include'`,瀏覽器會自動攜帶 backend 設的
# `visiona_session` HttpOnly cookie。
# - 跨 origin本範例frontend localhost:3000 ↔ backend localhost:3721
# backend CORS 必須回傳:
# * `Access-Control-Allow-Credentials: true`
# * `Access-Control-Allow-Origin: http://localhost:3000`(明確 origin**禁止 `*`**
# - 上述條件任一不符 → 瀏覽器會在 console 報 CORS 錯誤、fetch 拋 NetworkError。
# - 同 origin 部署prod 通常將 frontend / backend 放同網域)時無此限制。
NEXT_PUBLIC_API_BASE=http://localhost:3721
# WebSocket base URL通常是 API base 改 ws/wss同源部署時可留空讓前端自動推導
NEXT_PUBLIC_WS_BASE=ws://localhost:3721
# Innovedus Member Center 註冊頁 URLPhase 0.6 OIDC 接入;對齊 oidc-tdd.md §10.1 / §10.5
# - login 頁的「前往註冊」連結會指向這裡(在新分頁開啟)
# - register 頁的「前往 Innovedus 帳號中心」按鈕也會跳到這裡(同分頁完整導航)
# - 未設定(或留空)→ 兩處 UI 均會 disablearia-disabled="true"
# - dev 預設指向 Member Center 本地 dev port 5050
NEXT_PUBLIC_MEMBER_CENTER_REGISTER_URL=http://localhost:5050/account/register
# Innovedus Member Center profile 頁 URLPhase 0.6 OIDC 接入;對齊 oidc-tdd.md §10.3
# - /account 頁「前往 Innovedus 帳號中心」按鈕會指向這裡(在新分頁開啟)
# - 未設定(或留空)→ 按鈕會被替換為「未設定」hint
# - dev 預設指向 Member Center 本地 dev port 5050
NEXT_PUBLIC_MEMBER_CENTER_PROFILE_URL=http://localhost:5050/account/profile