Files
Edu/apps/parent-portal/.env.example
SpecialX 5661938cc0 feat(parent-portal): 完整实现 P4+P5+P6 家长端微前端
实现内容(仲裁裁决驱动,首次即最终方案):

P4 核心功能
- 认证:localStorage token 存储(F12)+ REST 登录(ISSUE-004)+ refreshAccessToken 竞态防护
- 子女切换:ChildSwitcher(Tab ≤3 / 下拉 ≥4)+ Zustand store(ISSUE-009 纯前端切换)
- 数据查询:urql GraphQL 消费 parent-bff(F9)+ TanStack Query 缓存
- 通知中心:NotificationFeed + 已读/全部已读 mutations
- 通知偏好:三维矩阵 + ISSUE-033 localStorage 降级
- 5 层状态管理:URL/Server/Client/Global UI/Form
- 跨标签同步:BroadcastChannel + storage 事件

P5 实时推送
- WebSocket 连接 push-gateway + 指数退避重连
- HTTP 轮询降级(60s)+ 实时通知 Hook

P6 硬化
- Web Vitals 上报 + OTel trace
- i18n 5 语言(zh-CN/en-US/zh-TW/ja-JP/ar-SA 含 RTL)
- PWA manifest + Service Worker
- CSP 安全头 + 权限点 F7 命名 + 设计令牌三层

测试与构建
- Vitest 92 测试全通过(utils/auth/child-store/ChildSwitcher/NotificationFeed/login)
- MSW mock 未就绪上游(parent-bff GraphQL + iam REST + iam GetChildrenByParent P0 阻塞用 fixtures)
- Dockerfile 多阶段构建(G1,端口 4002,HEALTHCHECK /api/health)
- typecheck + lint 零错误

经验沉淀
- known-issues.md §2.13 追加 12 条实现期经验(无 AI 身份标注)
- arch.db 已更新(15 TS 模块 / 482 符号 / 138 proto)

依据:02-architecture-design.md(回写总裁裁决)、coord-final-decisions.md、
president-final-rulings.md、parent-portal_workline.md、parent-portal_contract.md
2026-07-10 17:40:27 +08:00

37 lines
1.1 KiB
Plaintext
Raw 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.
# parent-portal 环境变量示例
# 复制为 .env.local 使用
# ===== API 网关 =====
# api-gateway 地址dev :8080
API_GATEWAY_URL=http://localhost:8080
# ===== 微前端MF=====
# MF 开关enabled 启用 MF Remotedisabled 作为独立应用运行
# 依据ARB-002 MF Shell 暴露清单
NEXT_PUBLIC_MF_ENABLED=disabled
# ===== GraphQLF9 裁决)=====
# parent-bff GraphQL 端点(经 api-gateway 代理)
# 批次 3P4parent-bff 就绪前用 MSW mock
NEXT_PUBLIC_GRAPHQL_ENDPOINT=/api/v1/parent/graphql
# ===== Mock =====
# MSW mock 开关enabled 启用 mockdisabled 调真实后端
# 依据workline.md §4.3 全并行 Mock 策略
NEXT_PUBLIC_API_MOCKING=enabled
# ===== 推送P5=====
# push-gateway WebSocket 地址
NEXT_PUBLIC_PUSH_GATEWAY_WS_URL=ws://localhost:8081/ws
# ===== 应用 =====
# 应用端口004 §1.2 强制 4 端 4000-4003
PORT=4002
# ===== 可观测性P6=====
# OTel collector 端点
NEXT_PUBLIC_OTEL_EXPORTER_OTLP_ENDPOINT=
# Web Vitals 上报端点
NEXT_PUBLIC_WEB_VITALS_ENDPOINT=/api/v1/admin/web-vitals