3480d04ec3
Add an IPRegionResolver wrapping the ip2region xdb library and attach it to AuditService so each appended event records both the raw IP and a resolved region in a new ops.audit_logs.ip_region column. Loopback and private addresses short-circuit to local labels; missing xdb data or lookup errors degrade silently so auditing keeps working without it. The ops console audit view shows the region beneath the IP. Bundle the v4/v6 xdb data under internal/ops/app/ipregiondata so the resolver works out of the box, with config paths/env overrides for swapping in updated data sets. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
35 lines
640 B
YAML
35 lines
640 B
YAML
server:
|
|
port: 8090
|
|
mode: release
|
|
|
|
database:
|
|
host: postgres
|
|
port: 5432
|
|
user: geo
|
|
password: geo_dev
|
|
dbname: geo
|
|
sslmode: disable
|
|
max_open_conns: 10
|
|
max_idle_conns: 2
|
|
|
|
log:
|
|
level: info
|
|
format: json
|
|
|
|
jwt:
|
|
secret: "" # 由 OPS_JWT_SECRET 环境变量注入
|
|
access_ttl: 8h
|
|
|
|
default_admin:
|
|
username: admin
|
|
display_name: 系统管理员
|
|
email: ""
|
|
password: "" # 由 OPS_DEFAULT_ADMIN_PASSWORD 环境变量注入(仅在 operator_accounts 为空时生效)
|
|
|
|
admin_users:
|
|
default_plan_code: free
|
|
|
|
ip_region:
|
|
v4_xdb_path: /app/data/ip2region_v4.xdb
|
|
v6_xdb_path: /app/data/ip2region_v6.xdb
|