lex-microsoft_teams 0.6.24 → 0.6.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/CLAUDE.md +3 -3
- data/lib/legion/extensions/microsoft_teams/helpers/browser_auth.rb +3 -3
- data/lib/legion/extensions/microsoft_teams/hooks/auth.rb +1 -5
- data/lib/legion/extensions/microsoft_teams/runners/auth.rb +1 -0
- data/lib/legion/extensions/microsoft_teams/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 42353a2d92e77ba3659f2ab93c24339efca2e869a4ae18d30621b5fb3e3cd947
|
|
4
|
+
data.tar.gz: 4420f02e9d66c85c673e6411203b06fa49862d9a5a16ef78cf7b55a366da3a8d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: b165c26eca6e63b1d181a0aee9a2bfadd72039e2cda558bc33fc08e49a1ba1730af044012dcb6936848c03b02ca7d30c00be6678c5e4e9665070f2811b24ec4a
|
|
7
|
+
data.tar.gz: bdae821120daca1fcd888c57cc2a2996aced5b8270e88332235dc4c2ee71fe1a0f4533f6b5a28df6761f78f3bb233e7aafb4f92db4c33fec518cf1d39d78584e
|
data/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [0.6.25] - 2026-03-28
|
|
6
|
+
|
|
7
|
+
### Fixed
|
|
8
|
+
- `Hooks::Auth` — migrated from v2.0 `Routes::Hooks` pattern to v3.0 `LexDispatch` pattern: replaced instance `route`/`runner_class` overrides with a class-level `self.runner_class`; hook now registers as `POST /api/extensions/microsoft_teams/hooks/auth/handle` (was `/api/hooks/lex/microsoft_teams/auth/callback`)
|
|
9
|
+
- `Runners::Auth` — added `handle` alias for `auth_callback` so LexDispatch's default `:handle` routing resolves correctly
|
|
10
|
+
- `Helpers::BrowserAuth` — updated all three references to the hook redirect URI and probe path from the stale v2.0 path to `/api/extensions/microsoft_teams/hooks/auth/handle`
|
|
11
|
+
|
|
5
12
|
## [0.6.24] - 2026-03-28
|
|
6
13
|
|
|
7
14
|
### Added
|
data/CLAUDE.md
CHANGED
|
@@ -64,7 +64,7 @@ Legion::Extensions::MicrosoftTeams
|
|
|
64
64
|
│ ├── TraceRetriever # Retrieves memory traces from the shared store for bot context (2000-token budget, strength-ranked dedup)
|
|
65
65
|
│ └── TransformDefinitions # lex-transformer definitions for conversation extraction and person summary
|
|
66
66
|
├── Hooks/
|
|
67
|
-
│ └── Auth # OAuth callback hook (mount '/callback') → /api/
|
|
67
|
+
│ └── Auth # OAuth callback hook (mount '/callback') → /api/extensions/microsoft_teams/hooks/auth/handle
|
|
68
68
|
├── CLI/
|
|
69
69
|
│ └── Auth # CLI module for `legion lex exec teams auth login/status`
|
|
70
70
|
└── Client # Standalone client (includes all runners)
|
|
@@ -74,10 +74,10 @@ Legion::Extensions::MicrosoftTeams
|
|
|
74
74
|
|
|
75
75
|
Opt-in browser-based OAuth for delegated Microsoft Graph permissions. Two flows:
|
|
76
76
|
|
|
77
|
-
- **Authorization Code + PKCE** (primary): Opens browser for Entra ID login. When the Legion API is running, uses the hook URL (`/api/
|
|
77
|
+
- **Authorization Code + PKCE** (primary): Opens browser for Entra ID login. When the Legion API is running, uses the hook URL (`/api/extensions/microsoft_teams/hooks/auth/handle`) with `Legion::Events` for callback notification; otherwise falls back to an ephemeral local port via `CallbackServer`
|
|
78
78
|
- **Device Code** (fallback): Auto-selected in headless/SSH environments (no `DISPLAY`/`WAYLAND_DISPLAY`)
|
|
79
79
|
|
|
80
|
-
Tokens stored in Vault at a per-user path (`{USER}/microsoft_teams/delegated_token`, where `{USER}` is the system username) with configurable pre-expiry silent refresh. CLI command: `legion auth teams`. Hook route: `
|
|
80
|
+
Tokens stored in Vault at a per-user path (`{USER}/microsoft_teams/delegated_token`, where `{USER}` is the system username) with configurable pre-expiry silent refresh. CLI command: `legion auth teams`. Hook route: `POST /api/extensions/microsoft_teams/hooks/auth/handle` for daemon re-auth (routed through LexDispatch for RBAC/audit).
|
|
81
81
|
|
|
82
82
|
Key files: `Helpers::BrowserAuth` (orchestrator), `Helpers::CallbackServer` (ephemeral TCP), `Runners::Auth` (authorize_url, exchange_code, refresh_delegated_token, auth_callback), `Helpers::TokenCache` (delegated slot), `Hooks::Auth` (hook class with mount path).
|
|
83
83
|
|
|
@@ -72,7 +72,7 @@ module Legion
|
|
|
72
72
|
else
|
|
73
73
|
4567
|
|
74
74
|
end
|
|
75
|
-
"http://127.0.0.1:#{port}/api/
|
|
75
|
+
"http://127.0.0.1:#{port}/api/extensions/microsoft_teams/hooks/auth/handle"
|
|
76
76
|
end
|
|
77
77
|
|
|
78
78
|
def generate_pkce
|
|
@@ -121,9 +121,9 @@ module Legion
|
|
|
121
121
|
def hook_route_registered?
|
|
122
122
|
return false unless defined?(Legion::API)
|
|
123
123
|
|
|
124
|
-
log.debug("Probing hook route at http://127.0.0.1:#{api_port}/api/
|
|
124
|
+
log.debug("Probing hook route at http://127.0.0.1:#{api_port}/api/extensions/microsoft_teams/hooks/auth/handle")
|
|
125
125
|
conn = Faraday.new(url: "http://127.0.0.1:#{api_port}")
|
|
126
|
-
resp = conn.head('/api/
|
|
126
|
+
resp = conn.head('/api/extensions/microsoft_teams/hooks/auth/handle')
|
|
127
127
|
registered = resp.status != 404
|
|
128
128
|
log.debug("Hook route probe returned #{resp.status} (registered=#{registered})")
|
|
129
129
|
registered
|
|
@@ -7,11 +7,7 @@ module Legion
|
|
|
7
7
|
class Auth < Legion::Extensions::Hooks::Base
|
|
8
8
|
mount '/callback'
|
|
9
9
|
|
|
10
|
-
def
|
|
11
|
-
:auth_callback
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def runner_class
|
|
10
|
+
def self.runner_class
|
|
15
11
|
'Legion::Extensions::MicrosoftTeams::Runners::Auth'
|
|
16
12
|
end
|
|
17
13
|
end
|