Skip to content

feat: update apps with new gateway version - #174

Merged
cowan-macady merged 3 commits into
masterfrom
ibac
Nov 10, 2026
Merged

cowan-macady merged 3 commits into
masterfrom
ibac

Conversation

@cowan-macady

@cowan-macady cowan-macady commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

implement ENG-9648

  • update apps with new gateway version

@cowan-macady
cowan-macady requested a review from a team as a code owner November 10, 2026 14:20
Copilot AI balanced review requested due to automatic review settings November 10, 2026 14:20
@drippa-ai

drippa-ai Bot commented Nov 10, 2026

Copy link
Copy Markdown

👋 Drippa is installed here, but Sign-Off isn't switched on yet.

Once it is, Drippa checks each pull request against the ticket it's for, and flags what drifted and what's missing. Then:

  • @drippa-ai review: a fresh review on any PR, drafts too
  • @drippa-ai help: what Drippa does on this repo

An admin can set up Drippa Sign-Off.

  • Don't show this again

@deepsource-io

deepsource-io Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in dff8828...9a7ffc1 on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Secrets Nov 10, 2026 3:05p.m. Review ↗
Python Nov 10, 2026 3:05p.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Distinct audit decisions can still be dropped, tool denials can show unrelated workflow grants, the primary gateway omits cache status, and Drive resource checks can break file reads and summaries.

5 open issues
What changed in this PR

Updates the three agent demos to Agent Gateway 2.0.3 and aligns provisioning, deployment configuration and audit displays with its admission and capability checks.

Changes:

  • Switches gateway images and updates endpoint, token-forwarding and cache settings.
  • Adds authorization policies and token-introspection configurations for the new gateway behavior.
  • Updates audit displays, agent guidance, documentation and Bruno assertions.
File Description
instant-stack/​README.md Documents gateway policies and token audiences.
instant-stack/​data/​insurance/​manifest.json Adds admission, capability and token-introspection configurations.
instant-stack/​data/​ibac/​manifest.json Adds capability, profile and weather policies.
instant-stack/​data/​canbank/​manifest.json Adds admission, capability and token-introspection configurations.
a2a/​intent-ibac-gateway/​README.md Updates release, forwarding and cache guidance.
a2a/​intent-ibac-gateway/​iag-base-docker.yaml Configures published image, forwarding and card caching.
a2a/​intent-ibac-gateway/​docker-compose.yaml Updates the gateway version in a comment.
a2a/​intent-ibac-gateway/​console/​tests/​main_test.py Updates admission-summary expectations.
a2a/​intent-ibac-gateway/​console/​static/​index.html Updates token-forwarding help text.
a2a/​intent-ibac-gateway/​console/​static/​architecture.html Updates release and forwarding descriptions.
a2a/​intent-ibac-gateway/​console/​static/​app.js Displays admission caching and forwarding details.
a2a/​intent-ibac-gateway/​console/​keys/​.gitkeep Preserves the keys directory.
a2a/​intent-ibac-gateway/​console/​app/​main.py Includes admission cache status in summaries.
a2a/​intent-ibac-gateway/​chart/​values.yaml Updates image and gateway defaults.
a2a/​intent-ibac-gateway/​chart/​values.schema.json Validates forwarding and card-cache settings.
a2a/​intent-ibac-gateway/​chart/​templates/​fleet.yaml Passes new gateway settings into deployments.
a2a/​intent-ibac-gateway/​.gitignore Excludes local signing keys.
a2a/​intent-ibac-gateway/​.example.env Documents new image and gateway settings.
a2a/​ibac-demo/​usecases/​README.md Explains capability nodes and workflow-specific relationships.
a2a/​ibac-demo/​usecases/​ibac/​skills/​retriever/​ibac-authz/​SKILL.md Documents expanded authorization vocabulary.
a2a/​ibac-demo/​usecases/​ibac/​skills/​retriever/​ciq-execute/​SKILL.md Prefers query-specific MCP tools.
a2a/​ibac-demo/​usecases/​ibac/​skills/​orchestrator/​coaz-mappings.json Adds profile and weather intent mappings.
a2a/​ibac-demo/​usecases/​ibac/​skills/​analyst/​ibac-authz/​SKILL.md Documents expanded authorization vocabulary.
a2a/​ibac-demo/​usecases/​ibac/​skills/​analyst/​ciq-execute/​SKILL.md Documents prefixed query-specific tools.
a2a/​ibac-demo/​usecases/​ibac/​DEMO_SCRIPT.md Updates capability and intent demonstrations.
a2a/​ibac-demo/​retriever_agent/​retriever_agent.py Updates tool guidance and tolerates resource-list failures.
a2a/​ibac-demo/​README.md Documents release behavior, setup and troubleshooting.
a2a/​ibac-demo/​iag-base-docker.yaml Pins gateway 2.0.3 and enables capability checks.
a2a/​ibac-demo/​docker-compose.yaml Updates Intent Agent and refresh intervals.
a2a/​ibac-demo/​chatbot/​tests/​push_update_test.py Tests capability audit-field forwarding.
a2a/​ibac-demo/​chatbot/​static/​styles.css Styles audit-action labels.
a2a/​ibac-demo/​chatbot/​static/​index.html Displays capabilities and distinguishes admission explanations.
a2a/​ibac-demo/​chatbot/​static/​architecture.html Documents capability checks and audit actions.
a2a/​ibac-demo/​chatbot/​app.py Forwards capability and cache audit fields.
a2a/​ibac-demo/​bruno/​ibac-demo/​kbac/​create-person-can-view-profile.yml Adds own-profile policy provisioning.
a2a/​ibac-demo/​bruno/​ibac-demo/​kbac/​create-person-can-use-tool.yml Adds tool capability policy provisioning.
a2a/​ibac-demo/​bruno/​ibac-demo/​kbac/​create-person-can-use-skill.yml Adds skill capability policy provisioning.
a2a/​ibac-demo/​bruno/​ibac-demo/​kbac/​create-person-can-use-prompt.yml Adds prompt capability policy provisioning.
a2a/​ibac-demo/​bruno/​ibac-demo/​kbac/​create-person-can-use-mcp-resource.yml Adds resource capability policy provisioning.
a2a/​ibac-demo/​bruno/​ibac-demo/​kbac/​create-person-can-read-weather.yml Adds weather policy provisioning.
a2a/​ibac-demo/​bruno/​ibac-demo/​environments/​ibac-demo.yml Adds variables for new policy identifiers.
a2a/​ibac-demo/​analyst_agent/​analyst_agent.py Updates query-specific tool guidance.
a2a/​ibac-demo/​.example.env Updates image, capability and intent settings.
a2a/​iag-mcp-demo/​usecases/​README.md Updates provisioning and configuration requirements.
a2a/​iag-mcp-demo/​usecases/​insurance/​SCENARIO.md Corrects the documented decision-cache wait.
a2a/​iag-mcp-demo/​usecases/​insurance/​DEMO_SCRIPT.md Updates capability, identity and audit demonstrations.
a2a/​iag-mcp-demo/​usecases/​canbank/​SCENARIO.md Corrects the documented decision-cache wait.
a2a/​iag-mcp-demo/​usecases/​canbank/​DEMO_SCRIPT.md Updates capability and skipped-hop demonstrations.
a2a/​iag-mcp-demo/​iag-base-docker.yaml Migrates gateway image and authorization configuration.
a2a/​iag-mcp-demo/​drive_mcp/​README.md Explains Drive capability limits and endpoint behavior.
a2a/​iag-mcp-demo/​docker-compose.yaml Sets gateway endpoints and Drive capability override.
a2a/​iag-mcp-demo/​chatbot/​static/​styles.css Styles delegation chains and audit labels.
a2a/​iag-mcp-demo/​chatbot/​static/​index.html Displays capability details and updates deduplication.
a2a/​iag-mcp-demo/​chatbot/​README.md Clarifies access-request targeting.
a2a/​iag-mcp-demo/​chatbot/​app.py Forwards chain, capability and cache audit fields.
a2a/​iag-mcp-demo/​chatbot/​a2a_client.py Corrects the client’s gateway-discovery docstring.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-retriever-mcp-list-tools.yml Expects an empty skipped-hop tool list.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-retriever-mcp-initialized-notification.yml Expects notification admission refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-retriever-mcp-initialize.yml Expects refusal without a session.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-retriever-ciq-execute.yml Expects query invocation refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-retriever-authzen-evaluate.yml Expects authorization-tool invocation refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-calls-retriever-gateway.yml Expects direct retriever admission refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-analyst-mcp-list-tools.yml Expects an empty skipped-hop tool list.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-analyst-mcp-initialized-notification.yml Expects notification admission refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-analyst-mcp-initialize.yml Expects refusal without a session.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-analyst-ciq-execute.yml Expects query invocation refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​millicent-analyst-authzen-evaluate.yml Expects authorization-tool invocation refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​folder.yml Documents revised skipped-hop expectations.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​carol-retriever-mcp-list-tools.yml Expects an empty skipped-hop tool list.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​carol-retriever-mcp-initialized-notification.yml Expects notification admission refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​carol-retriever-mcp-initialize.yml Expects refusal without a session.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​carol-retriever-ciq-execute.yml Expects query invocation refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​carol-retriever-authzen-evaluate.yml Expects authorization-tool invocation refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​wf4-parallel-mcp/​carol-calls-retriever-gateway.yml Expects direct retriever admission refusal.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​folder.yml Documents audience-specific token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​create-canbank-user-token-introspect.yml Provisions console-user token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​create-canbank-token-introspect.yml Provisions MCP-audience token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​create-canbank-delegated-indykiteagent.yml Provisions orchestrator-audience token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​create-canbank-delegated-indykiteagent-erp.yml Provisions ERP-audience token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​create-canbank-delegated-indykiteagent-drive.yml Provisions Drive-audience token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​create-canbank-delegated-indykiteagent-4.yml Provisions analyst-audience token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​create-canbank-delegated-indykiteagent-3.yml Provisions weather-audience token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​token-introspect/​create-canbank-delegated-indykiteagent-2.yml Provisions retriever-audience token introspection.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​ingest/​agent-workflow/​folder.yml Documents workflow and capability ingestion.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​environments/​iag-demo-prd.yml Clarifies Drive endpoint comments.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​ciq-config/​workflows-v2/​folder.yml Marks workflow queries unused by the gateway.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​ciq-config/​workflows-v1/​folder.yml Marks workflow queries unused by the gateway.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​ciq-config/​workflows-v0/​folder.yml Marks workflow queries unused by the gateway.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​authzen/​create-user-can-use-tool-policy.yml Provisions tool capability authorization.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​authzen/​create-user-can-use-skill-policy.yml Provisions skill capability authorization.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​authzen/​create-user-can-use-prompt-policy.yml Provisions prompt capability authorization.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​authzen/​create-user-can-use-mcp-resource-policy.yml Provisions resource capability authorization.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​authzen/​create-user-can-retrieve-quote-policy.yml Clarifies token-bound subject behavior in the description.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​authzen/​create-user-can-reach-agent-policy.yml Provisions delegation-chain admission authorization.
a2a/​iag-mcp-demo/​bruno/​iag-demo/​authzen/​create-customer-own-invoice-policy.yml Provisions customer-owned invoice authorization.
a2a/​iag-mcp-demo/​.example.env Updates issuer, endpoint and capability settings.

Review effort: Balanced

Comment thread a2a/ibac-demo/chatbot/static/index.html Resolved
Comment thread a2a/ibac-demo/iag-base-docker.yaml Resolved
Copilot AI balanced review requested due to automatic review settings November 10, 2026 14:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Restricted workflow grants allow an authorization bypass through ciq_execute, and capability denials still offer ineffective workflow-grant remediation.

1 open issue
1 previously missed issue

In code that hasn't changed since last review

Medium severity Capability denials still offer ineffective workflow grants

a2a/​ibac-demo/​chatbot/​static/​index.html:1458

The admission guard only restricts why?; both request/grant-access branches still offer workflow grants for capability denials. For example, an ERP INVOCATION denial can offer a CAN_TRIGGER grant that cannot repair a missing capability HAS edge. Make the grant bundle empty for non-admission records so neither remediation is offered.

5 resolved since last review

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings November 10, 2026 15:03

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Non-admission authorization failures still expose request/grant controls that cannot fix missing capability grants and may grant unrelated workflow access.

No open issues 🎉

1 previously missed issue

In code that hasn't changed since last review

Medium severity Hide grant controls for non-admission capability records

a2a/​ibac-demo/​chatbot/​static/​index.html:1458

isAdmission guards only the explanation, so a NOT_AUTHORIZED capability invocation still offers request/grant controls. Those controls write CAN_TRIGGER workflow edges, which cannot repair a missing HAS capability grant and may grant unrelated workflows. Make grantBundle empty for non-admission records to suppress both controls.

1 resolved since last review

Review effort: Balanced

@cowan-macady
cowan-macady merged commit 13d64df into master Nov 10, 2026
10 of 11 checks passed
@cowan-macady
cowan-macady deleted the ibac branch November 10, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants