[FEATURE] Webhook implementations of the controller's authorizer and egress policy compiler
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 35/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- go, kubernetes
- 领域
- authorization, backend
调研方向
Start by reading the controller's app.Options extension points and the existing authorizer and egress compiler implementations referenced by issues #2658 and #3263. Then trace how authorization checks and compiled policies reach their current callers. Done means both opt-in webhook clients support the described request and response behavior, including failure handling; the issue leaves the compiler payload type unresolved.
由索引模型根据 Issue 内容生成。
描述
📋 Prerequisites
- I have searched the existing issues to avoid creating a duplicate
- By submitting this issue, you agree to follow our Code of Conduct
📝 Feature Summary
app.Options lets an embedding binary supply its own Authorizer (#2658) and egress policy compilers (#3263). Add opt-in webhook implementations of both, so a deployer can run that logic as a separate service and keep the stock controller image.
❓ Problem Statement / Motivation
Today the only way to use these extension points is to build your own controller binary around app.Run: pin a kagent commit, follow app.Run changes at each upgrade, and build and ship a separate controller image.
The gateway (extAuthz, as discussed in #1890) can't replace them:
Scopefilters collection reads per namespace. A gateway can only refuse a whole call.Checkneeds controller state, such as the namespace of the Agent a new Session runs on.- The egress policy is a Substrate proto sent to ate-api, not a Kubernetes object, so no admission webhook sees it.
💡 Proposed Solution
Two clients, off unless configured, similar to the Kubernetes authorization and admission webhooks:
- Authorizer: POST each
Check(principal, verb, resource) andScope(principal, verb, resource type) to a URL, and read back allowed/denied or anAuthorizationScope. Cache decisions briefly. A webhook that doesn't answer isUnavailable, notPermissionDenied. The actor policy from #3282 still applies on top. - Egress compiler: POST the compiler input and the built policy to a URL, and read the policy back. Compilers already have no side effects and may run more than once, so this fits a webhook. A failed call fails that actor's start.
Open question: should the compiler webhook carry Substrate's proto as it is, or a kagent-owned type?
🔄 Alternatives Considered
No response
🎯 Affected Service(s)
Controller Service
📚 Additional Context
Related: #1270, #1890, #2658, #3263, #3282
🙋 Are you willing to contribute?
- I am willing to submit a PR for this feature
- 主要语言
- Go
- 星标
- 4.2k
- 派生
- 890
- 平均合并
- 1 天 6 小时
- 30 天内合并 PR
- 189
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
kagent-dev/kagent 的其他 Issue
-
skills-init: commit-SHA skill refs never start (git checkout -- <sha> reads the SHA as a pathspec)可能已有人在做 @talcoh2x 于 1 天前认领。 未关闭
难度 1/5 1 小时以内 新手友好度 84/100
kagent-dev/kagent#3571 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Gemini catalogs omit gemini-4-argon and gemini-3.8-flash可能已有人在做 @jayunit100 于 1 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 84/100
kagent-dev/kagent#3524 · 2 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
Don't add the provider's public host to egress when a ModelConfig sets baseUrl可能已有人在做 @lakshyab20 于 1 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 81/100
kagent-dev/kagent#3507 · 1 条评论 · 已指派 1 人 ·
维护者通常 1 天内回复
-
[BUG] OpenAI and Ollama adapters send an empty tool message when a tool returns a dict可能已有人在做 @helloxjade 于 9 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 85/100
kagent-dev/kagent#3462 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 84/100
kagent-dev/kagent#3428 · 1 条评论 ·
维护者通常 1 天内回复
查看 kagent-dev/kagent 的全部 Issue
相似的 Issue
-
bug raised-by:desk
难度 2/5 1-3 小时 新手友好度 72/100
medici-finance/assay#6102 ·
维护者通常 1 天内回复
-
hive size:simple
难度 2/5 1-3 小时 新手友好度 84/100
akleizor/ccmorph#456 · 1 条评论 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 82/100
radius-project/radius#13744 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
-
难度 2/5 1-3 小时 新手友好度 86/100
mvanhorn/printing-press-library#2460 ·
维护者通常 1 天内回复