feat(server): http_callback 缺 HTTP ingress 路由——service 只有进程内 API,外部回调无处可投
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 68/100
Research direction
Read plaita/server/services/http_callback_service.py around handle_callback_request (:425) for the existing claim/auth/failure contract. Then inspect plaita-console/backend/api/*.py for route mounting and add a POST-only ingress that takes the callback id from the registered key, parses body into request_data, passes headers through, and returns the service dict with Q5 failure bodies unchanged; align it with the Go ingress contract in plaita-go 03003f1. Done means an external POST to the registered full_url reaches the service and matches the in-process response.
Written by the indexing model from the issue text.
Description
优先级 P2 · 依赖:无
基线 HEAD = 6f6fb86
Summary
http_callback 族的 HTTP 前门在任何地方都不存在:
plaita/server/services/http_callback_service.py的handle_callback_request(:425)是进程内 API——两阶段认领/四类认证/Q5 统一失败响应都齐了,但没有 HTTP 层调它。- 反证:
git grep -n "handle_callback_request" origin/main -- 'plaita-console/**' 'plaita/server/**'仅命中服务类自身与节点 docstring;plaita-console/backend/api/*.py与plaita/server/均无 /callback 路由(仅 services.py 点名清单、executions.py 台阶注释提及 http_callback)。 - 节点侧注册的
full_url指向http://localhost:8080/callback/...(Go 侧 translate_server 同款硬编码),而 :8080 上没有任何组件监听——外部回调 POST 无处可投,注册记录躺在plaita:http_callback:registered:*永不消费。 - 对照:Go 侧已由 plaita-wake 补了内置 ingress(plaita-go 03003f1,PLAITA_HTTP_CALLBACK_ADDR,逐条对齐 handle_callback_request 语义);Rust 侧同缺(plaita-rs#19)。
影响
Python 部署(哪怕是混编舰队里 Python 服务进程承担 wake 面)的 http_callback 族 flow 挂起后等不到回调:注册、认证、认领、事件链路全在,唯独缺最后一跳的 HTTP 入口。#188 两阶段认领与 #113 认证的修复价值被这个缺口锁住。
建议
在 plaita server(或独立小进程)暴露 POST 路由转发到 HttpCallbackService.handle_callback_request:路径取注册记录键、body 解析为 request_data dict、headers 透传(含 X-Plaita-Timestamp/Signature、Authorization);响应=handle_callback_request 返回 dict(Q5 失败分支保持同 body)。路由可直接复用 Go 侧 ingress 的契约(POST-only、body 解析失败=统一失败响应)。
边界
Go 侧 ingress 已落地(plaita-go 03003f1),本单只管 Python 部署面;kafka_queue 消费者另议。
- Dominant language
- Python
- Stars
- 0
- Forks
- 1
- Avg merge
- 1h 52m
- Merged PRs (30d)
- 15
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from jeffkit/plaita
-
Difficulty 5/5 Over a week Newbie friendliness 35/100
Maintainers usually reply within 1 day
-
Difficulty 5/5 Over a week Newbie friendliness 45/100
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 56/100
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 43/100
jeffkit/plaita#345 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 4/5 1-2 days Newbie friendliness 43/100
Maintainers usually reply within 1 day
Similar issues
-
ReadQwen3PaperTask5 rejects correct answers that differ only in order, case, or underscore formPossibly taken @Kingpython123 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
Tongyi-MAI/MobileWorld#72 ·
-
_threads/application: Update typing annotations using `pyupgrade --py311-plus`Possibly taken @gudnimg claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Health probes return 401 when authentication is enabled and the API is served under /orbPossibly taken @fgogolli claimed this today. Openarea: api priority: p2 size: S type: bug
Difficulty 2/5 Half a day Newbie friendliness 75/100
finos/open-resource-broker#704 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
BCDA-APS/polar-bits#93 ·
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 90/100
GoogleCloudPlatform/gce-rescue#218 ·
Maintainers usually reply within 2 days