Local worker SDK + control plane API MVP
Project description
yongle-worker MVP
yongle-worker 是一个本地采集 SDK + 控制面 API 的最小可运行实现。
- 数据面在本地执行:SDK 直接请求第三方 URL,出口 IP 为用户本机。
- 控制面只做编排:鉴权、任务下发、心跳、结果回传、计费统计、审计。
- 双层脱敏:客户端本地预处理 + 上报前二次校验;平台端再次强制校验。
目录
yongle_worker_mvp/
pyproject.toml
README.md
.env.example
examples/
run_once.py
scripts/
start_control.py
src/
yongle_worker/
__init__.py
client.py
config.py
models.py
executor.py
sanitizer.py
checkpoint.py
rate_limiter.py
logging_utils.py
yongle_control/
__init__.py
__main__.py
app.py
auth.py
config.py
db.py
安装命令
直接安装(PyPI)
pip install yongle-worker
私有 PyPI 安装
pip install --index-url https://your-private-pypi/simple yongle-worker
5 分钟跑通
- 创建虚拟环境并安装依赖
python -m venv .venv
# Windows
.venv\Scripts\activate
pip install -U pip
pip install -e .
- 配置环境变量
copy .env.example .env
- 启动控制面 API
python scripts/start_control.py
- 另开终端执行一次任务
python examples/run_once.py
预期:
- SDK 自动注册 agent
- 拉取 demo 任务
task-demo-001 - 本地请求
https://httpbin.org/json - 完成脱敏和回传
控制面 API
POST /agent/registerPOST /tasks/pullPOST /tasks/{id}/heartbeatPOST /tasks/{id}/resultPOST /tasks/{id}/failGET /policy/current
鉴权方式:x-api-key 请求头。
脱敏策略说明
支持 3 种策略模式:
strict(默认):姓名/手机号/身份证/邮箱等敏感字段禁止上报(drop 或 block)research:允许本地保留研究字段,但默认上报仍会 mask/drop/blockcustom:用户通过custom_patterns与rules自定义
动作:
mask:掩码drop:删除字段block:拒绝上报并报错
每次上报必须包含 policy_version,平台端会校验任务绑定版本。
常见错误排查
401 invalid api key
- 检查
.env中YONGLE_API_KEY与YONGLE_CONTROL_API_KEYS是否一致。
policy_version mismatch
- 任务下发后策略版本变化,或客户端篡改了
policy_version。
blocked field_type=id_card
- 命中了
block规则。可在策略中调整,但平台端仍会执行强制校验。
http execution failed
- 本地网络不通、目标站超时、或 TLS/代理配置问题。
发布流程(TestPyPI + 正式 PyPI)
python -m build
twine upload --repository testpypi dist/*
twine upload dist/*
验证清单
- 安装后 import 成功
python -c "from yongle_worker import WorkerClient; print(WorkerClient.__name__)"
run_once成功拉任务、执行、回传
python examples/run_once.py
- 敏感字段被拦截/掩码(示例日志)
{"ts":"2026-04-16T12:00:00+00:00","level":"INFO","logger":"yongle_worker","message":"sanitization hit","task_id":"task-123","agent_id":"agent-abc","policy_version":"2026.04.16.1","field_type":"email","action":"drop"}
{"ts":"2026-04-16T12:00:01+00:00","level":"ERROR","logger":"yongle_worker","message":"task failed","task_id":"task-456","agent_id":"agent-abc","policy_version":"2026.04.16.1"}
打包输出
构建后产物位于 dist/,可用于 pip install 验证。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
yongle_worker-0.1.0.tar.gz
(14.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yongle_worker-0.1.0.tar.gz.
File metadata
- Download URL: yongle_worker-0.1.0.tar.gz
- Upload date:
- Size: 14.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92b50327687452e3611800b6c785b08a14cec980cdd014db6aedd8cf27faa836
|
|
| MD5 |
007160650e48a0aa38e821bf15d487ee
|
|
| BLAKE2b-256 |
2c11e7a8f8cec8cd43274283da4138bf4ca92dfad8e5bfd4dd108e216f3e3024
|
File details
Details for the file yongle_worker-0.1.0-py3-none-any.whl.
File metadata
- Download URL: yongle_worker-0.1.0-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c407cd8025406279bb5828f2f9d27999b663f48b7ae1a7edc406525165f14d26
|
|
| MD5 |
c81785ecbec015fd2bf0cd03f220ef63
|
|
| BLAKE2b-256 |
f079b48c48639b44b290c3d3a0568ff6beb611235317d9d9fb35decec7d41b3f
|