@noodleseed/one 0.76.1 → 0.77.1
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/dist/commands/auth-live-doctor.d.ts +11 -0
- package/dist/commands/auth-live-doctor.d.ts.map +1 -0
- package/dist/commands/auth-live-doctor.js +97 -0
- package/dist/commands/auth-live-doctor.js.map +1 -0
- package/dist/commands/auth-metadata-readiness.d.ts +4 -1
- package/dist/commands/auth-metadata-readiness.d.ts.map +1 -1
- package/dist/commands/auth-metadata-readiness.js +234 -120
- package/dist/commands/auth-metadata-readiness.js.map +1 -1
- package/dist/commands/auth-ops.d.ts +16 -0
- package/dist/commands/auth-ops.d.ts.map +1 -1
- package/dist/commands/auth-ops.js +74 -109
- package/dist/commands/auth-ops.js.map +1 -1
- package/dist/commands/catalog-data-auth-discovery.d.ts.map +1 -1
- package/dist/commands/catalog-data-auth-discovery.js +1 -9
- package/dist/commands/catalog-data-auth-discovery.js.map +1 -1
- package/dist/commands/deploy-auth-readiness.d.ts +4 -0
- package/dist/commands/deploy-auth-readiness.d.ts.map +1 -0
- package/dist/commands/deploy-auth-readiness.js +41 -0
- package/dist/commands/deploy-auth-readiness.js.map +1 -0
- package/dist/commands/deploy-ops.d.ts +1 -6
- package/dist/commands/deploy-ops.d.ts.map +1 -1
- package/dist/commands/deploy-ops.js +14 -17
- package/dist/commands/deploy-ops.js.map +1 -1
- package/dist/commands/deploy-target.d.ts +2 -0
- package/dist/commands/deploy-target.d.ts.map +1 -1
- package/dist/commands/deploy-target.js +10 -0
- package/dist/commands/deploy-target.js.map +1 -1
- package/dist/deploy.d.ts +8 -1
- package/dist/deploy.d.ts.map +1 -1
- package/dist/deploy.js +20 -0
- package/dist/deploy.js.map +1 -1
- package/dist/project.d.ts +3 -1
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +13 -1
- package/dist/project.js.map +1 -1
- package/dist/saas-scaffold-template.d.ts.map +1 -1
- package/dist/saas-scaffold-template.js +20 -2
- package/dist/saas-scaffold-template.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +7 -0
- package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js +1 -1
- package/node_modules/@noodle-borg/agent-kit/dist/skill-content.js.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.d.ts +8 -2
- package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
- package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/customer-verifier.js +6 -6
- package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/data-plane-membership.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/data-plane-membership.js +7 -2
- package/node_modules/@noodle-borg/service/dist/data-plane-membership.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts +12 -0
- package/node_modules/@noodle-borg/service/dist/registry-helpers.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-helpers.js +26 -0
- package/node_modules/@noodle-borg/service/dist/registry-helpers.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-targets.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-targets.js +3 -0
- package/node_modules/@noodle-borg/service/dist/registry-targets.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts +2 -1
- package/node_modules/@noodle-borg/service/dist/registry-types.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/registry.js +10 -1
- package/node_modules/@noodle-borg/service/dist/registry.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js +4 -0
- package/node_modules/@noodle-borg/service/dist/routes/control-plane.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js +5 -3
- package/node_modules/@noodle-borg/service/dist/store/postgres-deploy-records.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js +18 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-rows.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js +1 -0
- package/node_modules/@noodle-borg/service/dist/store/postgres-schema.js.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.d.ts +6 -0
- package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
- package/node_modules/@noodle-borg/service/dist/store.js.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.d.ts.map +1 -1
- package/node_modules/@noodle-borg/transport-http/dist/handler.js +4 -4
- package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts +14 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/index.d.ts.map +1 -1
- package/node_modules/@noodle-borg/wire-contracts/dist/index.js +7 -0
- package/node_modules/@noodle-borg/wire-contracts/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ConfigLocation } from '../config.js';
|
|
2
|
+
import type { AuthDoctorCheck } from './auth-metadata-readiness.js';
|
|
3
|
+
interface LiveAuthDoctorArgs {
|
|
4
|
+
readonly org?: string;
|
|
5
|
+
readonly app?: string;
|
|
6
|
+
readonly targetEnv?: string;
|
|
7
|
+
readonly service?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function liveAuthDoctorChecks(args: LiveAuthDoctorArgs, env: NodeJS.ProcessEnv, home: ConfigLocation): Promise<AuthDoctorCheck[]>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=auth-live-doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-live-doctor.d.ts","sourceRoot":"","sources":["../../src/commands/auth-live-doctor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAgBD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,eAAe,EAAE,CAAC,CA8F5B"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { readConfig, resolveServiceUrl } from '../config.js';
|
|
2
|
+
import { DEFAULT_SERVICE_URL } from '../deploy.js';
|
|
3
|
+
import { currentCliVersion } from '../update.js';
|
|
4
|
+
import { resolveTenantTarget } from './shared.js';
|
|
5
|
+
export async function liveAuthDoctorChecks(args, env, home) {
|
|
6
|
+
const target = resolveTenantTarget(args, home);
|
|
7
|
+
if (!target.ok) {
|
|
8
|
+
return [
|
|
9
|
+
{
|
|
10
|
+
code: 'live_target',
|
|
11
|
+
level: 'FAIL',
|
|
12
|
+
name: 'Live exchange',
|
|
13
|
+
message: target.error.message,
|
|
14
|
+
fix: target.error.fix,
|
|
15
|
+
},
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
const token = env.NOODLE_CUSTOMER_TOKEN;
|
|
19
|
+
if (!token) {
|
|
20
|
+
return [
|
|
21
|
+
{
|
|
22
|
+
code: 'live_customer_token',
|
|
23
|
+
level: 'FAIL',
|
|
24
|
+
name: 'Live customer token',
|
|
25
|
+
message: 'NOODLE_CUSTOMER_TOKEN is not set',
|
|
26
|
+
fix: 'Set NOODLE_CUSTOMER_TOKEN to a short-lived bearer token for a real customer caller.',
|
|
27
|
+
},
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
const service = target.serviceUrl ??
|
|
31
|
+
resolveServiceUrl(args.service, env, readConfig(home)) ??
|
|
32
|
+
DEFAULT_SERVICE_URL;
|
|
33
|
+
const url = `${service.replace(/\/+$/, '')}/v1/orgs/${encodeURIComponent(target.org)}` +
|
|
34
|
+
`/apps/${encodeURIComponent(target.app)}/envs/${encodeURIComponent(target.env)}/auth/doctor`;
|
|
35
|
+
let response;
|
|
36
|
+
try {
|
|
37
|
+
response = await fetch(url, {
|
|
38
|
+
method: 'POST',
|
|
39
|
+
headers: {
|
|
40
|
+
authorization: `Bearer ${token}`,
|
|
41
|
+
accept: 'application/json',
|
|
42
|
+
'x-noodle-cli-version': currentCliVersion(),
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
return [
|
|
48
|
+
{
|
|
49
|
+
code: 'live_exchange',
|
|
50
|
+
level: 'FAIL',
|
|
51
|
+
name: 'Live exchange',
|
|
52
|
+
message: error instanceof Error ? error.message : String(error),
|
|
53
|
+
fix: 'Check the service URL and network connection.',
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
}
|
|
57
|
+
const body = (await response.json().catch(() => ({})));
|
|
58
|
+
if (!response.ok) {
|
|
59
|
+
return [
|
|
60
|
+
{
|
|
61
|
+
code: 'live_exchange',
|
|
62
|
+
level: 'FAIL',
|
|
63
|
+
name: 'Live exchange',
|
|
64
|
+
message: body.error ?? `HTTP ${response.status}`,
|
|
65
|
+
fix: response.status === 401
|
|
66
|
+
? 'Mint a fresh customer token for the deployed MCP audience.'
|
|
67
|
+
: 'Check the deployed customer auth and delegated connector configuration.',
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
}
|
|
71
|
+
const checks = (body.checks ?? []).map((check) => ({
|
|
72
|
+
code: 'live_delegated_exchange',
|
|
73
|
+
level: check.ok ? 'PASS' : 'FAIL',
|
|
74
|
+
name: `Live ${check.authKind ?? 'delegated credential'}`,
|
|
75
|
+
message: [check.connectorId, check.operation].filter(Boolean).join('.') +
|
|
76
|
+
(check.reason ? `: ${check.reason}` : ''),
|
|
77
|
+
...(check.fix ? { fix: check.fix } : {}),
|
|
78
|
+
}));
|
|
79
|
+
if (checks.length === 0) {
|
|
80
|
+
checks.push({
|
|
81
|
+
code: 'live_exchange',
|
|
82
|
+
level: 'PASS',
|
|
83
|
+
name: 'Live exchange',
|
|
84
|
+
message: 'customer identity verified; no delegated connector bindings are configured',
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
if (body.audience) {
|
|
88
|
+
checks.unshift({
|
|
89
|
+
code: 'live_customer_audience',
|
|
90
|
+
level: 'PASS',
|
|
91
|
+
name: 'Live customer audience',
|
|
92
|
+
message: body.audience,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return checks;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=auth-live-doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-live-doctor.js","sourceRoot":"","sources":["../../src/commands/auth-live-doctor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
export interface AuthDoctorCheck {
|
|
2
|
+
readonly code: string;
|
|
2
3
|
readonly level: 'PASS' | 'WARN' | 'FAIL';
|
|
3
4
|
readonly name: string;
|
|
5
|
+
readonly issuer?: string;
|
|
4
6
|
readonly message: string;
|
|
5
7
|
readonly fix?: string;
|
|
6
8
|
}
|
|
7
|
-
export declare function oidcMetadataChecks(issuer: string
|
|
9
|
+
export declare function oidcMetadataChecks(issuer: string): Promise<AuthDoctorCheck[]>;
|
|
10
|
+
export declare function authDiagnosticUrl(value: string): string;
|
|
8
11
|
//# sourceMappingURL=auth-metadata-readiness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-metadata-readiness.d.ts","sourceRoot":"","sources":["../../src/commands/auth-metadata-readiness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"auth-metadata-readiness.d.ts","sourceRoot":"","sources":["../../src/commands/auth-metadata-readiness.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiHnF;AAyTD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD"}
|
|
@@ -1,164 +1,278 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
candidate = primary;
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
try {
|
|
17
|
-
const discovered = await discoverIssuerMetadata(issuer, loadMetadata);
|
|
18
|
-
metadata = discovered.metadata;
|
|
19
|
-
candidate = discovered;
|
|
20
|
-
}
|
|
21
|
-
catch (error) {
|
|
22
|
-
return [metadataFailure(error instanceof Error ? error.message : String(error))];
|
|
23
|
-
}
|
|
24
|
-
}
|
|
1
|
+
import { issuerMetadataCandidates } from '@noodle-borg/auth';
|
|
2
|
+
const MAX_JSON_BYTES = 256 * 1024;
|
|
3
|
+
const FETCH_TIMEOUT_MS = 5_000;
|
|
4
|
+
export async function oidcMetadataChecks(issuer) {
|
|
5
|
+
const primary = issuerMetadataCandidates(issuer)[0];
|
|
6
|
+
if (primary === undefined)
|
|
7
|
+
return [metadataFailure(issuer, 'no issuer metadata candidate')];
|
|
8
|
+
const loaded = await loadStrictHostMetadata(primary, issuer);
|
|
9
|
+
if (!loaded.ok)
|
|
10
|
+
return [loaded.check];
|
|
11
|
+
const metadata = loaded.metadata;
|
|
12
|
+
const issuerMatches = metadata.issuer === issuer;
|
|
25
13
|
const checks = [
|
|
26
|
-
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
14
|
+
pass('oauth_metadata_discovery', 'MCP host discovery', issuer, `RFC 8414 authorization-server metadata (${safeUrl(primary.url)})`),
|
|
15
|
+
issuerMatches
|
|
16
|
+
? pass('oauth_issuer_match', 'Issuer metadata', issuer, 'issuer matches exactly')
|
|
17
|
+
: fail('oauth_issuer_match', 'Issuer metadata', issuer, 'configured issuer and metadata issuer do not match exactly', 'Publish the exact configured issuer value in the RFC 8414 metadata response.'),
|
|
18
|
+
endpointCheck(metadata, 'authorization_endpoint', 'oauth_authorization_endpoint', 'Authorization endpoint', issuer, 'Publish an HTTPS authorization_endpoint in RFC 8414 metadata.'),
|
|
19
|
+
endpointCheck(metadata, 'token_endpoint', 'oauth_token_endpoint', 'Token endpoint', issuer, 'Publish an HTTPS token_endpoint in RFC 8414 metadata.'),
|
|
20
|
+
endpointCheck(metadata, 'registration_endpoint', 'oauth_registration_endpoint', 'Dynamic client registration', issuer, 'Publish an HTTPS RFC 7591 registration_endpoint so remote MCP clients can register a public OAuth client.'),
|
|
21
|
+
supportedValueCheck(metadata, 'response_types_supported', 'code', 'oauth_response_type_code', 'Authorization code flow', issuer, 'Advertise "code" in response_types_supported.'),
|
|
22
|
+
supportedValueCheck(metadata, 'grant_types_supported', 'authorization_code', 'oauth_authorization_code', 'Authorization code grant', issuer, 'Advertise "authorization_code" in grant_types_supported.'),
|
|
23
|
+
supportedValueCheck(metadata, 'grant_types_supported', 'refresh_token', 'oauth_refresh_token', 'Refresh token grant', issuer, 'Advertise and implement "refresh_token" in grant_types_supported.'),
|
|
24
|
+
supportedValueCheck(metadata, 'code_challenge_methods_supported', 'S256', 'oauth_pkce_s256', 'PKCE', issuer, 'Advertise and require "S256" in code_challenge_methods_supported.'),
|
|
25
|
+
supportedValueCheck(metadata, 'token_endpoint_auth_methods_supported', 'none', 'oauth_public_client', 'Public OAuth clients', issuer, 'Advertise and accept "none" in token_endpoint_auth_methods_supported for PKCE public clients.'),
|
|
31
26
|
];
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
: undefined;
|
|
37
|
-
checks.push(registrationEndpoint === undefined
|
|
38
|
-
? {
|
|
39
|
-
level: 'FAIL',
|
|
40
|
-
name: 'Dynamic client registration',
|
|
41
|
-
message: 'missing registration_endpoint',
|
|
42
|
-
fix: 'Publish an RFC 7591 registration_endpoint so generic MCP hosts such as ChatGPT and Claude can create an OAuth client.',
|
|
43
|
-
}
|
|
44
|
-
: {
|
|
45
|
-
level: 'PASS',
|
|
46
|
-
name: 'Dynamic client registration',
|
|
47
|
-
message: registrationEndpoint,
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
const jwksUri = typeof metadata.jwks_uri === 'string' ? metadata.jwks_uri : undefined;
|
|
27
|
+
// Do not follow a JWKS URL supplied by metadata that does not belong to the configured issuer.
|
|
28
|
+
if (!issuerMatches)
|
|
29
|
+
return checks;
|
|
30
|
+
const jwksUri = httpsEndpoint(metadata.jwks_uri);
|
|
51
31
|
if (jwksUri === undefined) {
|
|
52
|
-
checks.push(
|
|
53
|
-
level: 'FAIL',
|
|
54
|
-
name: 'JWKS',
|
|
55
|
-
message: 'missing jwks_uri',
|
|
56
|
-
fix: 'Publish a public JWKS URI in issuer metadata.',
|
|
57
|
-
});
|
|
32
|
+
checks.push(fail('oauth_jwks', 'JWKS', issuer, 'missing or invalid HTTPS jwks_uri', 'Publish an HTTPS jwks_uri and a public JSON Web Key Set in issuer metadata.'));
|
|
58
33
|
return checks;
|
|
59
34
|
}
|
|
60
|
-
|
|
61
|
-
const response = await fetch(jwksUri, {
|
|
62
|
-
headers: { accept: 'application/json' },
|
|
63
|
-
redirect: 'manual',
|
|
64
|
-
});
|
|
65
|
-
checks.push(response.ok
|
|
66
|
-
? { level: 'PASS', name: 'JWKS', message: jwksUri }
|
|
67
|
-
: {
|
|
68
|
-
level: 'FAIL',
|
|
69
|
-
name: 'JWKS',
|
|
70
|
-
message: `HTTP ${response.status}`,
|
|
71
|
-
fix: 'Make the JWKS endpoint publicly reachable.',
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
catch (error) {
|
|
75
|
-
checks.push({
|
|
76
|
-
level: 'FAIL',
|
|
77
|
-
name: 'JWKS',
|
|
78
|
-
message: error instanceof Error ? error.message : String(error),
|
|
79
|
-
fix: 'Make the JWKS endpoint publicly reachable.',
|
|
80
|
-
});
|
|
81
|
-
}
|
|
35
|
+
checks.push(await jwksCheck(jwksUri, issuer));
|
|
82
36
|
return checks;
|
|
83
37
|
}
|
|
84
|
-
async function loadMetadata(url) {
|
|
85
|
-
const response = await fetch(url, {
|
|
86
|
-
headers: { accept: 'application/json' },
|
|
87
|
-
redirect: 'manual',
|
|
88
|
-
});
|
|
89
|
-
if (!response.ok)
|
|
90
|
-
throw new Error(`${url}: HTTP ${response.status}`);
|
|
91
|
-
const metadata = (await response.json());
|
|
92
|
-
if (typeof metadata !== 'object' || metadata === null || Array.isArray(metadata)) {
|
|
93
|
-
throw new Error(`${url}: metadata must be a JSON object`);
|
|
94
|
-
}
|
|
95
|
-
return metadata;
|
|
96
|
-
}
|
|
97
38
|
async function loadStrictHostMetadata(candidate, issuer) {
|
|
98
39
|
let response;
|
|
99
40
|
try {
|
|
100
|
-
response = await fetch(candidate.url,
|
|
101
|
-
headers: { accept: 'application/json' },
|
|
102
|
-
redirect: 'manual',
|
|
103
|
-
});
|
|
41
|
+
response = await fetch(candidate.url, requestInit());
|
|
104
42
|
}
|
|
105
43
|
catch (error) {
|
|
106
44
|
return {
|
|
107
45
|
ok: false,
|
|
108
|
-
check: hostFailure(candidate.url, error
|
|
46
|
+
check: hostFailure(issuer, candidate.url, safeErrorMessage(error, 'metadata request failed')),
|
|
109
47
|
};
|
|
110
48
|
}
|
|
111
49
|
if (response.status !== 200) {
|
|
112
50
|
const location = safeRedirectLocation(response.headers.get('location'), candidate.url);
|
|
51
|
+
await cancelResponseBody(response);
|
|
113
52
|
return {
|
|
114
53
|
ok: false,
|
|
115
|
-
check: hostFailure(candidate.url, `HTTP ${response.status}${location === undefined ? '' : ` → ${location}`}`),
|
|
54
|
+
check: hostFailure(issuer, candidate.url, `HTTP ${response.status}${location === undefined ? '' : ` → ${location}`}`),
|
|
116
55
|
};
|
|
117
56
|
}
|
|
118
|
-
|
|
57
|
+
const parsed = await readJsonObject(response);
|
|
58
|
+
if (!parsed.ok) {
|
|
59
|
+
return { ok: false, check: hostFailure(issuer, candidate.url, parsed.reason) };
|
|
60
|
+
}
|
|
61
|
+
return { ok: true, metadata: parsed.value };
|
|
62
|
+
}
|
|
63
|
+
async function jwksCheck(jwksUri, issuer) {
|
|
64
|
+
let response;
|
|
65
|
+
try {
|
|
66
|
+
response = await fetch(jwksUri, requestInit());
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
return fail('oauth_jwks', 'JWKS', issuer, safeErrorMessage(error, 'JWKS request failed'), 'Make the public JWKS endpoint directly reachable as HTTP 200 JSON.');
|
|
70
|
+
}
|
|
71
|
+
if (response.status !== 200) {
|
|
72
|
+
await cancelResponseBody(response);
|
|
73
|
+
return fail('oauth_jwks', 'JWKS', issuer, `${safeUrl(jwksUri)}: HTTP ${response.status}`, 'Make the public JWKS endpoint directly reachable as HTTP 200 JSON.');
|
|
74
|
+
}
|
|
75
|
+
const parsed = await readJsonObject(response);
|
|
76
|
+
if (!parsed.ok) {
|
|
77
|
+
return fail('oauth_jwks', 'JWKS', issuer, `${safeUrl(jwksUri)}: ${parsed.reason}`, 'Return a bounded JSON Web Key Set with at least one public signing key.');
|
|
78
|
+
}
|
|
79
|
+
const keys = Array.isArray(parsed.value.keys) ? parsed.value.keys : [];
|
|
80
|
+
const publicKeys = keys.filter(isPublicJwk);
|
|
81
|
+
if (publicKeys.length === 0) {
|
|
82
|
+
return fail('oauth_jwks', 'JWKS', issuer, `${safeUrl(jwksUri)}: no valid public signing keys`, 'Publish at least one public RSA, EC, or OKP signing key; never publish private key material.');
|
|
83
|
+
}
|
|
84
|
+
return pass('oauth_jwks', 'JWKS', issuer, `${safeUrl(jwksUri)} (${publicKeys.length} public signing key${publicKeys.length === 1 ? '' : 's'})`);
|
|
85
|
+
}
|
|
86
|
+
function endpointCheck(metadata, field, code, name, issuer, fix) {
|
|
87
|
+
const endpoint = httpsEndpoint(metadata[field]);
|
|
88
|
+
return endpoint === undefined
|
|
89
|
+
? fail(code, name, issuer, `missing or invalid HTTPS ${field}`, fix)
|
|
90
|
+
: pass(code, name, issuer, safeUrl(endpoint));
|
|
91
|
+
}
|
|
92
|
+
function supportedValueCheck(metadata, field, required, code, name, issuer, fix) {
|
|
93
|
+
const values = Array.isArray(metadata[field])
|
|
94
|
+
? metadata[field].filter((value) => typeof value === 'string')
|
|
95
|
+
: [];
|
|
96
|
+
return values.includes(required)
|
|
97
|
+
? pass(code, name, issuer, `${field} includes "${required}"`)
|
|
98
|
+
: fail(code, name, issuer, `${field} does not include "${required}"`, fix);
|
|
99
|
+
}
|
|
100
|
+
async function readJsonObject(response) {
|
|
101
|
+
const contentLength = response.headers.get('content-length');
|
|
102
|
+
const declaredLength = contentLength === null ? undefined : Number(contentLength);
|
|
103
|
+
if (declaredLength !== undefined &&
|
|
104
|
+
Number.isFinite(declaredLength) &&
|
|
105
|
+
declaredLength > MAX_JSON_BYTES) {
|
|
106
|
+
await cancelResponseBody(response);
|
|
107
|
+
return { ok: false, reason: `JSON response exceeds ${MAX_JSON_BYTES} bytes` };
|
|
108
|
+
}
|
|
109
|
+
const loaded = await readBoundedText(response);
|
|
110
|
+
if (!loaded.ok)
|
|
111
|
+
return loaded;
|
|
112
|
+
let value;
|
|
119
113
|
try {
|
|
120
|
-
|
|
114
|
+
value = JSON.parse(loaded.text);
|
|
121
115
|
}
|
|
122
116
|
catch {
|
|
123
|
-
return { ok: false,
|
|
117
|
+
return { ok: false, reason: 'response is not valid JSON' };
|
|
118
|
+
}
|
|
119
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value)) {
|
|
120
|
+
return { ok: false, reason: 'JSON response must be an object' };
|
|
124
121
|
}
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
return { ok: true, value: value };
|
|
123
|
+
}
|
|
124
|
+
async function readBoundedText(response) {
|
|
125
|
+
if (response.body === null)
|
|
126
|
+
return { ok: true, text: '' };
|
|
127
|
+
const reader = response.body.getReader();
|
|
128
|
+
const decoder = new TextDecoder();
|
|
129
|
+
const chunks = [];
|
|
130
|
+
let bytes = 0;
|
|
131
|
+
try {
|
|
132
|
+
while (true) {
|
|
133
|
+
const chunk = await reader.read();
|
|
134
|
+
if (chunk.done)
|
|
135
|
+
break;
|
|
136
|
+
bytes += chunk.value.byteLength;
|
|
137
|
+
if (bytes > MAX_JSON_BYTES) {
|
|
138
|
+
await reader.cancel().catch(() => undefined);
|
|
139
|
+
return { ok: false, reason: `JSON response exceeds ${MAX_JSON_BYTES} bytes` };
|
|
140
|
+
}
|
|
141
|
+
chunks.push(decoder.decode(chunk.value, { stream: true }));
|
|
142
|
+
}
|
|
143
|
+
chunks.push(decoder.decode());
|
|
144
|
+
return { ok: true, text: chunks.join('') };
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
await reader.cancel().catch(() => undefined);
|
|
148
|
+
return { ok: false, reason: 'could not read JSON response' };
|
|
127
149
|
}
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
record.issuer.replace(/\/+$/, '') !== issuer.replace(/\/+$/, '')) {
|
|
131
|
-
return { ok: false, check: hostFailure(candidate.url, 'issuer metadata mismatch') };
|
|
150
|
+
finally {
|
|
151
|
+
reader.releaseLock();
|
|
132
152
|
}
|
|
133
|
-
return { ok: true, metadata: record };
|
|
134
153
|
}
|
|
135
|
-
function
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
154
|
+
async function cancelResponseBody(response) {
|
|
155
|
+
await response.body?.cancel().catch(() => undefined);
|
|
156
|
+
}
|
|
157
|
+
function isPublicJwk(value) {
|
|
158
|
+
if (typeof value !== 'object' || value === null || Array.isArray(value))
|
|
159
|
+
return false;
|
|
160
|
+
const key = value;
|
|
161
|
+
if (['d', 'p', 'q', 'dp', 'dq', 'qi', 'oth', 'k'].some((field) => field in key))
|
|
162
|
+
return false;
|
|
163
|
+
if (key.use !== undefined && key.use !== 'sig')
|
|
164
|
+
return false;
|
|
165
|
+
if (key.key_ops !== undefined &&
|
|
166
|
+
(!Array.isArray(key.key_ops) || !key.key_ops.includes('verify'))) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
if (key.kty === 'RSA')
|
|
170
|
+
return validRsaPublicKey(key.n, key.e);
|
|
171
|
+
if (key.kty === 'EC') {
|
|
172
|
+
const coordinateBytes = key.crv === 'P-256' ? 32 : key.crv === 'P-384' ? 48 : key.crv === 'P-521' ? 66 : undefined;
|
|
173
|
+
return (coordinateBytes !== undefined &&
|
|
174
|
+
base64UrlBytes(key.x)?.byteLength === coordinateBytes &&
|
|
175
|
+
base64UrlBytes(key.y)?.byteLength === coordinateBytes);
|
|
176
|
+
}
|
|
177
|
+
if (key.kty === 'OKP') {
|
|
178
|
+
const coordinateBytes = key.crv === 'Ed25519' ? 32 : key.crv === 'Ed448' ? 57 : undefined;
|
|
179
|
+
return coordinateBytes !== undefined && base64UrlBytes(key.x)?.byteLength === coordinateBytes;
|
|
180
|
+
}
|
|
181
|
+
return false;
|
|
182
|
+
}
|
|
183
|
+
function validRsaPublicKey(modulusValue, exponentValue) {
|
|
184
|
+
const modulus = base64UrlBytes(modulusValue);
|
|
185
|
+
const exponent = base64UrlBytes(exponentValue);
|
|
186
|
+
if (modulus === undefined || exponent === undefined || exponent.byteLength > 8)
|
|
187
|
+
return false;
|
|
188
|
+
if (modulus.byteLength < 256)
|
|
189
|
+
return false;
|
|
190
|
+
if (modulus.byteLength === 256 && (modulus[0] ?? 0) < 0x80)
|
|
191
|
+
return false;
|
|
192
|
+
if (((modulus.at(-1) ?? 0) & 1) === 0)
|
|
193
|
+
return false;
|
|
194
|
+
let exponentNumber = 0n;
|
|
195
|
+
for (const byte of exponent)
|
|
196
|
+
exponentNumber = (exponentNumber << 8n) | BigInt(byte);
|
|
197
|
+
return exponentNumber >= 3n && (exponentNumber & 1n) === 1n;
|
|
198
|
+
}
|
|
199
|
+
function base64UrlBytes(value) {
|
|
200
|
+
if (!nonEmpty(value) || !/^[A-Za-z0-9_-]+$/u.test(value) || value.length % 4 === 1) {
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
const decoded = Buffer.from(value, 'base64url');
|
|
204
|
+
return decoded.byteLength > 0 && decoded.toString('base64url') === value ? decoded : undefined;
|
|
205
|
+
}
|
|
206
|
+
function httpsEndpoint(value) {
|
|
207
|
+
if (!nonEmpty(value))
|
|
208
|
+
return undefined;
|
|
209
|
+
try {
|
|
210
|
+
const parsed = new URL(value);
|
|
211
|
+
if (parsed.protocol !== 'https:' || parsed.username || parsed.password)
|
|
212
|
+
return undefined;
|
|
213
|
+
return parsed.toString();
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
return undefined;
|
|
217
|
+
}
|
|
142
218
|
}
|
|
143
|
-
function
|
|
219
|
+
function nonEmpty(value) {
|
|
220
|
+
return typeof value === 'string' && value.trim().length > 0;
|
|
221
|
+
}
|
|
222
|
+
function requestInit() {
|
|
144
223
|
return {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
fix: 'Serve this path-inserted RFC 8414 metadata URL directly as HTTP 200 JSON without redirecting to login.',
|
|
224
|
+
headers: { accept: 'application/json' },
|
|
225
|
+
redirect: 'manual',
|
|
226
|
+
signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
|
|
149
227
|
};
|
|
150
228
|
}
|
|
229
|
+
function pass(code, name, issuer, message) {
|
|
230
|
+
return { code, level: 'PASS', name, issuer: authDiagnosticUrl(issuer), message };
|
|
231
|
+
}
|
|
232
|
+
function fail(code, name, issuer, message, fix) {
|
|
233
|
+
return { code, level: 'FAIL', name, issuer: authDiagnosticUrl(issuer), message, fix };
|
|
234
|
+
}
|
|
235
|
+
function metadataFailure(issuer, message) {
|
|
236
|
+
return hostFailure(issuer, issuer, message);
|
|
237
|
+
}
|
|
238
|
+
function hostFailure(issuer, url, reason) {
|
|
239
|
+
return fail('oauth_metadata_discovery', 'MCP host discovery', issuer, `${safeUrl(url)}: ${reason}`, 'Serve this path-inserted RFC 8414 metadata URL directly as HTTP 200 JSON without redirecting to login.');
|
|
240
|
+
}
|
|
151
241
|
function safeRedirectLocation(location, base) {
|
|
152
242
|
if (location === null)
|
|
153
243
|
return undefined;
|
|
154
244
|
try {
|
|
155
|
-
|
|
245
|
+
return safeUrl(new URL(location, base).toString());
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
return undefined;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
function safeUrl(value) {
|
|
252
|
+
try {
|
|
253
|
+
const parsed = new URL(value);
|
|
254
|
+
const hadCredentials = parsed.username.length > 0 || parsed.password.length > 0;
|
|
255
|
+
parsed.username = '';
|
|
256
|
+
parsed.password = '';
|
|
156
257
|
parsed.search = '';
|
|
157
258
|
parsed.hash = '';
|
|
158
|
-
|
|
259
|
+
const sanitized = parsed.toString();
|
|
260
|
+
const firstSensitiveDelimiter = value.search(/[?#]/u);
|
|
261
|
+
const originalWithoutQuery = firstSensitiveDelimiter === -1 ? value : value.slice(0, firstSensitiveDelimiter);
|
|
262
|
+
return !hadCredentials && sanitized === `${originalWithoutQuery}/`
|
|
263
|
+
? originalWithoutQuery
|
|
264
|
+
: sanitized;
|
|
159
265
|
}
|
|
160
266
|
catch {
|
|
161
|
-
return
|
|
267
|
+
return 'invalid URL';
|
|
162
268
|
}
|
|
163
269
|
}
|
|
270
|
+
export function authDiagnosticUrl(value) {
|
|
271
|
+
return safeUrl(value);
|
|
272
|
+
}
|
|
273
|
+
function safeErrorMessage(error, fallback) {
|
|
274
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
275
|
+
const withoutUrls = message.replace(/https?:\/\/\S+/gu, '[URL]');
|
|
276
|
+
return withoutUrls.trim().slice(0, 240) || fallback;
|
|
277
|
+
}
|
|
164
278
|
//# sourceMappingURL=auth-metadata-readiness.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-metadata-readiness.js","sourceRoot":"","sources":["../../src/commands/auth-metadata-readiness.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth-metadata-readiness.js","sourceRoot":"","sources":["../../src/commands/auth-metadata-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,22 @@
|
|
|
1
1
|
import type { ConfigLocation } from '../config.js';
|
|
2
2
|
import { type AuthDoctorCheck } from './auth-metadata-readiness.js';
|
|
3
|
+
interface AuthDoctorArgs {
|
|
4
|
+
readonly entrypoint?: string;
|
|
5
|
+
readonly json: boolean;
|
|
6
|
+
readonly live: boolean;
|
|
7
|
+
readonly org?: string;
|
|
8
|
+
readonly app?: string;
|
|
9
|
+
readonly targetEnv?: string;
|
|
10
|
+
readonly service?: string;
|
|
11
|
+
}
|
|
3
12
|
export declare function runAuth(rest: readonly string[], env?: NodeJS.ProcessEnv, home?: ConfigLocation): Promise<number>;
|
|
13
|
+
export declare function staticAuthDoctor(args: AuthDoctorArgs): Promise<AuthDoctorCheck[]>;
|
|
4
14
|
/** Failures that must be cleared before an interactive local host preview can claim OAuth readiness. */
|
|
5
15
|
export declare function genericHostAuthReadiness(entrypoint: string): Promise<readonly AuthDoctorCheck[]>;
|
|
16
|
+
export interface AuthReadiness {
|
|
17
|
+
readonly ready: boolean;
|
|
18
|
+
readonly checks: readonly AuthDoctorCheck[];
|
|
19
|
+
}
|
|
20
|
+
export declare function authReadinessForEntrypoint(entrypoint: string): Promise<AuthReadiness>;
|
|
21
|
+
export {};
|
|
6
22
|
//# sourceMappingURL=auth-ops.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-ops.d.ts","sourceRoot":"","sources":["../../src/commands/auth-ops.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"auth-ops.d.ts","sourceRoot":"","sources":["../../src/commands/auth-ops.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKnD,OAAO,EACL,KAAK,eAAe,EAGrB,MAAM,8BAA8B,CAAC;AAGtC,UAAU,cAAc;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,OAAO,CAC3B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,MAAM,CAAC,CASjB;AAeD,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAqRvF;AAED,wGAAwG;AACxG,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,SAAS,eAAe,EAAE,CAAC,CAGrC;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,CAAC;CAC7C;AAED,wBAAsB,0BAA0B,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAM3F"}
|