Files
Neo-ZQYY/.env.template

298 lines
13 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.
# ==============================================================================
# NeoZQYY Monorepo 公共环境配置模板
# ==============================================================================
# 使用方式:复制为 .env 后填入实际值
# 配置优先级DEFAULTS < .env < .env.local < 环境变量 < CLI 参数
#
# 本文件包含所有层级的参数模板:
# [ROOT] — 根 .env公共配置所有子系统共享
# [ETL] — apps/etl/connectors/feiqiu/.envETL 专属配置)
# [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
# ==============================================================================
# 统一输出路径配置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_TEST_APP_ID=
# ╔════════════════════════════════════════════════════════════════════════════╗
# ║ [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,ASSISTANT_ABOLISH,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_CALLBACK_TOKEN=
# WX_APP_ID=
# WX_APP_SECRET=
# ------------------------------------------------------------------------------
# CORS逗号分隔
# ------------------------------------------------------------------------------
# CORS_ORIGINS=http://localhost:5173
# ------------------------------------------------------------------------------
# ETL 项目路径(子进程 cwd缺省按 monorepo 相对路径推算)
# ------------------------------------------------------------------------------
# ETL_PROJECT_PATH=C:/NeoZQYY/apps/etl/connectors/feiqiu