drinkzen-admin-cli 0.2.4__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,181 @@
1
+ Metadata-Version: 2.4
2
+ Name: drinkzen-admin-cli
3
+ Version: 0.2.4
4
+ Summary: Standalone CLI client for DrinkZen Admin operations
5
+ Author: DrinkZen Team
6
+ License: MIT
7
+ Project-URL: Homepage, https://drinkzen.cn
8
+ Project-URL: Source, https://github.com/xiaolinstar/drinkzen
9
+ Project-URL: Issues, https://github.com/xiaolinstar/drinkzen/issues
10
+ Keywords: drinkzen,admin,beverage,operations,cli
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.9
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Requires-Python: >=3.9
21
+ Description-Content-Type: text/markdown
22
+
23
+ # drinkzen-admin-cli
24
+
25
+ `drinkzen-admin-cli` 是奶茶仙人(DrinkZen)运营管理后台的轻量级、零外部依赖 Python 命令行工具。
26
+ 可由管理员直接在终端使用,也可挂载至用户自己的 AI Agent(如 Antigravity / Claude / Cursor 等)进行安全的辅助审核与菜单数据治理。
27
+
28
+ > 💡 **命令定位说明**:
29
+ >
30
+ > - `drinkzen-admin`:管理员与数据运营专属 CLI,用于配置管理、品牌管理、菜单模板配置、Logo 上传与用户贡献审核。
31
+ > - `drinkzen`:(规划中)普通用户专属 CLI,用于查询饮品热量、记录饮用与管理每日预算。
32
+
33
+ ---
34
+
35
+ ## 快速安装与分发方式
36
+
37
+ ### 方式 1:通过 PyPI 安装(正式发布后推荐)
38
+
39
+ ```bash
40
+ pipx install drinkzen-admin-cli
41
+ ```
42
+
43
+ ### 方式 2:通过 Git URL 一键直接安装(预发布或源码验证)
44
+
45
+ ```bash
46
+ pip install "git+https://github.com/xiaolinstar/drinkzen.git#subdirectory=packages/admin-cli"
47
+ ```
48
+
49
+ ### 方式 3:通过 pipx 隔离环境运行 Git 源码(免污染系统 Python)
50
+
51
+ ```bash
52
+ pipx run --spec "git+https://github.com/xiaolinstar/drinkzen.git#subdirectory=packages/admin-cli" drinkzen-admin config show
53
+ ```
54
+
55
+ ### 方式 4:在 Monorepo 本地源码开发运行
56
+
57
+ ```bash
58
+ # 可编辑安装
59
+ pip install -e packages/admin-cli
60
+
61
+ # 或直接通过 Python 模块运行
62
+ PYTHONPATH=packages/admin-cli python3 -m drinkzen_admin.cli config show
63
+ ```
64
+
65
+ ---
66
+
67
+ ## 密钥与持久化配置管理 (`config`)
68
+
69
+ `drinkzen-admin` 提供了内置的密钥持久化管理,避免每次在终端手动输入敏感 Token 或将其留在 Bash 历史记录中。
70
+
71
+ ### 1. 一键保存服务端地址与 Secret
72
+
73
+ ```bash
74
+ # 保存远程生产 API 与 Admin Token
75
+ drinkzen-admin config set --set-url "https://api.drinkzen.cn" --set-token "your-secret-admin-token"
76
+
77
+ # 保存本地开发 API
78
+ drinkzen-admin config set --set-url "http://api.drinkzen.localhost:8000" --set-token "local-admin-token"
79
+ ```
80
+
81
+ 配置文件将保存在 `~/.drinkzen/admin.json`,且在 Unix/macOS 系统上自动设置 **`chmod 600`** 权限(仅当前系统用户可读写)。
82
+
83
+ ### 2. 查看当前生效的配置与 Secret 脱敏展示
84
+
85
+ ```bash
86
+ drinkzen-admin config show --json
87
+ ```
88
+
89
+ 输出示例:
90
+
91
+ ```json
92
+ {
93
+ "config_file": "/Users/admin/.drinkzen/admin.json",
94
+ "file_exists": true,
95
+ "active_url": "https://api.drinkzen.cn",
96
+ "url_source": "file",
97
+ "active_token": "secr****1234",
98
+ "token_source": "file"
99
+ }
100
+ ```
101
+
102
+ ### 3. 配置加载优先级
103
+
104
+ 当执行命令时,配置按如下优先级依次生效:
105
+
106
+ 1. **显式命令行参数**:`--url "..."` / `--token "..."`
107
+ 2. **系统环境变量**:`DRINKZEN_API_BASE_URL` / `DRINKZEN_ADMIN_TOKEN`
108
+ 3. **用户配置文件**:`~/.drinkzen/admin.json`
109
+ 4. **内置默认值**:`http://localhost:8000` / `local-admin-token`
110
+
111
+ ---
112
+
113
+ ## 常用业务命令速查
114
+
115
+ 配置好 Secret 后,日常执行命令无需再附带 URL 和 Token:
116
+
117
+ ### 1. 品牌管理 (`brand`)
118
+
119
+ ```bash
120
+ # 查看品牌列表(支持 --search 与 --active-only)
121
+ drinkzen-admin brand list --search "霸王" --json
122
+
123
+ # 查看具体品牌详情
124
+ drinkzen-admin brand show 霸王茶姬 --json
125
+
126
+ # 更新品牌名称/别名/启用状态(--dry-run 仅预览变更,不真正写库)
127
+ drinkzen-admin brand update 霸王茶姬 --name "霸王茶姬 CHAGEE" --alias "CHAGEE" --dry-run --json
128
+
129
+ # 上传品牌 Logo 并标注数据置信度
130
+ drinkzen-admin brand set-logo 霸王茶姬 ./logo.png --confidence verified --source-name "官方小程序"
131
+ ```
132
+
133
+ ### 2. 菜单模板管理 (`menu-template`)
134
+
135
+ ```bash
136
+ # 导出品牌菜单模板到本地文件
137
+ drinkzen-admin menu-template export 霸王茶姬 --out chagee.json
138
+
139
+ # 本地离线校验 JSON 模板合法性
140
+ drinkzen-admin menu-template validate chagee.json --json
141
+
142
+ # 预览应用新模板到指定品牌
143
+ drinkzen-admin menu-template apply 霸王茶姬 chagee.json --dry-run --json
144
+ ```
145
+
146
+ ### 3. 审核任务管理 (`review`)
147
+
148
+ ```bash
149
+ # 列出待审核任务
150
+ drinkzen-admin review list --status pending --limit 10 --json
151
+
152
+ # 查看某个审核任务上下文与用户提交数据
153
+ drinkzen-admin review show 102 --json
154
+
155
+ # 审核处理(动作支持 create / merge / supplement / reject)
156
+ drinkzen-admin review resolve 102 create --reason "官方菜单确认无误,同意入库" --dry-run --json
157
+ ```
158
+
159
+ ---
160
+
161
+ ## 安全设计原则
162
+
163
+ 1. **零外部第三方依赖**:仅使用 Python 标准库,保证极致的安全与跨平台兼容性。
164
+ 2. **不直连数据库**:所有写操作通过带有权限校验与审计追踪的 RESTful API 完成。
165
+ 3. **Secret 安全隔离**:配置文件自动进行 0600 文件权限保护,`show` 输出自动脱敏,防止日志/录屏泄露。
166
+ 4. **全命令支持 `--dry-run` 与 `--json`**:便于 AI Agent 输出结构化建议并在人工确认后再执行真正变更。
167
+
168
+ ---
169
+
170
+ ## 发布维护说明
171
+
172
+ 发布由 GitHub Actions 的 **Publish Admin CLI** workflow 完成,使用 PyPI Trusted Publishing(OIDC),不使用长期 PyPI Token。
173
+
174
+ 首次发布前,项目维护者需要在 PyPI 和 TestPyPI 分别配置对应的 Trusted Publisher:
175
+
176
+ - Owner:`xiaolinstar`
177
+ - Repository:`drinkzen`
178
+ - Workflow:`publish-admin-cli.yml`
179
+ - Environment:TestPyPI 使用 `testpypi`,正式 PyPI 使用 `pypi`
180
+
181
+ 先通过 workflow 选择 `testpypi` 并填写当前包版本完成安装验证,再选择 `pypi` 发布正式版本。版本不可覆盖;每次发布前必须先提升 `packages/admin-cli/pyproject.toml` 中的版本号。
@@ -0,0 +1,159 @@
1
+ # drinkzen-admin-cli
2
+
3
+ `drinkzen-admin-cli` 是奶茶仙人(DrinkZen)运营管理后台的轻量级、零外部依赖 Python 命令行工具。
4
+ 可由管理员直接在终端使用,也可挂载至用户自己的 AI Agent(如 Antigravity / Claude / Cursor 等)进行安全的辅助审核与菜单数据治理。
5
+
6
+ > 💡 **命令定位说明**:
7
+ >
8
+ > - `drinkzen-admin`:管理员与数据运营专属 CLI,用于配置管理、品牌管理、菜单模板配置、Logo 上传与用户贡献审核。
9
+ > - `drinkzen`:(规划中)普通用户专属 CLI,用于查询饮品热量、记录饮用与管理每日预算。
10
+
11
+ ---
12
+
13
+ ## 快速安装与分发方式
14
+
15
+ ### 方式 1:通过 PyPI 安装(正式发布后推荐)
16
+
17
+ ```bash
18
+ pipx install drinkzen-admin-cli
19
+ ```
20
+
21
+ ### 方式 2:通过 Git URL 一键直接安装(预发布或源码验证)
22
+
23
+ ```bash
24
+ pip install "git+https://github.com/xiaolinstar/drinkzen.git#subdirectory=packages/admin-cli"
25
+ ```
26
+
27
+ ### 方式 3:通过 pipx 隔离环境运行 Git 源码(免污染系统 Python)
28
+
29
+ ```bash
30
+ pipx run --spec "git+https://github.com/xiaolinstar/drinkzen.git#subdirectory=packages/admin-cli" drinkzen-admin config show
31
+ ```
32
+
33
+ ### 方式 4:在 Monorepo 本地源码开发运行
34
+
35
+ ```bash
36
+ # 可编辑安装
37
+ pip install -e packages/admin-cli
38
+
39
+ # 或直接通过 Python 模块运行
40
+ PYTHONPATH=packages/admin-cli python3 -m drinkzen_admin.cli config show
41
+ ```
42
+
43
+ ---
44
+
45
+ ## 密钥与持久化配置管理 (`config`)
46
+
47
+ `drinkzen-admin` 提供了内置的密钥持久化管理,避免每次在终端手动输入敏感 Token 或将其留在 Bash 历史记录中。
48
+
49
+ ### 1. 一键保存服务端地址与 Secret
50
+
51
+ ```bash
52
+ # 保存远程生产 API 与 Admin Token
53
+ drinkzen-admin config set --set-url "https://api.drinkzen.cn" --set-token "your-secret-admin-token"
54
+
55
+ # 保存本地开发 API
56
+ drinkzen-admin config set --set-url "http://api.drinkzen.localhost:8000" --set-token "local-admin-token"
57
+ ```
58
+
59
+ 配置文件将保存在 `~/.drinkzen/admin.json`,且在 Unix/macOS 系统上自动设置 **`chmod 600`** 权限(仅当前系统用户可读写)。
60
+
61
+ ### 2. 查看当前生效的配置与 Secret 脱敏展示
62
+
63
+ ```bash
64
+ drinkzen-admin config show --json
65
+ ```
66
+
67
+ 输出示例:
68
+
69
+ ```json
70
+ {
71
+ "config_file": "/Users/admin/.drinkzen/admin.json",
72
+ "file_exists": true,
73
+ "active_url": "https://api.drinkzen.cn",
74
+ "url_source": "file",
75
+ "active_token": "secr****1234",
76
+ "token_source": "file"
77
+ }
78
+ ```
79
+
80
+ ### 3. 配置加载优先级
81
+
82
+ 当执行命令时,配置按如下优先级依次生效:
83
+
84
+ 1. **显式命令行参数**:`--url "..."` / `--token "..."`
85
+ 2. **系统环境变量**:`DRINKZEN_API_BASE_URL` / `DRINKZEN_ADMIN_TOKEN`
86
+ 3. **用户配置文件**:`~/.drinkzen/admin.json`
87
+ 4. **内置默认值**:`http://localhost:8000` / `local-admin-token`
88
+
89
+ ---
90
+
91
+ ## 常用业务命令速查
92
+
93
+ 配置好 Secret 后,日常执行命令无需再附带 URL 和 Token:
94
+
95
+ ### 1. 品牌管理 (`brand`)
96
+
97
+ ```bash
98
+ # 查看品牌列表(支持 --search 与 --active-only)
99
+ drinkzen-admin brand list --search "霸王" --json
100
+
101
+ # 查看具体品牌详情
102
+ drinkzen-admin brand show 霸王茶姬 --json
103
+
104
+ # 更新品牌名称/别名/启用状态(--dry-run 仅预览变更,不真正写库)
105
+ drinkzen-admin brand update 霸王茶姬 --name "霸王茶姬 CHAGEE" --alias "CHAGEE" --dry-run --json
106
+
107
+ # 上传品牌 Logo 并标注数据置信度
108
+ drinkzen-admin brand set-logo 霸王茶姬 ./logo.png --confidence verified --source-name "官方小程序"
109
+ ```
110
+
111
+ ### 2. 菜单模板管理 (`menu-template`)
112
+
113
+ ```bash
114
+ # 导出品牌菜单模板到本地文件
115
+ drinkzen-admin menu-template export 霸王茶姬 --out chagee.json
116
+
117
+ # 本地离线校验 JSON 模板合法性
118
+ drinkzen-admin menu-template validate chagee.json --json
119
+
120
+ # 预览应用新模板到指定品牌
121
+ drinkzen-admin menu-template apply 霸王茶姬 chagee.json --dry-run --json
122
+ ```
123
+
124
+ ### 3. 审核任务管理 (`review`)
125
+
126
+ ```bash
127
+ # 列出待审核任务
128
+ drinkzen-admin review list --status pending --limit 10 --json
129
+
130
+ # 查看某个审核任务上下文与用户提交数据
131
+ drinkzen-admin review show 102 --json
132
+
133
+ # 审核处理(动作支持 create / merge / supplement / reject)
134
+ drinkzen-admin review resolve 102 create --reason "官方菜单确认无误,同意入库" --dry-run --json
135
+ ```
136
+
137
+ ---
138
+
139
+ ## 安全设计原则
140
+
141
+ 1. **零外部第三方依赖**:仅使用 Python 标准库,保证极致的安全与跨平台兼容性。
142
+ 2. **不直连数据库**:所有写操作通过带有权限校验与审计追踪的 RESTful API 完成。
143
+ 3. **Secret 安全隔离**:配置文件自动进行 0600 文件权限保护,`show` 输出自动脱敏,防止日志/录屏泄露。
144
+ 4. **全命令支持 `--dry-run` 与 `--json`**:便于 AI Agent 输出结构化建议并在人工确认后再执行真正变更。
145
+
146
+ ---
147
+
148
+ ## 发布维护说明
149
+
150
+ 发布由 GitHub Actions 的 **Publish Admin CLI** workflow 完成,使用 PyPI Trusted Publishing(OIDC),不使用长期 PyPI Token。
151
+
152
+ 首次发布前,项目维护者需要在 PyPI 和 TestPyPI 分别配置对应的 Trusted Publisher:
153
+
154
+ - Owner:`xiaolinstar`
155
+ - Repository:`drinkzen`
156
+ - Workflow:`publish-admin-cli.yml`
157
+ - Environment:TestPyPI 使用 `testpypi`,正式 PyPI 使用 `pypi`
158
+
159
+ 先通过 workflow 选择 `testpypi` 并填写当前包版本完成安装验证,再选择 `pypi` 发布正式版本。版本不可覆盖;每次发布前必须先提升 `packages/admin-cli/pyproject.toml` 中的版本号。
@@ -0,0 +1,3 @@
1
+ """DrinkZen Admin CLI package."""
2
+
3
+ __version__ = "0.2.4"