Repository navigation
feat: support gateway token passthrough for embedded controllers - #3263
codyhartsook wants to merge 4 commits into
Conversation
Signed-off-by: Cody Hartsook <cody.hartsook@solo.io>
Signed-off-by: Cody Hartsook <cody.hartsook@solo.io>
Signed-off-by: Cody Hartsook <cody.hartsook@solo.io>
Signed-off-by: Cody Hartsook <cody.hartsook@solo.io>
919ddbf to
447b070
Compare
|
🤖 AI-generated review. I think this is putting the extension behavior too high in the stack. The use case is that we want different behavior on the compiled Substrate Could we make type EgressPolicyCompiler interface {
Compile(context.Context, EgressPolicyInput, *ateapipb.EgressPolicy) error
}The OSS compiler would always run first and build the normal allowlist and credential effects. Embedded controllers could register additional compilers that run afterward and add their behavior for the relevant origins. The chain would validate the final policy and reject conflicting effects rather than using last-writer-wins. That would let the generic compilation path keep With that boundary, I don't think we need |
Adds
app.Options.TokenPassthroughProviderso an embedded controller can delivertokenPassthroughcredentials through the egress gateway, keeping caller tokens out of the actor. Builds on #3177 and #3257. An empty option preserves existing runtime passthrough.When set:
ate-secret://<provider>/v1/https/<host>:<port>.ate-secretprovider URIs.The configured provider resolves credentials and authorizes their use. No CRD, Helm or protobuf changes.
Testing: affected race suites, PostgreSQL credential round-trip tests and lint pass. Live gateway/provider integration, Python execution and cold-start tool discovery remain unverified. The existing
TestInstallUsesSeparateSubstrateReleasestest fails locally because it reaches a running kagent API.