Skip to content
Emmanuel Knafo edited this page Sep 16, 2026 · 7 revisions

title: Air Canada Threat and Vulnerability Assessment Agent description: Verified hosted-agent implementation, release evidence, and operational guidance.

Try the staging web chatbot

Open the chatbot with an approved same-tenant pilot account. The standalone React/FastAPI app invokes the existing staging hosted agent through a dedicated managed identity. The pilot administrator has verified sign-in and a synthetic device-risk report.

See Web Chat Pilot for architecture and sequence diagrams, access setup, remote builds, digest-pinned deployment, recovery, limits and the Teams roadmap. Public HTTPS ingress is authenticated at the application layer, not network-private. There is no production web frontend or deployed Teams integration.

Verified release

WI-11 is resolved for this implementation. The complete staging-to-production workflow 34178081808 finished successfully on 2026-09-08 UTC (September 7 in North American evening time zones). The evaluated staging agent was version 6; production version 34 is active. Production smoke invocation passed, and the monitoring query returned 0 exceptions in its trailing ten-minute window. Both production environment gates were approved through the configured reviewer policy; protection settings were not bypassed.

This is a working proof of concept with synthetic MCP security telemetry, not a claim that live Air Canada security systems, sustained availability, or enterprise production readiness have been certified. The production environment name denotes the release target.

This wiki documents the proof of concept for hosting Air Canada's LangGraph-based Threat & Vulnerability Assessment Agent on Microsoft Foundry hosted agents.

What this project is

Air Canada asked for a proof of concept and a decision-oriented comparison between LangGraph/LangSmith self-hosted server offerings and Microsoft Foundry hosted agents, covering deployment, operations, security, governance, observability, scalability, and integration. The repository implements the Foundry side of that comparison: a working multi-agent LangGraph workflow deployed as a Foundry hosted agent, backed by two mocked MCP tool servers.

Pages

  • Web Chat Pilot covers the usable chatbot, identity and request flows, deployment links, operating limits and future Teams integration.
  • Release Evidence contains the successful pipeline, evaluation matrix, runtime tool receipts, production version, monitoring result, and proof screenshots.
  • Architecture covers the LangGraph agent topology, the Foundry services defined in azure.yaml, and the MCP tool servers.
  • Operations covers release approvals, identity checks, immutable MCP image promotion, monitoring, and manual recovery boundaries.
  • RBAC 401 Investigation records the resolved WI-11 symptom, verified release outcome, and historical troubleshooting evidence.
  • Manual Agent Workaround covers a working portal-native agent, built manually in the same project, that proves the project, model access, and MCP tool servers all work correctly end to end It is retained as an isolation experiment, not the required deployment path.

🎓 A bilingual (EN/FR), 9-lab hands-on workshop built from this PoC — plus a companion slide deck — lives in docs/ and is published via GitHub Pages (sign-in required; repo is internal). See the README for the link.

Quick facts

  • Repository: devopsabcs-engineering/foundry-hosted-agents
  • azd environment: air-canada-threat-assessment-poc
  • Subscription: ME-MngEnvMCAP675646-emknafo-1
  • Region: East US 2
  • Resource group: rg-air-canada-threat-assessment-poc
  • Foundry account: aif-air-canada-threat-assessment-poc
  • Foundry project: proj-air-canada-threat-assessment-poc
  • Hosted agent: threat-assessment-agent

Useful commands

# Provision infrastructure
azd provision --no-prompt

# Deploy the hosted agent and MCP toolboxes
azd deploy --no-prompt

# Invoke the deployed agent
azd ai agent invoke threat-assessment-agent "Assess device CREW-PORTAL-01 for account crew-admin using available read-only evidence." --no-prompt

# Show the current agent version and identity details
azd ai agent show threat-assessment-agent --no-prompt

# Stream the hosted agent's own runtime logs
azd ai agent monitor threat-assessment-agent --no-prompt

Clone this wiki locally