71 lines
2.4 KiB
Markdown
71 lines
2.4 KiB
Markdown
# Workbench
|
||
|
||
移动端任务与账户平台后端。项目是独立应用,业务数据以 MySQL `olons_admin` 库中的 `hg_*` 表为唯一事实源。
|
||
|
||
## 当前接口
|
||
|
||
- `POST /v1/auth/register`
|
||
- `POST /v1/auth/login`
|
||
- `POST /v1/auth/logout`
|
||
- `GET /v1/me`
|
||
- `PATCH /v1/me/avatar`
|
||
- `PUT /v1/me/password`
|
||
- `PUT /v1/me/trade-password`
|
||
- `GET /v1/home`
|
||
- `GET /v1/banners`
|
||
- `GET /v1/contents/{content_key}`
|
||
- `GET /v1/member-levels`
|
||
- `GET /v1/task-halls`
|
||
- `GET /v1/tasks/eligibility`
|
||
- `GET /v1/tasks/stats`
|
||
- `POST /v1/task-orders/claim`
|
||
- `GET /v1/task-orders`
|
||
- `GET /v1/task-orders/{order_id}`
|
||
- `POST /v1/task-orders/{order_id}/submissions`
|
||
- `GET /v1/manual-products`
|
||
- `GET /v1/manual-products/{product_id}`
|
||
- `GET /v1/payment-accounts`
|
||
- `POST /v1/payment-accounts`
|
||
- `POST /v1/withdrawal-orders/quote`
|
||
- `POST /v1/withdrawal-orders`
|
||
- `GET /v1/withdrawal-orders`
|
||
- `GET /v1/withdrawal-orders/{order_id}`
|
||
- `GET /healthz`
|
||
- `GET /metrics`
|
||
|
||
注册使用 `hg_app_member` 作为账户主档,并在同一事务中创建 `hg_app_member_profile` 和 `hg_wallet_account` 记录。登录按 `mobile_hash` 查找会员,校验 bcrypt 密码后在 Redis 中创建独立会话。
|
||
|
||
## 启动配置
|
||
|
||
核心环境变量:
|
||
|
||
```bash
|
||
WORKBENCH_CONFIG=configs/workbench.local.json
|
||
WORKBENCH_MYSQL_DSN='user:password@tcp(host:3306)/olons_admin?parseTime=true&charset=utf8mb4&loc=Local'
|
||
WORKBENCH_REDIS_ADDR='127.0.0.1:6379'
|
||
WORKBENCH_DATA_ENCRYPTION_KEY='<32 字节随机密钥的 Base64>'
|
||
WORKBENCH_LOOKUP_HMAC_KEY='<至少 32 字节随机密钥的 Base64>'
|
||
WORKBENCH_API_KEYS='<API Key,多个以逗号分隔>'
|
||
```
|
||
|
||
`WORKBENCH_DATA_ENCRYPTION_KEY` 用于生成 `mobile_cipher`,`WORKBENCH_LOOKUP_HMAC_KEY` 用于生成 `mobile_hash`。两个密钥必须分开生成、通过部署 Secret 注入,并与已有数据的加密配置保持一致。
|
||
|
||
## 请求头
|
||
|
||
```http
|
||
X-API-Key: <api key>
|
||
X-Request-ID: <request id>
|
||
X-Device-ID: <optional device id>
|
||
```
|
||
|
||
默认租户通过 `WORKBENCH_DEFAULT_TENANT_ID` 配置,现有 `olons_admin` 数据使用 `tenant_id=0`。服务不接受客户端传入租户身份。
|
||
|
||
## 验证
|
||
|
||
```bash
|
||
make test
|
||
make build
|
||
```
|
||
|
||
前后端完整对接契约见 [`docs/移动端任务与账户平台前后端对接文档.md`](docs/移动端任务与账户平台前后端对接文档.md),已实现的注册登录简版契约见 [`docs/注册登录对接文档.md`](docs/注册登录对接文档.md)。
|