bkflow-sdk 0.0.28__py2.py3-none-any.whl

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,248 @@
1
+ Metadata-Version: 2.4
2
+ Name: bkflow-sdk
3
+ Version: 0.0.28
4
+ Summary: A Django app to provide bkflow interface api.
5
+ Author-email: blueking <blueking@tencent.com>
6
+ Description-Content-Type: text/markdown
7
+ License-File: LICENSE
8
+ Requires-Dist: Django >=3.2, <5
9
+ Requires-Dist: djangorestframework >= 3.14, <4
10
+ Requires-Dist: drf-yasg >= 1.20.0, <2
11
+ Requires-Dist: requests >= 2.28.2, <3
12
+ Requires-Dist: pytest >=7.0.1,<8 ; extra == "test"
13
+ Requires-Dist: pytest-django>=4.5.2,<5.0 ; extra == "test"
14
+ Requires-Dist: pytest-cov>=4.0.0 ; extra == "test"
15
+ Requires-Dist: djangorestframework >3, <4 ; extra == "test"
16
+ Project-URL: Home, https://github.com/TencentBlueKing/bkflow-sdk
17
+ Provides-Extra: test
18
+
19
+ # BKFlow SDK
20
+
21
+ [![License](https://img.shields.io/badge/license-MIT-brightgreen.svg)](LICENSE)
22
+ [![Python Version](https://img.shields.io/badge/python-3.8%2B-blue.svg)](https://www.python.org/downloads/)
23
+ [![Django Version](https://img.shields.io/badge/django-3.2%2B-green.svg)](https://www.djangoproject.com/)
24
+
25
+ [English](README_EN.md) | 简体中文
26
+
27
+ ## 📖 项目简介
28
+
29
+ BKFlow SDK 是一个用于集成蓝鲸流程引擎(BlueKing Flow Engine)的 Django 应用程序 SDK。它提供了一套完整的 API 接口和客户端,帮助开发者快速在自己的 Django 项目中对接 BKFlow 流程编排能力。
30
+
31
+ ### ✨ 核心特性
32
+
33
+ - 🚀 **快速集成**:只需简单配置即可在 Django 项目中使用
34
+ - 🔌 **完整的 API 封装**:提供流程模板、任务、插件等完整的 API 接口
35
+ - 🎯 **灵活的扩展**:支持通过 Signal 机制自定义业务逻辑
36
+ - 🛡️ **安全认证**:内置完善的认证和权限管理
37
+ - 📊 **丰富的功能**:支持流程模板管理、任务执行、插件系统、变量管理等
38
+ - 🔧 **自定义请求头**:支持在 API 调用时传入自定义 headers,灵活控制请求行为
39
+
40
+ ### 🎯 主要功能
41
+
42
+ - **流程模板管理**:创建、查询、更新、删除流程模板,流程模板列表查询和筛选,流程操作记录追踪
43
+ - **任务管理**:创建和执行任务,查询任务状态和详情,批量获取任务状态,任务 Mock 数据获取
44
+ - **插件系统**:内置插件管理,第三方插件集成,插件元信息查询,决策表插件支持
45
+ - **变量管理**:系统变量管理,自定义变量管理,变量引用分析,变量预览功能
46
+
47
+ ## 🚀 快速开始
48
+
49
+ ### 📦 安装
50
+
51
+ ```bash
52
+ pip install bkflow-sdk
53
+ ```
54
+
55
+ ### ⚙️ 配置
56
+
57
+ #### 1. 添加到 Django 项目
58
+
59
+ 在 Django 项目的 `settings.py` 中添加配置:
60
+
61
+ ```python
62
+ INSTALLED_APPS = [
63
+ # ... 其他应用
64
+ "bkflow.interface",
65
+ ]
66
+
67
+ # BKFlow SDK 配置(必填)
68
+ BKFLOW_SDK_APIGW_HOST = "https://your-bkflow-api-gateway.com" # BKFlow API 网关地址
69
+ BKFLOW_SDK_DEFAULT_SPACE_ID = 1 # 默认空间ID(可选)
70
+
71
+ # 蓝鲸应用配置(必填)
72
+ APP_CODE = "your-app-code" # 蓝鲸应用ID
73
+ SECRET_KEY = "your-secret-key" # 蓝鲸应用密钥
74
+ ```
75
+
76
+ #### 2. 配置 URL 路由
77
+
78
+ 在项目的 `urls.py` 中添加路由:
79
+
80
+ ```python
81
+ # urls.py
82
+ from django.urls import include, path
83
+
84
+ urlpatterns = [
85
+ # ... 其他路由
86
+ path("api/bkflow/", include("bkflow.interface.urls")),
87
+ ]
88
+ ```
89
+
90
+ #### 3. 环境变量配置(可选)
91
+
92
+ ```bash
93
+ # .env 文件
94
+ export BKFLOW_SDK_APIGW_HOST="https://your-bkflow-api-gateway.com"
95
+ export BKFLOW_SDK_DEFAULT_SPACE_ID=1
96
+ export BK_APIGW_STAGE_NAME="prod" # 环境:prod/stag/test
97
+ ```
98
+
99
+ ## 📚 基本使用
100
+
101
+ ### 使用 API 客户端
102
+
103
+ ```python
104
+ from bkflow.client.core import get_client_by_user
105
+
106
+ # 获取客户端实例
107
+ client = get_client_by_user("admin")
108
+
109
+ # 获取流程模板列表
110
+ templates = client.bkflow.list_templates(
111
+ path_params={"space_id": 1},
112
+ limit=20,
113
+ offset=0
114
+ )
115
+
116
+ # 创建流程模板
117
+ template = client.bkflow.create_template(
118
+ path_params={"space_id": 1},
119
+ name="测试流程",
120
+ pipeline_tree={
121
+ "activities": {},
122
+ "constants": {},
123
+ "gateways": {},
124
+ },
125
+ operator="admin"
126
+ )
127
+
128
+ # 创建任务
129
+ task = client.bkflow.create_task(
130
+ {
131
+ "template_id": 100,
132
+ "name": "测试任务",
133
+ "creator": "admin",
134
+ "description": "这是一个测试任务",
135
+ "constants": {"key1": "value1"}
136
+ },
137
+ path_params={"space_id": 1}
138
+ )
139
+ ```
140
+
141
+ ### 使用自定义 Headers
142
+
143
+ 对于需要 token 认证的接口,需要在 headers 中传入 token:
144
+
145
+ ```python
146
+ from bkflow.client.core import get_client_by_user
147
+ from bkflow.config.default import API_TOKEN_HEADER_KEY
148
+
149
+ client = get_client_by_user("admin")
150
+
151
+ # 调用需要 token 的接口
152
+ template = client.bkflow.fetch_template(
153
+ path_params={"template_id": 100},
154
+ headers={API_TOKEN_HEADER_KEY: "your-token-value"}
155
+ )
156
+
157
+ # 传入自定义 headers
158
+ result = client.bkflow.list_templates(
159
+ path_params={"space_id": 1},
160
+ headers={
161
+ "X-Request-ID": "req-12345",
162
+ "X-Client-Version": "1.0.0",
163
+ }
164
+ )
165
+ ```
166
+
167
+ ## ⚠️ 重要注意事项
168
+
169
+ ### 1. 配置要求
170
+
171
+ - **必填配置**:
172
+ - `BKFLOW_SDK_APIGW_HOST`:BKFlow API 网关地址,必须正确配置
173
+ - `APP_CODE` 和 `SECRET_KEY`:蓝鲸应用认证信息,必须配置
174
+
175
+ - **可选配置**:
176
+ - `BKFLOW_SDK_DEFAULT_SPACE_ID`:默认空间ID,如果不配置需要在每次调用时传入 `space_id`
177
+ - `BK_APIGW_STAGE_NAME`:API 网关环境,默认为 `prod`
178
+
179
+ ### 2. Token 认证
180
+
181
+ 部分接口需要 token 认证(标记为 `token_required=True`),调用这些接口时必须在 headers 中传入 `BKFLOW-TOKEN`:
182
+
183
+ ```python
184
+ from bkflow.config.default import API_TOKEN_HEADER_KEY
185
+
186
+ # 需要 token 的接口示例
187
+ client.bkflow.fetch_template(
188
+ path_params={"template_id": 100},
189
+ headers={API_TOKEN_HEADER_KEY: "your-token"}
190
+ )
191
+ ```
192
+
193
+ ### 3. Headers 合并规则
194
+
195
+ - `BaseAPIClient`:调用时传入的 headers 会覆盖客户端实例的 headers
196
+ - `RequestAPIClient`:客户端实例的 headers 会覆盖调用时传入的 headers
197
+
198
+ ### 4. 错误处理
199
+
200
+ SDK 会自动处理 API 调用异常,返回统一的错误格式:
201
+
202
+ ```python
203
+ {
204
+ "result": False,
205
+ "message": "错误信息",
206
+ "data": None
207
+ }
208
+ ```
209
+
210
+ ### 5. 用户认证
211
+
212
+ 使用 `get_client_by_user()` 时,需要确保:
213
+ - 用户已通过蓝鲸认证
214
+ - 已正确配置 `bkoauth` 或使用 `bk_ticket`/`bk_token` 进行认证
215
+
216
+ ## 📋 版本历史
217
+
218
+ 查看 [release.md](release.md) 了解版本更新历史。
219
+
220
+ ### 当前版本
221
+
222
+ - **最新版本** - 功能更新
223
+ - ✨ **新增功能**:支持在 API 调用时传入自定义 headers
224
+ - 🐛 **Bug 修复**:修复了 token 验证逻辑
225
+ - ✅ **测试完善**:添加了自定义 headers 功能的完整测试用例
226
+
227
+ ## 📄 许可证
228
+
229
+ 本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE) 文件
230
+
231
+ ## 🔗 相关链接
232
+
233
+ - [蓝鲸智云官网](https://bk.tencent.com/)
234
+ - [项目主页](https://github.com/TencentBlueKing/bkflow-sdk)
235
+ - [问题反馈](https://github.com/TencentBlueKing/bkflow-sdk/issues)
236
+
237
+ ## 💬 支持
238
+
239
+ 如果您在使用过程中遇到问题,可以通过以下方式获取帮助:
240
+
241
+ - 提交 [Issue](https://github.com/TencentBlueKing/bkflow-sdk/issues)
242
+ - 查看项目文档
243
+ - 加入蓝鲸社区讨论
244
+
245
+ ---
246
+
247
+ Copyright © 2022 THL A29 Limited, a Tencent company. All Rights Reserved.
248
+
@@ -0,0 +1,23 @@
1
+ bkflow/__init__.py,sha256=1SIZII5pqqUeCoBIEgvt2gE4_eBJMDVMT-hC88OvgY8,729
2
+ bkflow/client/__init__.py,sha256=qG-suJftidzq5CFBqwu7ocG7tQeot9oKaH1CE861hIw,706
3
+ bkflow/client/base.py,sha256=DMkTs7H2PHbaxLercwgMa_PTIVyzYCtS1i7OOkdjvwg,4140
4
+ bkflow/client/core.py,sha256=9DDAX-PPc5wqDR0jCDl0gsSXXaos0OJUnOCcTOZjcIE,8620
5
+ bkflow/client/apis/__init__.py,sha256=qG-suJftidzq5CFBqwu7ocG7tQeot9oKaH1CE861hIw,706
6
+ bkflow/client/apis/bkflow.py,sha256=oqJVWhvk1aT4Viagyq1lc2OsJJy-4P8pH_aq89DRlI0,12437
7
+ bkflow/common/__init__.py,sha256=qG-suJftidzq5CFBqwu7ocG7tQeot9oKaH1CE861hIw,706
8
+ bkflow/common/decorators.py,sha256=kykB0I-YTsxZUy6bm7GN6lS6LGNpDkLdOveMoLT6yfs,3999
9
+ bkflow/common/exceptions.py,sha256=OZ2i1Mw4rnuyIPpLGgrRAHtwRNNKa53OIfHyIbr2Ie4,1576
10
+ bkflow/common/validator.py,sha256=egYBXElFUCe4RaeyY6ExEAh0N0EBCznHjJVQelPtOiQ,4468
11
+ bkflow/common/views.py,sha256=k5RMpaVlxht57eBgdaMBJVOrzTI1NePs33RIqtepvaE,2339
12
+ bkflow/config/__init__.py,sha256=qG-suJftidzq5CFBqwu7ocG7tQeot9oKaH1CE861hIw,706
13
+ bkflow/config/default.py,sha256=SXjt-TRduHPxXoUQwcBmjIZfoxAHYg5HgsiDZyod9DY,2628
14
+ bkflow/interface/__init__.py,sha256=qG-suJftidzq5CFBqwu7ocG7tQeot9oKaH1CE861hIw,706
15
+ bkflow/interface/apps.py,sha256=TFi6W8PwRi0LTiwNByh9f1nyUkwvZzLJHXbqgGxdIAI,847
16
+ bkflow/interface/serializers.py,sha256=y3eLrIgp6OoIvw5EhAulD1kg5Mh-ynuOTCOselAGl78,13019
17
+ bkflow/interface/signals.py,sha256=HIEqudMgUp5g0MjiBnQc_5ao3IgWlnTgK1rSLYRzkEI,1016
18
+ bkflow/interface/urls.py,sha256=9T67BGXQAAS7hlr7J3W1hR6yv0rTxInftM5oUq_mWzA,1513
19
+ bkflow/interface/views.py,sha256=plA1GXC_f42SviyE2usk_dum_z0bVH5OuOq0ZuvGhWw,30420
20
+ bkflow_sdk-0.0.28.dist-info/licenses/LICENSE,sha256=efzBCdJWqcnPWzjy5lxFG5TJBRLwy3fnfNtHp0fuqJ8,1068
21
+ bkflow_sdk-0.0.28.dist-info/WHEEL,sha256=Dyt6SBfaasWElUrURkknVFAZDHSTwxg3PaTza7RSbkY,100
22
+ bkflow_sdk-0.0.28.dist-info/METADATA,sha256=kn-mFVMsYD47H_Ksxg5xkB2nFCpd7ov4hAENb90SYcg,7146
23
+ bkflow_sdk-0.0.28.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: flit 3.12.0
3
+ Root-Is-Purelib: true
4
+ Tag: py2-none-any
5
+ Tag: py3-none-any
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 腾讯蓝鲸
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.