# ============================================================================== # NeoZQYY Monorepo 公共环境配置模板 # ============================================================================== # 使用方式:复制为 .env 后填入实际值 # 配置优先级:DEFAULTS < .env < .env.local < 环境变量 < CLI 参数 # # 本文件包含所有层级的参数模板: # [ROOT] — 根 .env(公共配置,所有子系统共享) # [ETL] — apps/etl/connectors/feiqiu/.env(ETL 专属配置) # [BACKEND] — apps/backend/.env.local(后端私有覆盖) # # 语法:KEY=VALUE(正斜杠路径,布尔值用 true/false,列表用逗号分隔) # ╔════════════════════════════════════════════════════════════════════════════╗ # ║ [ROOT] 根 .env — 公共配置层 ║ # ╚════════════════════════════════════════════════════════════════════════════╝ # ------------------------------------------------------------------------------ # 数据库公共连接参数(后端 + ETL 共用同一 PostgreSQL 实例) # ------------------------------------------------------------------------------ DB_HOST=localhost DB_PORT=5432 DB_USER= DB_PASSWORD= # ------------------------------------------------------------------------------ # 数据库名称 # 数据库清单: # etl_feiqiu — ETL 流程(飞球连接器),正式环境 # test_etl_feiqiu — ETL 流程(飞球连接器),开发/测试环境 # zqyy_app — 小程序业务库,正式环境 # test_zqyy_app — 小程序业务库,开发/测试环境 # 开发/测试环境使用 test_ 前缀库 # ------------------------------------------------------------------------------ APP_DB_NAME=test_zqyy_app ETL_DB_NAME=test_etl_feiqiu # ------------------------------------------------------------------------------ # 组合式 DSN(各子系统 / 脚本需要完整连接串时使用) # 格式:postgresql://user:password@host:port/dbname # ------------------------------------------------------------------------------ PG_DSN=postgresql://user:password@host:5432/test_etl_feiqiu APP_DB_DSN=postgresql://user:password@host:5432/test_zqyy_app # 测试库 DSN(运维脚本、集成测试优先使用) TEST_DB_DSN=postgresql://user:password@host:5432/test_etl_feiqiu TEST_APP_DB_DSN=postgresql://user:password@host:5432/test_zqyy_app # ------------------------------------------------------------------------------ # 通用 # ------------------------------------------------------------------------------ TIMEZONE=Asia/Shanghai LOG_LEVEL=INFO # ------------------------------------------------------------------------------ # 营业日切点(统计日/周/月分割小时,默认 8 即 08:00) # 日统计 = 当日 08:00 ~ 次日 08:00 # 月统计 = 当月1日 08:00 ~ 次月1日 08:00 # 周统计 = 周一 08:00 ~ 次周一 08:00 # ------------------------------------------------------------------------------ BUSINESS_DAY_START_HOUR=8 # ============================================================================== # 统一输出路径配置(export/ 目录) # ============================================================================== # 目录总览: # export/ # ├── ETL-Connectors/feiqiu/ # │ ├── JSON/ — API 原始 JSON 导出 # │ ├── LOGS/ — ETL 运行日志 # │ └── REPORTS/ — ETL 质检/完整性报告 # ├── SYSTEM/ # │ ├── LOGS/ — 系统级运维日志 # │ ├── REPORTS/ # │ │ ├── dataflow_analysis/ — 数据流结构分析报告 # │ │ ├── field_audit/ — 字段排查报告 # │ │ └── full_dataflow_doc/ — 全链路数据流文档 # │ └── CACHE/ # │ └── api_samples/ — API 样本缓存 # └── BACKEND/ # └── LOGS/ — 后端结构化日志 # ------------------------------------------------------------------------------ # ETL Connector 输出路径 # ------------------------------------------------------------------------------ EXPORT_ROOT=C:/NeoZQYY/export/ETL-Connectors/feiqiu/JSON LOG_ROOT=C:/NeoZQYY/export/ETL-Connectors/feiqiu/LOGS FETCH_ROOT=C:/NeoZQYY/export/ETL-Connectors/feiqiu/JSON ETL_REPORT_ROOT=C:/NeoZQYY/export/ETL-Connectors/feiqiu/REPORTS # ------------------------------------------------------------------------------ # 系统级输出路径 # ------------------------------------------------------------------------------ SYSTEM_ANALYZE_ROOT=C:/NeoZQYY/export/SYSTEM/REPORTS/dataflow_analysis FIELD_AUDIT_ROOT=C:/NeoZQYY/export/SYSTEM/REPORTS/field_audit FULL_DATAFLOW_DOC_ROOT=C:/NeoZQYY/export/SYSTEM/REPORTS/full_dataflow_doc API_SAMPLE_CACHE_ROOT=C:/NeoZQYY/export/SYSTEM/CACHE/api_samples SYSTEM_LOG_ROOT=C:/NeoZQYY/export/SYSTEM/LOGS # ------------------------------------------------------------------------------ # 后端输出路径 # ------------------------------------------------------------------------------ BACKEND_LOG_ROOT=C:/NeoZQYY/export/BACKEND/LOGS # ------------------------------------------------------------------------------ # 阿里云百炼 AI 配置 # ------------------------------------------------------------------------------ BAILIAN_API_KEY= BAILIAN_MODEL=qwen-plus BAILIAN_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1 BAILIAN_TEST_APP_ID= # 8 个百炼 AI 应用 ID(从百炼平台获取) # 应用 1:通用对话 | 应用 2:财务洞察 | 应用 3:客户数据维客线索分析 # 应用 4:关系分析/任务建议 | 应用 5:话术参考 | 应用 6:备注分析 # 应用 7:客户分析 | 应用 8:维客线索整理 BAILIAN_APP_ID_1_CHAT= BAILIAN_APP_ID_2_FINANCE= BAILIAN_APP_ID_3_CLUE= BAILIAN_APP_ID_4_ANALYSIS= BAILIAN_APP_ID_5_TACTICS= BAILIAN_APP_ID_6_NOTE= BAILIAN_APP_ID_7_CUSTOMER= BAILIAN_APP_ID_8_CONSOLIDATE= # ------------------------------------------------------------------------------ # 管道限流配置(RateLimiter 请求间隔,秒) # 默认 0.1-2.0s,防止上游风控同时避免过度等待 # ------------------------------------------------------------------------------ PIPELINE_RATE_MIN=0.1 PIPELINE_RATE_MAX=2.0 # ╔════════════════════════════════════════════════════════════════════════════╗ # ║ [ETL] apps/etl/connectors/feiqiu/.env — ETL 专属配置 ║ # ╚════════════════════════════════════════════════════════════════════════════╝ # 以下参数应放在 apps/etl/connectors/feiqiu/.env 中,而非根 .env # ------------------------------------------------------------------------------ # 门店配置 # ------------------------------------------------------------------------------ STORE_ID= # ------------------------------------------------------------------------------ # 数据库配置(ETL 专属,覆盖根 .env 的公共参数) # ------------------------------------------------------------------------------ # 完整 DSN(优先使用,设置后忽略分离式配置) # PG_DSN=postgresql://user:password@host:5432/test_etl_feiqiu PG_CONNECT_TIMEOUT=10 # 分离式配置(不使用 DSN 时启用) # PG_HOST=localhost # PG_PORT=5432 # PG_USER=your_user # PG_PASSWORD=your_password # PG_NAME=your_database # 数据库 Schema SCHEMA_OLTP=ods SCHEMA_ETL=meta # ------------------------------------------------------------------------------ # 数据库会话参数(defaults.py → db.session.*) # ------------------------------------------------------------------------------ # DB_SESSION_TIMEZONE=Asia/Shanghai # DB_STATEMENT_TIMEOUT_MS=30000 # DB_LOCK_TIMEOUT_MS=5000 # DB_IDLE_IN_TX_TIMEOUT_MS=600000 # ------------------------------------------------------------------------------ # API 配置(上游 SaaS API) # ------------------------------------------------------------------------------ API_BASE= API_TOKEN= API_TIMEOUT=20 API_PAGE_SIZE=200 API_RETRY_MAX=3 # API_RETRY_BACKOFF=[1, 2, 4] # API_PARAMS={} # API_HEADERS_EXTRA={} # ------------------------------------------------------------------------------ # 管线流程配置 # ------------------------------------------------------------------------------ PIPELINE_FLOW=FULL # DATA_SOURCE=hybrid # ------------------------------------------------------------------------------ # 时间窗口配置 # ------------------------------------------------------------------------------ OVERLAP_SECONDS=600 WINDOW_BUSY_MIN=30 WINDOW_IDLE_MIN=180 IDLE_START=04:00 IDLE_END=16:00 WINDOW_SPLIT_UNIT=day WINDOW_SPLIT_DAYS=10 WINDOW_COMPENSATION_HOURS=2 ALLOW_EMPTY_RESULT_ADVANCE=true # ------------------------------------------------------------------------------ # 快照配置 # ------------------------------------------------------------------------------ SNAPSHOT_MISSING_DELETE=true SNAPSHOT_ALLOW_EMPTY_DELETE=false # ------------------------------------------------------------------------------ # 数据完整性检查配置 # ------------------------------------------------------------------------------ INTEGRITY_MODE=history INTEGRITY_HISTORY_START=2025-07-01 # INTEGRITY_HISTORY_END= INTEGRITY_INCLUDE_DIMENSIONS=true INTEGRITY_AUTO_CHECK=false INTEGRITY_AUTO_BACKFILL=false INTEGRITY_COMPARE_CONTENT=true INTEGRITY_CONTENT_SAMPLE_LIMIT=50 INTEGRITY_BACKFILL_MISMATCH=true INTEGRITY_RECHECK_AFTER_BACKFILL=true # INTEGRITY_ODS_TASK_CODES= # INTEGRITY_FORCE_MONTHLY_SPLIT=true # ------------------------------------------------------------------------------ # 校验配置 # ------------------------------------------------------------------------------ VERIFY_SKIP_ODS_ON_FETCH=true VERIFY_ODS_LOCAL_JSON=true # ------------------------------------------------------------------------------ # IO 配置 # ------------------------------------------------------------------------------ WRITE_PRETTY_JSON=true # INGEST_SOURCE_DIR= # MANIFEST_NAME=manifest.json # INGEST_REPORT_NAME=ingest_report.json # MAX_FILE_BYTES=52428800 # ------------------------------------------------------------------------------ # 清洗配置(defaults.py → clean.*) # ------------------------------------------------------------------------------ # CLEAN_LOG_UNKNOWN_FIELDS=true # CLEAN_UNKNOWN_FIELDS_LIMIT=50 # CLEAN_HASH_ALGO=sha1 # CLEAN_HASH_SALT= # CLEAN_STRICT_NUMERIC=true # CLEAN_ROUND_MONEY_SCALE=2 # ------------------------------------------------------------------------------ # 安全配置(defaults.py → security.*) # ------------------------------------------------------------------------------ # SECURITY_REDACT_IN_LOGS=true # SECURITY_REDACT_KEYS=["token","password","Authorization"] # SECURITY_ECHO_TOKEN_IN_LOGS=false # ------------------------------------------------------------------------------ # DWD 层配置 # ------------------------------------------------------------------------------ DWD_FACT_UPSERT=true # DWD_FACT_UPSERT_BATCH_SIZE=1000 # DWD_FACT_UPSERT_MIN_BATCH_SIZE=100 # DWD_FACT_UPSERT_MAX_RETRIES=2 # DWD_FACT_UPSERT_RETRY_BACKOFF=[1,2,4] # DWD_FACT_UPSERT_LOCK_TIMEOUT_MS= # ------------------------------------------------------------------------------ # 任务列表配置 # ------------------------------------------------------------------------------ RUN_TASKS=PRODUCTS,TABLES,MEMBERS,ASSISTANTS,PACKAGES_DEF,ORDERS,PAYMENTS,REFUNDS,COUPON_USAGE,INVENTORY_CHANGE,TOPUPS,TABLE_DISCOUNT,LEDGER # RUN_DWS_TASKS= # RUN_INDEX_TASKS= INDEX_LOOKBACK_DAYS=60 # ------------------------------------------------------------------------------ # DWS 月度/薪资配置 # ------------------------------------------------------------------------------ # DWS_MONTHLY_NEW_HIRE_CAP_EFFECTIVE_FROM=2026-03-01 # DWS_MONTHLY_NEW_HIRE_CAP_DAY=25 # DWS_MONTHLY_NEW_HIRE_MAX_TIER_LEVEL=2 # DWS_SALARY_RUN_DAYS=5 # DWS_SALARY_ALLOW_OUT_OF_CYCLE=false # DWS_SALARY_ROOM_COURSE_PRICE=138 # DWS_MONTHLY_ALLOW_HISTORY=false # DWS_MONTHLY_PREV_GRACE_DAYS=5 # DWS_MONTHLY_HISTORY_MONTHS=0 # ------------------------------------------------------------------------------ # ODS 离线回放配置(仅开发/运维使用) # ------------------------------------------------------------------------------ # ODS_JSON_DOC_DIR=export/test-json-doc # ODS_INCLUDE_FILES= # ODS_DROP_SCHEMA_FIRST=true # ╔════════════════════════════════════════════════════════════════════════════╗ # ║ [BACKEND] apps/backend/.env.local — 后端私有覆盖 ║ # ╚════════════════════════════════════════════════════════════════════════════╝ # 以下参数应放在 apps/backend/.env.local 中,而非根 .env # ------------------------------------------------------------------------------ # ETL 数据库(后端只读访问,用于数据库查看器;省略时复用 DB_HOST/PORT/USER/PASSWORD) # ------------------------------------------------------------------------------ # ETL_DB_HOST= # ETL_DB_PORT= # ETL_DB_USER= # ETL_DB_PASSWORD= # ------------------------------------------------------------------------------ # JWT 认证 # ------------------------------------------------------------------------------ # JWT_SECRET_KEY=change-me-in-production # JWT_ALGORITHM=HS256 # JWT_ACCESS_TOKEN_EXPIRE_MINUTES=30 # JWT_REFRESH_TOKEN_EXPIRE_DAYS=7 # ------------------------------------------------------------------------------ # 微信小程序配置 # 代码读取 WX_APPID / WX_SECRET(注意无下划线分隔) # WX_DEV_MODE=true 时启用 mock 登录端点,跳过微信 code2Session # ------------------------------------------------------------------------------ # WX_APPID= # WX_SECRET= # WX_DEV_MODE=false # ------------------------------------------------------------------------------ # CORS(逗号分隔) # ------------------------------------------------------------------------------ # CORS_ORIGINS=http://localhost:5173 # ------------------------------------------------------------------------------ # ETL 项目路径(子进程 cwd) # CHANGE 2026-03-06 | 必须显式设置,禁止依赖 __file__ 推算 # ------------------------------------------------------------------------------ ETL_PROJECT_PATH=C:/NeoZQYY/apps/etl/connectors/feiqiu # ------------------------------------------------------------------------------ # ETL 子进程 Python 可执行路径 # CHANGE 2026-03-06 | 必须显式设置,避免 PATH 歧义 # ------------------------------------------------------------------------------ ETL_PYTHON_EXECUTABLE=C:/NeoZQYY/.venv/Scripts/python.exe # ------------------------------------------------------------------------------ # 运维面板服务器根目录 # CHANGE 2026-03-06 | 必须显式设置,消除 __file__ 推算风险 # ------------------------------------------------------------------------------ OPS_SERVER_BASE=C:/NeoZQYY