Files
Edu/infra/security/secrets.example.env
SpecialX 163bff6666 feat(infra): apollo router deployment and supergraph composition
M2: Apollo Router replaces BFF manual aggregation (ADR-037)

- Dockerfile: self-contained with rover + router, auto-compose on startup

- router.yaml: CORS, Router-Authorization header injection, traffic shaping

- supergraph.yaml: 6 subgraphs (iam/core-edu/content/msg/ai/data-ana)

- docker-compose: apollo-router on port 3000, depends on all subgraphs

- ROUTER_AUTH_SECRET added to secrets.example.env

- port-allocation.md: apollo-router registered on port 3000
2026-07-15 01:32:14 +08:00

58 lines
2.3 KiB
Bash
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.
# Edu 平台密钥示例环境变量文件
# ============================================================
# 警告:本文件仅作示例,禁止包含真实密钥。
# 生产环境请通过 K8s Secret / External Secrets / Vault 注入。
# 复制为 .env 后用真实值替换所有 <placeholder>。
# ---------- MySQL ----------
# 用途MySQL root 用户密码,用于初始化与备份/恢复
# 最小长度32 字符
# 复杂度:含大小写字母 + 数字 + 特殊符号
MYSQL_ROOT_PASSWORD=<replace-with-32-char-strong-password>
# ---------- JWT ----------
# 用途JWT Access Token 签名密钥HS256
# 最小长度64 字符(建议使用 openssl rand -base64 48 生成)
# 注意:旋转后所有已签发的 Access Token 立即失效
JWT_SECRET=<replace-with-64-char-jwt-signing-secret>
# 用途JWT Refresh Token 签名密钥HS256
# 最小长度64 字符
# 注意:与 JWT_SECRET 必须不同;旋转后所有用户需重新登录
JWT_REFRESH_SECRET=<replace-with-64-char-refresh-signing-secret>
# ---------- Kafka ----------
# 用途Kafka SASL/PLAIN 认证密码
# 最小长度24 字符
KAFKA_SASL_PASSWORD=<replace-with-24-char-kafka-password>
# ---------- Elasticsearch ----------
# 用途Elasticsearch 内置 elastic 用户密码
# 最小长度24 字符
ES_PASSWORD=<replace-with-24-char-es-password>
# ---------- Neo4j ----------
# 用途Neo4j 数据库管理员密码
# 最小长度24 字符
NEO4J_PASSWORD=<replace-with-24-char-neo4j-password>
# ---------- Redis ----------
# 用途Redis ACL 默认用户密码
# 最小长度24 字符
# 注意:生产环境建议启用 ACL按用户分配最小权限
REDIS_PASSWORD=<replace-with-24-char-redis-password>
# ---------- 应用层加密 ----------
# 用途应用层字段级加密密钥AES-256-GCM
# 最小长度32 字节base64 编码后约 44 字符)
# 生成openssl rand -base64 32
# 注意:旋转前需先解密所有已加密字段,旋转后重新加密
ENCRYPTION_KEY=<replace-with-base64-32-byte-aes-key>
# ---------- Apollo Router 信任凭证 ----------
# 用途Router → 子图的共享密钥,子图 RouterAuthGuard 校验此 Header
# 最小长度32 字符
# 生成openssl rand -hex 32
# 注意Router 和所有子图必须使用相同的密钥
ROUTER_AUTH_SECRET=<replace-with-32-char-router-auth-secret>