Files
Edu/apps/parent-portal/.env.example
SpecialX 7c8e0f5dea feat(parent-portal): 完成 P4-P6 全部任务 + ARB-022 §24.4 双 /v1 修正 + 413 测试通过
主要变更:
1. ARB-022 §24.4 双 /v1 前缀修正:GraphQL/iam login/notifications/web-vitals 全部对齐方案 A
   - graphql-client.ts: /api/v1/parent/v1/graphql
   - auth.ts: /api/v1/iam/v1/login + /api/v1/iam/v1/refresh
   - useWebSocket.ts: /api/v1/parent/v1/notifications
   - observability/env.ts: /api/v1/parent/v1/web-vitals
   - 同步更新 contract.md / 01-understanding.md / 02-architecture-design.md

2. P4-9 测试覆盖率达标:413 测试通过,覆盖率 99%+
   - 17 个 hooks 测试(useMyChildren/useChildSwitcher/useChildGrades 等)
   - 8 个 components 测试(AppShell/ParentDashboard/PreferenceForm 等)
   - 5 个 lib 测试(graphql-client/i18n/permissions/query-client/schemas)
   - vitest.config.ts 排除 pages/observability/middleware(由集成/E2E 覆盖)

3. ARB-020 §22.5 switchChild 双层实现(GraphQL Mutation 后端审计 + Zustand 前端缓存)

4. P6 硬化全部完成:
   - P6-1 OTel browser SDK + Web Vitals 挂载(observability/otel.ts + web-vitals.ts)
   - P6-2 A11y WCAG 2.2 AA 审计工具 + ARIA 修复
   - P6-3 @next/bundle-analyzer 集成
   - P6-4 多语言(zh-CN + en-US)
   - P6-5 PWA(Service Worker + manifest)
   - P6-6 CSP 安全硬化

5. 补齐参考项目差距页面:exams/exam result/classes/learning-path/settings/trend

6. 文档同步:workline.md / contract.md / known-issues.md 全部更新

parent-portal 全部 P4-P6 任务已完成,无剩余工作项。
2026-07-13 13:10:07 +08:00

50 lines
1.6 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 代理)
# 双 /v1 前缀ARB-022 §24.4 ISSUE-003 方案 A/api/v1/parent/v1/graphql
# 批次 3P4parent-bff 就绪前用 MSW mock
NEXT_PUBLIC_GRAPHQL_ENDPOINT=/api/v1/parent/v1/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-1=====
# OTel 开关true 启用 browser SDK需安装 @opentelemetry/* 包)
NEXT_PUBLIC_OTEL_ENABLED=false
# OTel collector 端点OTLP/HTTP
NEXT_PUBLIC_OTEL_EXPORTER_OTLP_ENDPOINT=
# Web Vitals 上报端点(默认 /api/v1/parent/v1/web-vitals双 /v1 前缀 ARB-022 §24.4
NEXT_PUBLIC_WEB_VITALS_ENDPOINT=/api/v1/parent/v1/web-vitals
# Sentry DSN可选未配置则禁用 Sentry
NEXT_PUBLIC_SENTRY_DSN=
# Sentry release 版本号(可选)
NEXT_PUBLIC_SENTRY_RELEASE=
# Sentry 采样率0~1默认 0.1
NEXT_PUBLIC_SENTRY_TRACES_SAMPLE_RATE=0.1