@gizmodata/gizmosql-mcp 0.3.7 → 0.4.0
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.
- package/CHANGELOG.md +35 -0
- package/README.md +92 -14
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/connection.d.ts +18 -0
- package/dist/connection.js +79 -1
- package/dist/connection.js.map +1 -1
- package/dist/oauth.d.ts +78 -0
- package/dist/oauth.js +209 -0
- package/dist/oauth.js.map +1 -0
- package/dist/params.d.ts +3 -3
- package/dist/server.d.ts +6 -0
- package/dist/server.js +11 -3
- package/dist/server.js.map +1 -1
- package/dist/sessions.d.ts +42 -0
- package/dist/sessions.js +85 -0
- package/dist/sessions.js.map +1 -0
- package/dist/transports.d.ts +17 -6
- package/dist/transports.js +169 -23
- package/dist/transports.js.map +1 -1
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,41 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.4.0] - 2026-09-09
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- OAuth for the Streamable HTTP transport. With `GIZMOSQL_MCP_OAUTH_ISSUER` and
|
|
14
|
+
`GIZMOSQL_MCP_PUBLIC_URL` set, the server acts as an OAuth 2.1 resource server
|
|
15
|
+
for any OpenID Connect provider that issues JWT access tokens (Microsoft Entra
|
|
16
|
+
ID, Okta, Auth0, Keycloak, Cognito, Clerk): it discovers the provider's JWKS,
|
|
17
|
+
verifies issuer, audience, signature and expiry on every request, serves the
|
|
18
|
+
RFC 9728 protected-resource metadata at `/.well-known/oauth-protected-resource`
|
|
19
|
+
(and the `/mcp`-suffixed form), and answers 401 with the `WWW-Authenticate`
|
|
20
|
+
challenge Claude.ai uses to start the sign-in flow. Optional
|
|
21
|
+
`GIZMOSQL_MCP_OAUTH_AUTHORIZED_EMAILS` restricts callers to an email allowlist
|
|
22
|
+
(403), `GIZMOSQL_MCP_OAUTH_AUDIENCE` accepts several audiences, and
|
|
23
|
+
`GIZMOSQL_MCP_OAUTH_JWKS_URI` skips discovery. The caller's token is never
|
|
24
|
+
forwarded: GizmoSQL is reached with the configured service credentials.
|
|
25
|
+
- Per-user sessions over HTTP. Each authenticated user gets their own
|
|
26
|
+
GizmoSQL connections, current connection and search path, so `use_schema`,
|
|
27
|
+
`USE` and `use_connection` no longer leak between people sharing one
|
|
28
|
+
server. Sessions close after `GIZMOSQL_MCP_SESSION_IDLE_SECONDS` (default
|
|
29
|
+
1800) without a request or when `GIZMOSQL_MCP_MAX_SESSIONS` (default 200)
|
|
30
|
+
is reached, least recently used first. `server_info` reports
|
|
31
|
+
`session_scope`, `session_started` and `session_idle_timeout_seconds`.
|
|
32
|
+
- Every JSON-RPC request over HTTP is logged with the authenticated caller and
|
|
33
|
+
the tool or resource it touched, and `server_info` reports `authenticated_user`.
|
|
34
|
+
- A container image for the HTTP transport (`ghcr.io/gizmodata/gizmosql-mcp`,
|
|
35
|
+
linux/amd64 and linux/arm64) and a Helm chart
|
|
36
|
+
(`oci://ghcr.io/gizmodata/charts/gizmosql-mcp`), both published by the release
|
|
37
|
+
workflow with versions locked to the npm package.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- `GIZMOSQL_MCP_BEARER_TOKEN` and OAuth are mutually exclusive; configuring both
|
|
41
|
+
is a startup error. The 401 for a static token now carries a JSON body.
|
|
42
|
+
- `login_sso` is only registered on the stdio transport; over HTTP it would
|
|
43
|
+
open a browser on the server.
|
|
44
|
+
|
|
10
45
|
## [0.3.7] - 2026-09-08
|
|
11
46
|
|
|
12
47
|
### Fixed
|
package/README.md
CHANGED
|
@@ -125,21 +125,84 @@ first install.
|
|
|
125
125
|
### Streamable HTTP (remote connector)
|
|
126
126
|
|
|
127
127
|
The same server can listen over Streamable HTTP for MCP clients that connect over the
|
|
128
|
-
network, such as a Claude.ai custom connector
|
|
128
|
+
network, such as a Claude.ai custom connector. The MCP endpoint is `/mcp`; `/healthz`
|
|
129
|
+
answers health checks. Put it behind TLS (an ingress or reverse proxy) before exposing
|
|
130
|
+
it beyond localhost. Requests are authenticated in one of two ways.
|
|
131
|
+
|
|
132
|
+
**OAuth (recommended).** Any OpenID Connect provider that issues signed JWT access
|
|
133
|
+
tokens works: Microsoft Entra ID, Okta (custom authorization server), Auth0, Keycloak,
|
|
134
|
+
Cognito, Clerk. The server is an OAuth 2.1 *resource server*: it verifies each bearer
|
|
135
|
+
token against the provider's JWKS (issuer, audience, signature, expiry) and serves the
|
|
136
|
+
RFC 9728 metadata at `/.well-known/oauth-protected-resource[/mcp]` so clients find the
|
|
137
|
+
provider on their own. The token is never forwarded; the GizmoSQL connection uses the
|
|
138
|
+
configured service credentials.
|
|
129
139
|
|
|
130
140
|
```bash
|
|
131
141
|
GIZMOSQL_HOST=gizmosql.internal.example.com \
|
|
132
|
-
GIZMOSQL_USERNAME=
|
|
133
|
-
|
|
142
|
+
GIZMOSQL_USERNAME=mcp_service GIZMOSQL_PASSWORD='service-password' \
|
|
143
|
+
GIZMOSQL_MCP_PUBLIC_URL=https://mcp.example.com/mcp \
|
|
144
|
+
GIZMOSQL_MCP_OAUTH_ISSUER=https://login.microsoftonline.com/<tenant-id>/v2.0 \
|
|
145
|
+
GIZMOSQL_MCP_OAUTH_AUDIENCE=<application-client-id> \
|
|
146
|
+
GIZMOSQL_MCP_OAUTH_SCOPES=https://mcp.example.com/mcp/access_as_user \
|
|
147
|
+
GIZMOSQL_MCP_OAUTH_AUTHORIZED_EMAILS='*@example.com' \
|
|
134
148
|
npx -y @gizmodata/gizmosql-mcp --transport http --host 0.0.0.0 --port 3000
|
|
135
149
|
```
|
|
136
150
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
151
|
+
Then add `https://mcp.example.com/mcp` as a custom connector in Claude (Customize >
|
|
152
|
+
Connectors). Claude sends that URL as the OAuth `resource`, discovers the provider from
|
|
153
|
+
the metadata, runs the authorization-code flow with PKCE, and retries with the token.
|
|
154
|
+
Each tool call is logged with the caller's identity, and `server_info` reports it as
|
|
155
|
+
`authenticated_user`.
|
|
156
|
+
|
|
157
|
+
Every authenticated user gets their own session: their own GizmoSQL connections (still
|
|
158
|
+
opened with the configured service credentials), current connection and search path, so
|
|
159
|
+
`use_schema`, `USE` and `use_connection` never affect anyone else. Sessions are created
|
|
160
|
+
on first use and closed after `GIZMOSQL_MCP_SESSION_IDLE_SECONDS` without a request
|
|
161
|
+
(default 30 minutes) or when `GIZMOSQL_MCP_MAX_SESSIONS` is reached (least recently used
|
|
162
|
+
first); an evicted session simply starts again from the configured defaults. Session
|
|
163
|
+
state lives in the pod's memory, so with several replicas either pin each user to one pod
|
|
164
|
+
(the ingress can hash on the `Authorization` header) or accept that a switch of pod resets
|
|
165
|
+
the search path to the defaults. `login_sso` is not offered over HTTP: it opens a browser
|
|
166
|
+
on the machine running the server.
|
|
167
|
+
|
|
168
|
+
Provider notes:
|
|
169
|
+
|
|
170
|
+
- **Microsoft Entra ID** does not support dynamic client registration, so the person
|
|
171
|
+
adding the connector enters the app registration's client ID and secret under
|
|
172
|
+
*Advanced settings*. On the registration: redirect URI
|
|
173
|
+
`https://claude.ai/api/mcp/auth_callback` (platform *Web*), *Expose an API* with the
|
|
174
|
+
MCP URL itself (`https://mcp.example.com/mcp`) as an Application ID URI and a scope
|
|
175
|
+
such as `access_as_user`, `requestedAccessTokenVersion` 2, and admin consent for that
|
|
176
|
+
scope. v2 access tokens carry the client ID as `aud`, hence
|
|
177
|
+
`GIZMOSQL_MCP_OAUTH_AUDIENCE=<client-id>`; set `GIZMOSQL_MCP_OAUTH_SCOPES` to
|
|
178
|
+
`<Application ID URI>/<scope>` so Claude asks for a token for this API rather than for
|
|
179
|
+
Microsoft Graph. A single-tenant registration plus `GIZMOSQL_MCP_OAUTH_AUTHORIZED_EMAILS`
|
|
180
|
+
restricts access to one organisation.
|
|
181
|
+
- **Okta** needs a custom authorization server (tokens from the org server are opaque);
|
|
182
|
+
**Auth0** needs an API with the audience; **Keycloak** works out of the box and is the
|
|
183
|
+
easiest local test target; **Clerk** issues JWT access tokens by default.
|
|
184
|
+
- Providers whose access tokens are opaque (Google) are not supported in this mode.
|
|
185
|
+
|
|
186
|
+
**Static bearer token.** For a quick shared secret instead of OAuth, set
|
|
187
|
+
`GIZMOSQL_MCP_BEARER_TOKEN`; every request must then send `Authorization: Bearer <token>`,
|
|
188
|
+
which Claude's connector settings can add as a request header. The two modes are mutually
|
|
189
|
+
exclusive. With neither set the endpoint is unauthenticated, for local use only.
|
|
190
|
+
|
|
191
|
+
#### Container image and Helm chart
|
|
192
|
+
|
|
193
|
+
Releases publish a multi-arch image, `ghcr.io/gizmodata/gizmosql-mcp:<version>`
|
|
194
|
+
(linux/amd64 and linux/arm64), whose entrypoint runs the HTTP transport on port 3000,
|
|
195
|
+
and a Helm chart, `oci://ghcr.io/gizmodata/charts/gizmosql-mcp`, that deploys it with a
|
|
196
|
+
ConfigMap for the `GIZMOSQL_*` settings, a Secret (or `existingSecret`) for credentials,
|
|
197
|
+
and an optional Ingress:
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
helm upgrade --install gizmosql-mcp oci://ghcr.io/gizmodata/charts/gizmosql-mcp \
|
|
201
|
+
--version <version> --namespace gizmosql-mcp --create-namespace \
|
|
202
|
+
--values values.yaml
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
See [charts/gizmosql-mcp/values.yaml](charts/gizmosql-mcp/values.yaml) for every option.
|
|
143
206
|
|
|
144
207
|
## Configuration
|
|
145
208
|
|
|
@@ -162,7 +225,17 @@ same names.
|
|
|
162
225
|
| `GIZMOSQL_QUERY_TIMEOUT_SECONDS` | `60` | Per-statement timeout; `0` disables it |
|
|
163
226
|
| `GIZMOSQL_OAUTH_PORT` | `31339` | OAuth HTTP port used by `login_sso` |
|
|
164
227
|
| `GIZMOSQL_ENABLE_SSO` | `false` | Register the `login_sso` tool (credentials may then be left empty) |
|
|
165
|
-
| `GIZMOSQL_MCP_BEARER_TOKEN` | | HTTP transport
|
|
228
|
+
| `GIZMOSQL_MCP_BEARER_TOKEN` | | HTTP transport: static bearer token (mutually exclusive with OAuth) |
|
|
229
|
+
| `GIZMOSQL_MCP_PUBLIC_URL` | | HTTP transport with OAuth: public URL of the `/mcp` endpoint, the OAuth resource identifier |
|
|
230
|
+
| `GIZMOSQL_MCP_OAUTH_ISSUER` | | HTTP transport: OpenID Connect issuer URL; setting it enables OAuth |
|
|
231
|
+
| `GIZMOSQL_MCP_OAUTH_AUDIENCE` | public URL | Accepted `aud` values, comma-separated (Entra ID v2 tokens: the client ID) |
|
|
232
|
+
| `GIZMOSQL_MCP_OAUTH_SCOPES` | | Scopes advertised to clients and requested on a 401 |
|
|
233
|
+
| `GIZMOSQL_MCP_OAUTH_AUTHORIZED_EMAILS` | | Glob allowlist of sign-in emails, e.g. `*@example.com` |
|
|
234
|
+
| `GIZMOSQL_MCP_OAUTH_JWKS_URI` | discovered | JWKS endpoint, when discovery from the issuer is not possible |
|
|
235
|
+
| `GIZMOSQL_MCP_OAUTH_USER_CLAIM` | `email,preferred_username,upn,name,sub` | Claims tried in order to name the caller |
|
|
236
|
+
| `GIZMOSQL_MCP_OAUTH_ALLOW_INSECURE` | `false` | Accept `http://` issuer and public URLs (local testing only) |
|
|
237
|
+
| `GIZMOSQL_MCP_SESSION_IDLE_SECONDS` | `1800` | HTTP transport with OAuth: close a user's session after this long without a request |
|
|
238
|
+
| `GIZMOSQL_MCP_MAX_SESSIONS` | `200` | HTTP transport with OAuth: cap on concurrent user sessions |
|
|
166
239
|
| `GIZMOSQL_2_HOST`, `GIZMOSQL_3_HOST`, … | | Additional connections, see below |
|
|
167
240
|
| `GIZMOSQL_CONNECTIONS` | | Comma-separated names of further connections, see below |
|
|
168
241
|
|
|
@@ -295,6 +368,8 @@ npm run test:integration # starts gizmodata/gizmosql:v1.38.1 in Docker (skips
|
|
|
295
368
|
npm run lint # eslint --fix
|
|
296
369
|
npm run typecheck
|
|
297
370
|
npm run build:mcpb # build/gizmosql-mcp-<version>.mcpb + .sha256
|
|
371
|
+
docker build -t gizmosql-mcp . # container image for the HTTP transport
|
|
372
|
+
helm lint charts/gizmosql-mcp # Helm chart
|
|
298
373
|
```
|
|
299
374
|
|
|
300
375
|
Run the server locally against a container:
|
|
@@ -315,11 +390,14 @@ The integration tests can target an existing server instead of Docker with
|
|
|
315
390
|
### Releasing
|
|
316
391
|
|
|
317
392
|
1. Move the `[Unreleased]` entries in `CHANGELOG.md` into a new `## [X.Y.Z] - YYYY-MM-DD`
|
|
318
|
-
section and set the same version in `package.json
|
|
393
|
+
section and set the same version in `package.json`, `manifest.json`, and
|
|
394
|
+
`charts/gizmosql-mcp/Chart.yaml` (`version` and `appVersion`).
|
|
319
395
|
2. Commit, tag `vX.Y.Z`, and push: `git push origin main vX.Y.Z`.
|
|
320
|
-
3. The release workflow runs the tests, builds the `.mcpb`,
|
|
321
|
-
|
|
322
|
-
|
|
396
|
+
3. The release workflow runs the tests, builds the `.mcpb`, pushes the container image
|
|
397
|
+
(`ghcr.io/gizmodata/gizmosql-mcp`) and the Helm chart (`ghcr.io/gizmodata/charts`),
|
|
398
|
+
creates a GitHub Release with the bundle, its checksum, the chart and the npm tarball
|
|
399
|
+
(release notes come from the CHANGELOG section), and publishes
|
|
400
|
+
`@gizmodata/gizmosql-mcp` to npm.
|
|
323
401
|
|
|
324
402
|
See [NOTES.md](NOTES.md) for implementation notes, known limitations and follow-ups.
|
|
325
403
|
|
package/dist/cli.js
CHANGED
|
@@ -46,6 +46,8 @@ function usage() {
|
|
|
46
46
|
" --help show this help",
|
|
47
47
|
"",
|
|
48
48
|
"Configuration is read from GIZMOSQL_* environment variables (see README).",
|
|
49
|
+
"HTTP transport authentication: GIZMOSQL_MCP_OAUTH_ISSUER (+ GIZMOSQL_MCP_PUBLIC_URL) for OAuth,",
|
|
50
|
+
"or GIZMOSQL_MCP_BEARER_TOKEN for a static token.",
|
|
49
51
|
].join("\n");
|
|
50
52
|
}
|
|
51
53
|
async function main() {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,6EAA6E;AAC7E,EAAE;AACF,yEAAyE;AACzE,uEAAuE;AACvE,oEAAoE;AAEpE,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,UAAU,GAA2B,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAE7F,SAAS,sBAAsB;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAAE,OAAO;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,gDAAgD;IACxF,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,0BAA0B,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,IAAI,SAAS,GAAa,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,SAAS,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3E,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,OAAO,CAAC,KAAK,CACX,qEAAqE,GAAG,KAAK;YAC3E,sBAAsB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI;YACxD,uFAAuF;YACvF,+CAA+C,CAClD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,GAAG,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,GAAG,CAAC;AACxC,CAAC;AAED,SAAS,KAAK;IACZ,OAAO;QACL,oEAAoE;QACpE,EAAE;QACF,kEAAkE;QAClE,8DAA8D;QAC9D,2EAA2E;QAC3E,+BAA+B;QAC/B,EAAE;QACF,2EAA2E;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/connection.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FlightSQLClient, type SqlParameters } from "@gizmodata/gizmosql-client";
|
|
2
2
|
import { Table } from "apache-arrow";
|
|
3
|
+
import type { OAuthConfig } from "./oauth.js";
|
|
3
4
|
export type AuthMethod = "password" | "none";
|
|
4
5
|
/** Settings for one GizmoSQL server. */
|
|
5
6
|
export interface ConnectionConfig {
|
|
@@ -33,6 +34,12 @@ export interface McpConfig {
|
|
|
33
34
|
queryTimeoutSeconds: number;
|
|
34
35
|
/** Bearer token required on every Streamable HTTP request (http transport only). */
|
|
35
36
|
mcpBearerToken?: string;
|
|
37
|
+
/** OAuth resource-server settings for the HTTP transport (set when GIZMOSQL_MCP_OAUTH_ISSUER is configured). */
|
|
38
|
+
mcpOAuth?: OAuthConfig;
|
|
39
|
+
/** HTTP transport with OAuth: seconds a per-user session may sit idle before its connections are closed. */
|
|
40
|
+
mcpSessionIdleSeconds: number;
|
|
41
|
+
/** HTTP transport with OAuth: cap on concurrent per-user sessions (least recently used is closed first). */
|
|
42
|
+
mcpMaxSessions: number;
|
|
36
43
|
/** Enables the optional `login_sso` tool (OAuth/SSO browser flow). */
|
|
37
44
|
enableSso: boolean;
|
|
38
45
|
}
|
|
@@ -43,6 +50,8 @@ export declare const DEFAULTS: {
|
|
|
43
50
|
readonly maxCellChars: 200;
|
|
44
51
|
readonly queryTimeoutSeconds: 60;
|
|
45
52
|
readonly connectionName: "default";
|
|
53
|
+
readonly sessionIdleSeconds: 1800;
|
|
54
|
+
readonly maxSessions: 200;
|
|
46
55
|
};
|
|
47
56
|
/** Extra connection slots the Claude Desktop manifest exposes (`GIZMOSQL_2_*`, `GIZMOSQL_3_*`). */
|
|
48
57
|
export declare const MANIFEST_SLOTS: readonly ["2", "3"];
|
|
@@ -71,6 +80,15 @@ export declare function envKey(key: string): string;
|
|
|
71
80
|
* Slots without a host are ignored. At least one connection is required.
|
|
72
81
|
*/
|
|
73
82
|
export declare function parseConfig(env?: NodeJS.ProcessEnv): McpConfig;
|
|
83
|
+
/** Default claim precedence used to name an authenticated caller. */
|
|
84
|
+
export declare const DEFAULT_USER_CLAIMS: readonly ["email", "preferred_username", "upn", "name", "sub"];
|
|
85
|
+
/**
|
|
86
|
+
* Reads the OAuth resource-server settings for the HTTP transport. Returns
|
|
87
|
+
* undefined unless GIZMOSQL_MCP_OAUTH_ISSUER is set. Plain http URLs are
|
|
88
|
+
* accepted for the issuer and public URL only when
|
|
89
|
+
* GIZMOSQL_MCP_OAUTH_ALLOW_INSECURE=true (local testing).
|
|
90
|
+
*/
|
|
91
|
+
export declare function parseOAuth(env: NodeJS.ProcessEnv): OAuthConfig | undefined;
|
|
74
92
|
export declare function authMethod(config: Pick<ConnectionConfig, "username" | "password">): AuthMethod;
|
|
75
93
|
/** Connection URI with the password never included. */
|
|
76
94
|
export declare function redactedUri(config: ConnectionConfig, overrideUser?: string): string;
|
package/dist/connection.js
CHANGED
|
@@ -9,6 +9,8 @@ export const DEFAULTS = {
|
|
|
9
9
|
maxCellChars: 200,
|
|
10
10
|
queryTimeoutSeconds: 60,
|
|
11
11
|
connectionName: "default",
|
|
12
|
+
sessionIdleSeconds: 1800,
|
|
13
|
+
maxSessions: 200,
|
|
12
14
|
};
|
|
13
15
|
/** Extra connection slots the Claude Desktop manifest exposes (`GIZMOSQL_2_*`, `GIZMOSQL_3_*`). */
|
|
14
16
|
export const MANIFEST_SLOTS = ["2", "3"];
|
|
@@ -146,6 +148,11 @@ export function parseConfig(env = process.env) {
|
|
|
146
148
|
}
|
|
147
149
|
seen.set(k, c.name);
|
|
148
150
|
}
|
|
151
|
+
const mcpBearerToken = nonEmpty(env.GIZMOSQL_MCP_BEARER_TOKEN);
|
|
152
|
+
const mcpOAuth = parseOAuth(env);
|
|
153
|
+
if (mcpBearerToken !== undefined && mcpOAuth !== undefined) {
|
|
154
|
+
throw new ConfigError("GIZMOSQL_MCP_BEARER_TOKEN and GIZMOSQL_MCP_OAUTH_ISSUER are mutually exclusive: pick one way to authenticate HTTP clients.");
|
|
155
|
+
}
|
|
149
156
|
return {
|
|
150
157
|
connections,
|
|
151
158
|
allowWrites: parseBoolean("GIZMOSQL_ALLOW_WRITES", env.GIZMOSQL_ALLOW_WRITES, false),
|
|
@@ -155,10 +162,81 @@ export function parseConfig(env = process.env) {
|
|
|
155
162
|
max: 100000,
|
|
156
163
|
}),
|
|
157
164
|
queryTimeoutSeconds,
|
|
158
|
-
mcpBearerToken
|
|
165
|
+
mcpBearerToken,
|
|
166
|
+
mcpOAuth,
|
|
167
|
+
mcpSessionIdleSeconds: parseInteger("GIZMOSQL_MCP_SESSION_IDLE_SECONDS", env.GIZMOSQL_MCP_SESSION_IDLE_SECONDS, DEFAULTS.sessionIdleSeconds, { min: 30, max: 86400 }),
|
|
168
|
+
mcpMaxSessions: parseInteger("GIZMOSQL_MCP_MAX_SESSIONS", env.GIZMOSQL_MCP_MAX_SESSIONS, DEFAULTS.maxSessions, {
|
|
169
|
+
min: 1,
|
|
170
|
+
max: 100000,
|
|
171
|
+
}),
|
|
159
172
|
enableSso,
|
|
160
173
|
};
|
|
161
174
|
}
|
|
175
|
+
/** Splits a comma- or whitespace-separated list, dropping blanks. */
|
|
176
|
+
function parseList(raw) {
|
|
177
|
+
const v = nonEmpty(raw);
|
|
178
|
+
if (v === undefined)
|
|
179
|
+
return [];
|
|
180
|
+
return v
|
|
181
|
+
.split(/[\s,]+/u)
|
|
182
|
+
.map((s) => s.trim())
|
|
183
|
+
.filter((s) => s !== "");
|
|
184
|
+
}
|
|
185
|
+
function parseHttpsUrl(name, raw, { allowHttp }) {
|
|
186
|
+
const v = nonEmpty(raw);
|
|
187
|
+
if (v === undefined)
|
|
188
|
+
return undefined;
|
|
189
|
+
let url;
|
|
190
|
+
try {
|
|
191
|
+
url = new URL(v);
|
|
192
|
+
}
|
|
193
|
+
catch {
|
|
194
|
+
throw new ConfigError(`${name} must be an absolute URL (got "${v}").`);
|
|
195
|
+
}
|
|
196
|
+
if (url.protocol !== "https:" && !(allowHttp && url.protocol === "http:")) {
|
|
197
|
+
throw new ConfigError(`${name} must use https (got "${v}").`);
|
|
198
|
+
}
|
|
199
|
+
if (url.hash)
|
|
200
|
+
throw new ConfigError(`${name} must not contain a fragment (got "${v}").`);
|
|
201
|
+
return v.replace(/\/+$/u, "");
|
|
202
|
+
}
|
|
203
|
+
/** Default claim precedence used to name an authenticated caller. */
|
|
204
|
+
export const DEFAULT_USER_CLAIMS = ["email", "preferred_username", "upn", "name", "sub"];
|
|
205
|
+
/**
|
|
206
|
+
* Reads the OAuth resource-server settings for the HTTP transport. Returns
|
|
207
|
+
* undefined unless GIZMOSQL_MCP_OAUTH_ISSUER is set. Plain http URLs are
|
|
208
|
+
* accepted for the issuer and public URL only when
|
|
209
|
+
* GIZMOSQL_MCP_OAUTH_ALLOW_INSECURE=true (local testing).
|
|
210
|
+
*/
|
|
211
|
+
export function parseOAuth(env) {
|
|
212
|
+
const allowHttp = parseBoolean("GIZMOSQL_MCP_OAUTH_ALLOW_INSECURE", env.GIZMOSQL_MCP_OAUTH_ALLOW_INSECURE, false);
|
|
213
|
+
const issuer = parseHttpsUrl("GIZMOSQL_MCP_OAUTH_ISSUER", env.GIZMOSQL_MCP_OAUTH_ISSUER, { allowHttp });
|
|
214
|
+
const publicUrl = parseHttpsUrl("GIZMOSQL_MCP_PUBLIC_URL", env.GIZMOSQL_MCP_PUBLIC_URL, { allowHttp });
|
|
215
|
+
if (issuer === undefined) {
|
|
216
|
+
for (const key of Object.keys(env)) {
|
|
217
|
+
if (key.startsWith("GIZMOSQL_MCP_OAUTH_") && key !== "GIZMOSQL_MCP_OAUTH_ALLOW_INSECURE" && !isUnset(env[key])) {
|
|
218
|
+
throw new ConfigError(`${key} is set but GIZMOSQL_MCP_OAUTH_ISSUER is not; the issuer enables OAuth.`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return undefined;
|
|
222
|
+
}
|
|
223
|
+
if (publicUrl === undefined) {
|
|
224
|
+
throw new ConfigError("GIZMOSQL_MCP_PUBLIC_URL is required with GIZMOSQL_MCP_OAUTH_ISSUER: the public URL of the /mcp endpoint " +
|
|
225
|
+
"(e.g. https://mcp.example.com/mcp) is the OAuth resource identifier clients request tokens for.");
|
|
226
|
+
}
|
|
227
|
+
const jwksUri = parseHttpsUrl("GIZMOSQL_MCP_OAUTH_JWKS_URI", env.GIZMOSQL_MCP_OAUTH_JWKS_URI, { allowHttp });
|
|
228
|
+
const audiences = parseList(env.GIZMOSQL_MCP_OAUTH_AUDIENCE);
|
|
229
|
+
const userClaims = parseList(env.GIZMOSQL_MCP_OAUTH_USER_CLAIM);
|
|
230
|
+
return {
|
|
231
|
+
publicUrl,
|
|
232
|
+
issuer,
|
|
233
|
+
audiences: audiences.length > 0 ? audiences : [publicUrl],
|
|
234
|
+
jwksUri,
|
|
235
|
+
scopes: parseList(env.GIZMOSQL_MCP_OAUTH_SCOPES),
|
|
236
|
+
userClaims: userClaims.length > 0 ? userClaims : [...DEFAULT_USER_CLAIMS],
|
|
237
|
+
authorizedEmails: parseList(env.GIZMOSQL_MCP_OAUTH_AUTHORIZED_EMAILS),
|
|
238
|
+
};
|
|
239
|
+
}
|
|
162
240
|
export function authMethod(config) {
|
|
163
241
|
if (config.username !== undefined)
|
|
164
242
|
return "password";
|
package/dist/connection.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,6DAA6D;AAE7D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAsB,MAAM,4BAA4B,CAAC;AACtG,OAAO,EAAE,KAAK,EAAoB,MAAM,cAAc,CAAC;AAyCvD,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,KAAK;IACX,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,GAAG;IACZ,YAAY,EAAE,GAAG;IACjB,mBAAmB,EAAE,EAAE;IACvB,cAAc,EAAE,SAAS;CACjB,CAAC;AAEX,mGAAmG;AACnG,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC;AAElD,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;AACxD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,gBAAgB,CAAC;AAE9C,0DAA0D;AAC1D,MAAM,UAAU,OAAO,CAAC,GAAuB;IAC7C,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,OAAO,CAAC,KAAK,EAAE,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,GAAuB,EAAE,QAAiB;IACnF,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClC,MAAM,CAAC,GAAG,GAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,6BAA6B,GAAG,KAAK,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,IAAY,EACZ,GAAuB,EACvB,QAAgB,EAChB,EAAE,GAAG,EAAE,GAAG,EAAiC;IAE3C,IAAI,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAClC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,KAAK,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,WAAW,GAAG,QAAQ,GAAG,EAAE,CAAC;QAC5E,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,uBAAuB,KAAK,UAAU,GAAG,KAAK,CAAC,CAAC;IAC/E,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,QAAQ,CAAC,GAAuB;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAI,CAAC,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,MAAM,CAAC,GAAW;IAChC,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CACtB,GAAsB,EACtB,MAAc,EACd,WAAmB,EACnB,OAA4D;IAE5D,MAAM,CAAC,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,KAAK,GAAG,GAAG,MAAM,MAAM,CAAC;IAC9B,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,WAAW,CAAC;IAChD,IAAI,CAAC,oCAAoC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,MAAM,IAAI,WAAW,CACnB,oBAAoB,IAAI,MAAM,MAAM,kEAAkE,CACvG,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC;IAEtF,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,CAAC,CAAC;IAC1F,IAAI,WAAW,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,WAAW,CAAC,eAAe,IAAI,MAAM,MAAM,gBAAgB,MAAM,gCAAgC,CAAC,CAAC;IAC/G,CAAC;IACD,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACvC,MAAM,IAAI,WAAW,CACnB,eAAe,IAAI,MAAM,KAAK,6BAA6B,MAAM,cAAc,MAAM,WAAW;YAC9F,qGAAqG;YACrG,qCAAqC,CACxC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI;QACJ,IAAI;QACJ,IAAI,EAAE,YAAY,CAAC,GAAG,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QACrF,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC5C,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC5C,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;QACpE,aAAa,EAAE,YAAY,CAAC,GAAG,MAAM,iBAAiB,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,KAAK,CAAC;QACpF,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;QAC3G,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC9C,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;QAC5C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;KACjD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,WAAW,CAAC,MAAyB,OAAO,CAAC,GAAG;IAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,qBAAqB,EAAE,GAAG,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;IACtF,MAAM,mBAAmB,GAAG,YAAY,CACtC,gCAAgC,EAChC,GAAG,CAAC,8BAA8B,EAClC,QAAQ,CAAC,mBAAmB,EAC5B,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CACvB,CAAC;IACF,MAAM,OAAO,GAAG,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC;IAEnD,MAAM,WAAW,GAAuB,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,eAAe,CAC7B,GAAG,EACH,WAAW,EACX,QAAQ,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,QAAQ,CAAC,cAAc,EACjE,OAAO,CACR,CAAC;IACF,IAAI,OAAO;QAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,SAAS,GAAgD,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC3F,GAAG,EAAE,IAAI;QACT,WAAW,EAAE,SAAS,IAAI,EAAE;KAC7B,CAAC,CAAC,CAAC;IACJ,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,GAAG;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,KAAK,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,SAAS,EAAE,CAAC;QAC7C,MAAM,CAAC,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACzE,IAAI,CAAC;YAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,WAAW,CAAC,oEAAoE,CAAC,CAAC;IAC9F,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC;IACvC,KAAK,MAAM,CAAC,IAAI,WAAW,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,WAAW,CAAC,oBAAoB,CAAC,CAAC,IAAI,wDAAwD,CAAC,CAAC;QAC5G,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IAED,OAAO;QACL,WAAW;QACX,WAAW,EAAE,YAAY,CAAC,uBAAuB,EAAE,GAAG,CAAC,qBAAqB,EAAE,KAAK,CAAC;QACpF,OAAO,EAAE,YAAY,CAAC,mBAAmB,EAAE,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QAC5G,YAAY,EAAE,YAAY,CAAC,yBAAyB,EAAE,GAAG,CAAC,uBAAuB,EAAE,QAAQ,CAAC,YAAY,EAAE;YACxG,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,MAAM;SACZ,CAAC;QACF,mBAAmB;QACnB,cAAc,EAAE,QAAQ,CAAC,GAAG,CAAC,yBAAyB,CAAC;QACvD,SAAS;KACV,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAuD;IAChF,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,UAAU,CAAC;IACrD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,WAAW,CAAC,MAAwB,EAAE,YAAqB;IACzE,MAAM,IAAI,GAAG,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,OAAO,cAAc,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC;AACvE,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAkC;IAC5E,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACtC,IAAI,OAAO,KAAK,CAAC;YAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAC1C,YAAY,OAAe;QACzB,KAAK,CACH,sBAAsB,OAAO,+DAA+D,CAC7F,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AAED,iFAAiF;AACjF,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,kGAAkG;AAClG,MAAM,mBAAmB,GAAG,KAAK,CAAC;AASlC,MAAM,eAAe,GAAG,sNAAsN,CAAC;AAE/O,iFAAiF;AACjF,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,MAAM,IAAI,GAAI,GAAyB,EAAE,IAAI,IAAI,EAAE,CAAC;IACpD,IAAI,IAAI,KAAK,iBAAiB,IAAI,IAAI,KAAK,qBAAqB;QAAE,OAAO,IAAI,KAAK,iBAAiB,CAAC;IACpG,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAcD,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC;AACzC,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,IAAI,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,IAAI,IAAI,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAOD;;;;;;;GAOG;AACH,MAAM,OAAO,eAAe;IAWf;IACQ;IAXX,MAAM,GAA2B,IAAI,CAAC;IACtC,UAAU,GAAoC,IAAI,CAAC;IACnD,KAAK,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;IAC5C,SAAS,GAAqB,EAAE,CAAC;IACjC,QAAQ,GAAa,EAAE,CAAC;IACxB,UAAU,CAAa;IAC/B,2EAA2E;IAC3E,WAAW,GAAgB,IAAI,CAAC;IAEhC,YACW,MAAwB,EAChB,MAAiC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QADhE,WAAM,GAAN,MAAM,CAAkB;QAChB,QAAG,GAAH,GAAG,CAAqD;QAEzE,IAAI,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;IACrF,CAAC;IAED,wDAAwD;IACxD,iBAAiB;QACf,OAAO,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAChC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,IAAgB;QAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAC7E,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,oEAAoE;IACpE,OAAO;QACL,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,OAAO,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,gEAAgE;IAChE,aAAa;QACX,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC/D,CAAC;QACD,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IACpF,CAAC;IAED,mFAAmF;IACnF,eAAe;QACb,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,uEAAuE;IACvE,KAAK,CAAC,cAAc,CAAC,SAA2B;QAC9C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAEO,YAAY;QAClB,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;YACxC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;SACjC,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACjG,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC3F,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yDAAyD;IACjD,KAAK,CAAC,IAAI;QAChB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,aAAa,CACxB,gCAAgC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAClE,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,8FAA8F;oBAC5F,kDAAkD,GAAG,EAAE,CAC1D,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1E,IAAI,SAAS,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC;oBACH,SAAS,GAAG,wBAAwB,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjF,CAAC;gBAAC,MAAM,CAAC;oBACP,cAAc;gBAChB,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAChB,gDAAgD,GAAG,4CAA4C,SAAS,IAAI,GAAG,EAAE,CAClH,CAAC;gBACF,IAAI,CAAC,GAAG,CAAC,2BAA2B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0DAA0D;IAC1D,KAAK,CAAC,GAAG;QACP,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE;iBAC1B,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACV,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,OAAO,CAAC,CAAC;YACX,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,KAAK;QACT,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CACP,EAA4E,EAC5E,UAAsB,EAAE;QAExB,MAAM,IAAI,GAAG,KAAK,IAAgB,EAAE;YAClC,IAAI,OAAO,GAAG,CAAC,CAAC;YAChB,SAAS,CAAC;gBACR,OAAO,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;gBACzF,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,IAAI,GAAG,YAAY,iBAAiB,EAAE,CAAC;wBACrC,MAAM,GAAG,CAAC;oBACZ,CAAC;oBACD,IAAI,OAAO,GAAG,CAAC,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1C,IAAI,CAAC,GAAG,CACN,kDAAkD,IAAI,CAAC,MAAM,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAClH,CAAC;wBACF,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;wBACnB,SAAS;oBACX,CAAC;oBACD,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,EAAmD,EACnD,cAAuB;QAEvB,MAAM,OAAO,GAAG,cAAc,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC;QAClE,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;QACnD,iEAAiE;QACjE,uDAAuD;QACvD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,UAAsC,CAAC;QAC3C,IAAI,UAAsC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;YACjD,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3B,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC/B,gEAAgE;gBAChE,6DAA6D;gBAC7D,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC3B,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBACxD,CAAC,EAAE,mBAAmB,CAAC,CAAC;YAC1B,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,wBAAwB,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,UAAU,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,GAAG,YAAY,mBAAmB,IAAI,GAAG,KAAK,YAAY,CAAC,EAAE,CAAC;gBAC9F,MAAM,YAAY,CAAC;YACrB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,IAAI,UAAU;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,UAAU;gBAAE,YAAY,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,GAAW,EAAE,MAAsB,EAAE,OAAoB;QAC7D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED;;;OAGG;IACH,WAAW,CACT,GAAW,EACX,MAAiC,EACjC,OAAe,EACf,OAAoB;QAEpB,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAkB,EAAE,CAAC;YAClC,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC;gBACtB,IAAI,IAAI,GAAG,OAAO;oBAAE,MAAM,CAAC,sBAAsB;YACnD,CAAC;YACD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChD,OAAO,EAAE,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,EAAE,CAAC;QAChG,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,yEAAyE;IACzE,MAAM,CAAC,GAAW,EAAE,MAAsB,EAAE,OAAoB;QAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACpF,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../src/connection.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth.d.ts
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { type JWTPayload, type JWTVerifyGetKey } from "jose";
|
|
2
|
+
export interface OAuthConfig {
|
|
3
|
+
/** Canonical public URL of the MCP endpoint, e.g. https://mcp.example.com/mcp. */
|
|
4
|
+
publicUrl: string;
|
|
5
|
+
/** Issuer URL of the OpenID Connect provider (the `iss` claim). */
|
|
6
|
+
issuer: string;
|
|
7
|
+
/** Accepted `aud` values; a token must carry at least one of them. */
|
|
8
|
+
audiences: string[];
|
|
9
|
+
/** JWKS endpoint; discovered from the issuer when unset. */
|
|
10
|
+
jwksUri?: string;
|
|
11
|
+
/** Scopes advertised to clients (`scopes_supported`) and requested on a 401. */
|
|
12
|
+
scopes: string[];
|
|
13
|
+
/** Claims tried in order to name the caller (first non-empty string wins). */
|
|
14
|
+
userClaims: string[];
|
|
15
|
+
/** Glob patterns (`*@example.com`, `alice@example.com`); empty = everyone the provider signs in. */
|
|
16
|
+
authorizedEmails: string[];
|
|
17
|
+
}
|
|
18
|
+
/** Identity derived from a verified access token. */
|
|
19
|
+
export interface AuthenticatedUser {
|
|
20
|
+
/** The `sub` claim. */
|
|
21
|
+
subject: string;
|
|
22
|
+
/** Display name: the first configured user claim that is present. */
|
|
23
|
+
name: string;
|
|
24
|
+
/** Email-like address if any of `email`, `preferred_username` or `upn` looks like one. */
|
|
25
|
+
email?: string;
|
|
26
|
+
claims: JWTPayload;
|
|
27
|
+
}
|
|
28
|
+
export type AuthFailureCode = "invalid_token" | "forbidden";
|
|
29
|
+
export declare class OAuthError extends Error {
|
|
30
|
+
readonly code: AuthFailureCode;
|
|
31
|
+
constructor(code: AuthFailureCode, message: string);
|
|
32
|
+
/** HTTP status the transport should answer with. */
|
|
33
|
+
get status(): 401 | 403;
|
|
34
|
+
}
|
|
35
|
+
/** Asymmetric algorithms only: a symmetric alg would let the JWKS-hosted public key act as a secret. */
|
|
36
|
+
export declare const ALLOWED_ALGORITHMS: string[];
|
|
37
|
+
/** Tolerated clock skew between the provider and this host, in seconds. */
|
|
38
|
+
export declare const CLOCK_TOLERANCE_SECONDS = 60;
|
|
39
|
+
/** Well-known path of the protected-resource metadata, without and with the endpoint path (RFC 9728 §3.1). */
|
|
40
|
+
export declare function protectedResourceMetadataPaths(publicUrl: string): string[];
|
|
41
|
+
/** URL of the protected-resource metadata document (the path-suffixed form, which clients try first). */
|
|
42
|
+
export declare function protectedResourceMetadataUrl(publicUrl: string): string;
|
|
43
|
+
/** Candidate discovery documents for an issuer: OpenID Connect first, then RFC 8414 (both path placements). */
|
|
44
|
+
export declare function discoveryUrls(issuer: string): string[];
|
|
45
|
+
/** Case-insensitive glob match where `*` matches any run of characters. */
|
|
46
|
+
export declare function emailMatches(email: string, pattern: string): boolean;
|
|
47
|
+
/** Builds the identity for a verified token payload. */
|
|
48
|
+
export declare function userFromClaims(claims: JWTPayload, userClaims: string[]): AuthenticatedUser;
|
|
49
|
+
export interface VerifierOptions {
|
|
50
|
+
/** Test hook: replaces global fetch for discovery. */
|
|
51
|
+
fetch?: typeof fetch;
|
|
52
|
+
/** Test hook: replaces the remote JWKS key resolver. */
|
|
53
|
+
getKey?: JWTVerifyGetKey;
|
|
54
|
+
log?: (message: string) => void;
|
|
55
|
+
}
|
|
56
|
+
/** Verifies bearer tokens against one OpenID Connect provider. */
|
|
57
|
+
export declare class OAuthVerifier {
|
|
58
|
+
readonly config: OAuthConfig;
|
|
59
|
+
private keyResolver;
|
|
60
|
+
private discovering;
|
|
61
|
+
private readonly fetchImpl;
|
|
62
|
+
private readonly log;
|
|
63
|
+
constructor(config: OAuthConfig, options?: VerifierOptions);
|
|
64
|
+
/** RFC 9728 protected-resource metadata document. */
|
|
65
|
+
protectedResourceMetadata(): Record<string, unknown>;
|
|
66
|
+
/** `WWW-Authenticate` value for a 401 (RFC 6750 §3 + RFC 9728 §5.1). */
|
|
67
|
+
challenge(error?: AuthFailureCode, description?: string): string;
|
|
68
|
+
/**
|
|
69
|
+
* Validates a bearer token and returns the caller. Throws OAuthError with
|
|
70
|
+
* code `invalid_token` (401) for a missing, malformed, expired or
|
|
71
|
+
* mis-issued token and `forbidden` (403) when the caller is not on the
|
|
72
|
+
* email allowlist.
|
|
73
|
+
*/
|
|
74
|
+
verify(authorization: string | undefined): Promise<AuthenticatedUser>;
|
|
75
|
+
private resolveKeys;
|
|
76
|
+
/** Returns the JWKS URI: configured, or read from the provider's discovery document. */
|
|
77
|
+
private discoverJwks;
|
|
78
|
+
}
|