Skip to content

feat(gateway): add Microsoft Teams outgoing webhook adapter - #442

Closed
esafwan wants to merge 1 commit into
feature/gateway-foundationfrom
feature/teams-gateway
Closed

feat(gateway): add Microsoft Teams outgoing webhook adapter#442
esafwan wants to merge 1 commit into
feature/gateway-foundationfrom
feature/teams-gateway

Conversation

@esafwan

@esafwan esafwan commented Jul 26, 2026

Copy link
Copy Markdown
Contributor

Dependency

Dependent on draft #441 (feature/gateway-foundation), which provides Gateway, Gateway Event, and the provider-neutral ingress service. This PR is intentionally based on that branch rather than develop.

Scope

Adds the narrow Microsoft Teams Outgoing Webhook adapter:

  • Adds Microsoft Teams to the Gateway channel picker.
  • Verifies Teams Authorization: HMAC <base64> signatures against the base64 signing key stored as teams_outgoing_webhook_hmac_key in the linked active microsoft_teams Integration Settings record.
  • Normalizes verified message Activities into Gateway Event ingress.
  • Returns a synchronous fixed acknowledgement in the original Teams thread; gateway routing and policy remain responsible for agent/flow execution.

Deliberately not included

This is not a full Azure Bot Framework adapter: no personal/private chats, JWT/app registration, proactive messaging, or model-generated synchronous replies. Those require a separately designed Bot Framework capability.

Verification

  • python3 -m py_compile huf/ai/tools/teams_webhook.py huf/ai/tests/test_teams_webhook.py
  • In provisioned Frappe test environment: PYTHONPATH=/tmp/huf-teams-test ./env/bin/python -m unittest huf.ai.tests.test_teams_webhook (4 passed)
  • python3 -m json.tool huf/huf/doctype/gateway/gateway.json
  • git diff --check

@esafwan

esafwan commented Jul 26, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by consolidated Gateway PR #473, preserving the foundation, SDK, adapter, runtime bridge, security, and documentation scope.

@esafwan

esafwan commented Jul 26, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by / consolidated into #473.\n\nRelated gateway PRs: #441 #442 #443 #446 #447 #448 #449

esafwan added a commit that referenced this pull request Jul 26, 2026
…me list (#481)

- gatewayApi.ts: replace stale access_policy with direct_policy/room_policy/
  room_sender_policy/mention_required/pairing_ttl_minutes; expand provider type.
- GatewaysPage.tsx: use direct_policy; add TODO comments; fallback icons/names
  for providers without adapter UIs.
- App.tsx / app-sidebar.tsx: comment out /gateways route and sidebar item while
  the feature is incomplete.
- flow_run.json: remove Gateway from trigger_type options.
- gateway_service.py: add TODO where Gateway trigger_type is used.
- docs/gateway-todo.md: new shame list / restoration checklist.
- AGENTS.md: link to docs/gateway-todo.md.

Refs #473, #441, #442, #443, #446, #447, #448, #449.
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.

1 participant