merge: dev配置明文化
This commit is contained in:
@@ -93,19 +93,11 @@ mysql -h192.168.1.181 -u<svc_db_admin> -p < sql/bootstrap/create-database.sql
|
||||
# 启动一次让 ToolSyncService 同步 tool 表后:
|
||||
mysql -h192.168.1.181 -u<svc_db_admin> -p xiaoqu_agent_svc_d < sql/seed-dev.sql
|
||||
|
||||
# 必须显式指定环境及凭据;m0/m1/m2 使用数据库只读账号
|
||||
# 数据库/Redis 连接信息已明文写在 application-dev.yml(内网 dev 库);
|
||||
# 仍需显式指定 profile
|
||||
export SPRING_PROFILES_ACTIVE=dev
|
||||
export M0_DB_USERNAME=<readonly_user>
|
||||
export M0_DB_PASSWORD=<password>
|
||||
export M1_DB_USERNAME=<readonly_user>
|
||||
export M1_DB_PASSWORD=<password>
|
||||
export M2_DB_USERNAME=<readonly_user>
|
||||
export M2_DB_PASSWORD=<password>
|
||||
export SVC_DB_USERNAME=<svc_user>
|
||||
export SVC_DB_PASSWORD=<password>
|
||||
# 已有 V1 库首次接入时设 true;确认 flyway_schema_history 后可设 false
|
||||
export SVC_FLYWAY_BASELINE_ON_MIGRATE=true
|
||||
export REDIS_PASSWORD=<password>
|
||||
# 仅首次、且 admin_user 为空时创建管理员;创建完成后可移除这三个变量
|
||||
export ADMIN_BOOTSTRAP_ACCOUNT=<admin_account>
|
||||
export ADMIN_BOOTSTRAP_PASSWORD=<strong_password>
|
||||
@@ -119,7 +111,7 @@ java -jar target/xiaoqu-agent-service.jar
|
||||
nohup java -jar target/xiaoqu-agent-service.jar > target/app.log 2>&1 &
|
||||
```
|
||||
|
||||
- 不提供默认 profile、数据库账号或密码;缺失配置时不得启动。
|
||||
- 不提供默认 profile;数据库/Redis 连接信息明文写在 `application-dev.yml`(内网 dev 库,与 xiaoqu-franchisee pom.xml dev profile 同一惯例);生产/测试环境不得在配置文件写明文密码。
|
||||
- dev 端口 **8088**,管理后台 `http://localhost:8088/`,MCP 端点 `http://localhost:8088/mcp`。
|
||||
- Flyway 在 Web 服务启动前执行 `validate + migrate`;checksum、版本或 SQL 执行失败时应用不会启动。
|
||||
- 新增 SQL 必须遵循 [sql/README.md](sql/README.md),禁止修改已合并的历史 migration。
|
||||
@@ -133,7 +125,7 @@ cp deploy/.env.example deploy/.env.dev # 填写 dev 凭据(已 gitignore,
|
||||
./deploy/deploy.sh status | log | stop # 状态 / 跟踪日志 / 停止
|
||||
```
|
||||
|
||||
- 凭据从 `deploy/.env.dev` 读取,无需手工 export;日志在 `logs/agent-service.log`,pid 在 `deploy/app.pid`。
|
||||
- `.env.dev` 只需管理员引导和 Flyway 开关;数据库/Redis 已走配置文件。日志在 `logs/agent-service.log`,pid 在 `deploy/app.pid`。
|
||||
- 注意应用启动较慢(多数据源初始化,约 60-90s),脚本健康检查窗口已放宽到 180s。
|
||||
|
||||
## 测试 ak(仅 dev)
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
# dev 环境凭据(本文件为模板;实际使用复制为 .env.dev,已 gitignore)
|
||||
# 取值参考 xiaoqu-franchisee/pom.xml dev profile
|
||||
M0_DB_USERNAME=root
|
||||
M0_DB_PASSWORD=
|
||||
M1_DB_USERNAME=root
|
||||
M1_DB_PASSWORD=
|
||||
M2_DB_USERNAME=root
|
||||
M2_DB_PASSWORD=
|
||||
SVC_DB_USERNAME=root
|
||||
SVC_DB_PASSWORD=
|
||||
# dev 环境变量(本文件为模板;实际使用复制为 .env.dev,已 gitignore)
|
||||
# 数据库/Redis 连接信息已明文写在 application-dev.yml,无需在此配置
|
||||
|
||||
# 后台管理员首次引导(仅首次启动且 admin_user 为空时建号,之后可删除)
|
||||
APP_ADMIN_BOOTSTRAP_ACCOUNT=admin
|
||||
APP_ADMIN_BOOTSTRAP_PASSWORD=
|
||||
# APP_ADMIN_BOOTSTRAP_NAME=系统管理员
|
||||
|
||||
# 默认拒绝为非空库自动建基线;仅已有 V1 库首次接入时临时改为 true
|
||||
SVC_FLYWAY_BASELINE_ON_MIGRATE=false
|
||||
REDIS_PASSWORD=
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
# dev 环境:内网 192.168.1.181(沿用 xiaoqu-franchisee pom.xml dev profile)
|
||||
# 账号和密码必须由环境变量提供;m0/m1/m2 应使用数据库只读账号
|
||||
# 账号密码明文写在本文件(内网 dev 库,与 xiaoqu-franchisee pom.xml dev profile 同一惯例);
|
||||
# 生产/测试环境不得在配置文件中写明文密码,改用环境变量
|
||||
app:
|
||||
datasource:
|
||||
m0: # 权限库 xiaoqu_comples_d(user/agent/authority/propery/agent_manage_district_auth)
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
jdbc-url: jdbc:mysql://192.168.1.181:3306/xiaoqu_comples_d?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
username: ${M0_DB_USERNAME}
|
||||
password: ${M0_DB_PASSWORD}
|
||||
username: root
|
||||
password: kaixinjiuhao
|
||||
m1: # 商城库 xiaoqu_mall_d(按需启用)
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
jdbc-url: jdbc:mysql://192.168.1.181:3306/xiaoqu_mall_d?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
username: ${M1_DB_USERNAME}
|
||||
password: ${M1_DB_PASSWORD}
|
||||
username: root
|
||||
password: kaixinjiuhao
|
||||
m2: # 业务库 xiaoqu_franchisee_d(warehouse_agent_auth 等)
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
jdbc-url: jdbc:mysql://192.168.1.181:3306/xiaoqu_franchisee_d?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
username: ${M2_DB_USERNAME}
|
||||
password: ${M2_DB_PASSWORD}
|
||||
username: root
|
||||
password: kaixinjiuhao
|
||||
svc: # 自有库 xiaoqu_agent_svc_d(token/scope/tool/audit,读写)
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
jdbc-url: jdbc:mysql://192.168.1.181:3306/xiaoqu_agent_svc_d?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
username: ${SVC_DB_USERNAME}
|
||||
password: ${SVC_DB_PASSWORD}
|
||||
username: root
|
||||
password: kaixinjiuhao
|
||||
|
||||
spring:
|
||||
data:
|
||||
redis:
|
||||
host: 192.168.1.181
|
||||
port: 6379
|
||||
password: ${REDIS_PASSWORD}
|
||||
password: kaixinjiuhao
|
||||
database: 5
|
||||
timeout: 5s
|
||||
|
||||
+4
-6
@@ -11,8 +11,6 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
|
||||
class ConfigurationSecurityTest {
|
||||
|
||||
private static final Pattern PASSWORD_WITH_DEFAULT =
|
||||
Pattern.compile("password:\\s*\\$\\{[^}:]+:[^}]+}");
|
||||
private static final Pattern COMMITTED_AK =
|
||||
Pattern.compile("xqak_[0-9a-f]{20,}");
|
||||
|
||||
@@ -24,11 +22,11 @@ class ConfigurationSecurityTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void devConfigurationHasNoRootUserOrPasswordDefaults() throws IOException {
|
||||
String application = Files.readString(Path.of("src/main/resources/application-dev.yml"));
|
||||
void baseConfigurationHasNoPlaintextPassword() throws IOException {
|
||||
// dev 允许明文(内网库,与 xiaoqu-franchisee pom dev 同一惯例);公共 application.yml 不允许
|
||||
String application = Files.readString(Path.of("src/main/resources/application.yml"));
|
||||
|
||||
assertFalse(application.contains("username: root"));
|
||||
assertFalse(PASSWORD_WITH_DEFAULT.matcher(application).find());
|
||||
assertFalse(application.contains("password: kaixinjiuhao"));
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -94,7 +94,7 @@ xq CLI ─────┘ (Go 单二进制, 同为 MCP 客户端) ┌──
|
||||
| ES | 部分列表查询 | 预留,一期可后置 |
|
||||
|
||||
- 全部使用**只读数据库账号**(物理封死误写);将来写工具单独配有写权限的账号。
|
||||
- 配置按环境分文件(dev/test/prd),密码走环境变量,对齐现有 Maven profile 注入方式。
|
||||
- 配置按环境分文件(dev/test/prd);dev 环境密码明文写在 `application-dev.yml`(内网 dev 库,与现有 pom.xml dev profile 明文同一惯例),生产/测试环境不得在配置文件写明文密码。
|
||||
|
||||
### 4.1 Entity 生成
|
||||
|
||||
@@ -237,7 +237,7 @@ xiaoqu-agent-service/
|
||||
| Redis | 192.168.1.181:6379 | 密码见 pom dev | db5(`entity:User:{id}`、Dictionary)、db13 |
|
||||
| ES | 192.168.1.152:9200 | 无认证 | 预留,一期不用 |
|
||||
|
||||
- 密码等敏感值不入库本文档,以 `pom.xml` dev profile 为准;新系统 `application-dev.yml` 引用同名环境变量。
|
||||
- 密码等敏感值不入库本文档;dev 环境 DB/Redis 连接信息明文写在新系统 `application-dev.yml`(内网 dev 库,与 `pom.xml` dev profile 明文同一惯例)。
|
||||
- 自有库表(§7)建在同实例新 schema:dev 用 `xiaoqu_agent_svc_d`(沿用 `_d` 后缀约定),首次部署前手工建库。
|
||||
- 新系统与老的 dev 后端(Jetty 8091)可同时运行,互不干扰——注意两边连的是**同一套** dev 数据库和 Redis,老系统dev库的数据变动会同时影响两边的查询结果。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user