Files
LokiStack/docs/licensing-opsx-licence.md
T
opsx af0298e994 feat(license): dual-path opsx-licence client alongside HMAC
Wire LIC-/LICOFF- activate/verify/heartbeat to licence.rlwj.cn/api,
keep legacy HMAC accepted with deprecation banner, add instance_id
fingerprint and licensing docs (product lokistack still needs admin create).
2026-11-01 02:55:37 +08:00

75 lines
3.2 KiB
Markdown
Raw 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.
# LokiStack × opsx-licence 对接说明
## 状态
- 代码:双路径已接入(`LIC-`/`LICOFF-` → opsx-licence;旧 HMAC 迁移窗口内仍接受并提示)。
- 生产 product **`lokistack` 尚未在 licence.rlwj.cn 创建**(公开 `GET /api/v1/products/code/lokistack` 返回「产品不存在」)。
- 默认 API:`LICENSE_API_BASE=https://licence.rlwj.cn/api`(可用环境变量覆盖;`l123` 仅网络失败备灾)。
## Plan(产品锁)
| plan_type | 时长 | 实例(max_devices) |
|-----------|------|---------------------|
| trial | 14 天 | 1 |
| yearly | 365 天 | 默认 1,可加购 |
| perpetual | 0(永久) | 默认 1,可加购 |
计费按**部署实例**,不计登录席位。`instance_id` = `DATA_DIR/instance.id` 机器指纹,无 PII。
## 管理端创建 product(需管理员登录,本说明不含账密)
1. 打开 `https://licence.rlwj.cn` 管理后台并登录。
2. **产品** → 新建:
- name: `LokiStack`
- code: `lokistack`(必须完全一致)
- features: `log_analysis`, `log_alerts`, `ai_ops`, `audit_log`
- price_model: `perpetual`(或按需)
- status: 启用
3. **定价计划** → 为该产品新建三条:
- trial / 14 / max_devices=1 / price=0
- yearly / 365 / max_devices=1
- perpetual / 0 / max_devices=1
4. **许可证** → 选客户 + 产品 `lokistack` 签发 `LIC-`;离线场景签发 `LICOFF-`(须绑定目标实例的 `instance_id`)。
### 等价 Admin API(需 Bearer;勿把 token 写进仓)
```bash
# 创建产品
curl -sS -X POST 'https://licence.rlwj.cn/api/v1/products' \
-H "Authorization: Bearer <ADMIN_TOKEN>" -H 'Content-Type: application/json' \
-d '{"name":"LokiStack","code":"lokistack","version":"1.0.0","description":"LokiStack Pro","features":["log_analysis","log_alerts","ai_ops","audit_log"],"price":0,"price_model":"perpetual","status":1}'
# 创建计划(替换 PRODUCT_ID)
curl -sS -X POST 'https://licence.rlwj.cn/api/v1/plans' \
-H "Authorization: Bearer <ADMIN_TOKEN>" -H 'Content-Type: application/json' \
-d '{"product_id":PRODUCT_ID,"name":"体验","plan_type":"trial","price":0,"currency":"CNY","duration":14,"max_devices":1,"features":["Pro","体验","1 实例"],"sort_order":0,"status":1}'
# yearly duration=365;perpetual duration=0 —— 同结构各建一条
```
公开校验:
```bash
curl -sS 'https://licence.rlwj.cn/api/v1/products/code/lokistack'
```
## 旧 HMAC 迁移
- 已发出的本地 HMAC 码:**迁移窗口内继续可用**,设置页黄条提示换发;**禁止静默清码**。
- 换发:后台为客户建 `lokistack` 许可证 → 客户在设置页粘贴新 `LIC-`/`LICOFF-` 覆盖激活。
- 窗口结束后再关 HMAC 路径(另开刀,需产品点头)。
## 环境变量
| 变量 | 含义 |
|------|------|
| `LICENSE_API_BASE` 或 `OPSX_LICENSE_API_BASE` | 覆盖默认 `https://licence.rlwj.cn/api` |
## 对齐 Shell 的差异
| | OpsxShell | LokiStack |
|--|-----------|-----------|
| product_code | `opsxshell` | `lokistack` |
| 绑定字段 | `device_id` | `instance_id`(同语义) |
| 默认 Base | l123 主 / 国内备 | **国内主** / l123 备 |
| 落盘 | `license.opsx` | JsonDB `license` 字段 |