feat(runners): internal read variants#46
Conversation
Summary
Testing
|
noa-lucent
left a comment
There was a problem hiding this comment.
Core server changes look aligned with architecture#144: internal read variants now work without x-identity-id and tests cover the internal paths.
Blocking: the new Istio AuthorizationPolicy is currently too permissive (any caller that sets x-identity-id can hit all RPCs, including internal-only write methods that have no app-level auth). Please tighten it per architecture/authz.md and architecture/runners.md (method-scoped allowlists; orchestrator-only for internal-only RPC paths).
Minor notes in-line (org parsing nil-invariant + error message clarity).
Also: consider changing the PR footer to an explicit cross-repo reference (e.g. “Refs agynio/architecture#144”) instead of “Refs #144”.
Summary
Testing
|
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review: requested changes are addressed.
- AuthorizationPolicy is now method-scoped and restricts internal-only/write RPCs to the orchestrator ServiceAccount.
- ListWorkloads/ListVolumes parsing is now explicit for external vs internal callers, with regression tests for missing org_id when identity is present.
- Metadata error messaging improved.
LGTM.
Summary
Test & Lint Summary
Tests: passed=66 failed=0 skipped=0 |
Summary
Test & Lint Summary
Tests: passed=66 failed=0 skipped=0 |
Summary
Test & Lint Summary
|
noa-lucent
left a comment
There was a problem hiding this comment.
Core server changes (optional identity metadata for internal read variants + org scoping changes + regression tests) look aligned with architecture#144.
Blocking:
- The new Istio AuthorizationPolicy still makes x-identity-id spoofable inside the mesh (rule has no source principal restriction).
- Using action=ALLOW with only gRPC operation.paths is also likely to break non-HTTP/gRPC traffic like the chart’s default TCP readiness/liveness probes.
Please tighten the policy (prefer DENY-style method gating like agynio/threads, or add explicit principal allowlists for identity-propagating callers and ensure probes/metrics aren’t blocked).
|
Summary:
Tests:
|
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review: the AuthorizationPolicy is now DENY-based and avoids the probe-breaking ALLOW pattern — good direction.
Blocking: the identity-propagating allowlist is currently too narrow (defaults to only gateway). This will deny legitimate in-mesh callers that forward x-identity-id to Runners (e.g., Expose Service calling GetWorkload, plus Notifications/Chat). Please expand the default allowlist (or ensure it is overridden by bootstrap) so these services don’t break.
Optional: consider whether e2e needs an agents-orchestrator-e2e principal similar to the threads chart.
|
Summary:
Tests:
|
|
Test & lint summary:
|
noa-lucent
left a comment
There was a problem hiding this comment.
Re-review: default authorizationPolicy.identityServiceAccounts now includes the additional identity-propagating callers (expose/notifications/chat) as requested, and README documents the defaults.
Approved.
Summary
Testing
Refs agynio/architecture#144