@portel/photon 1.22.1 → 1.23.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/README.md +19 -8
- package/dist/a2ui/mapper.d.ts +40 -0
- package/dist/a2ui/mapper.d.ts.map +1 -0
- package/dist/a2ui/mapper.js +286 -0
- package/dist/a2ui/mapper.js.map +1 -0
- package/dist/a2ui/types.d.ts +129 -0
- package/dist/a2ui/types.d.ts.map +1 -0
- package/dist/a2ui/types.js +20 -0
- package/dist/a2ui/types.js.map +1 -0
- package/dist/ag-ui/adapter.d.ts +9 -1
- package/dist/ag-ui/adapter.d.ts.map +1 -1
- package/dist/ag-ui/adapter.js +33 -16
- package/dist/ag-ui/adapter.js.map +1 -1
- package/dist/auto-ui/beam/routes/api-daemon.d.ts +18 -0
- package/dist/auto-ui/beam/routes/api-daemon.d.ts.map +1 -0
- package/dist/auto-ui/beam/routes/api-daemon.js +118 -0
- package/dist/auto-ui/beam/routes/api-daemon.js.map +1 -0
- package/dist/auto-ui/beam.d.ts.map +1 -1
- package/dist/auto-ui/beam.js +34 -34
- package/dist/auto-ui/beam.js.map +1 -1
- package/dist/auto-ui/bridge/renderers.d.ts.map +1 -1
- package/dist/auto-ui/bridge/renderers.js +371 -0
- package/dist/auto-ui/bridge/renderers.js.map +1 -1
- package/dist/auto-ui/streamable-http-transport.d.ts.map +1 -1
- package/dist/auto-ui/streamable-http-transport.js +38 -1
- package/dist/auto-ui/streamable-http-transport.js.map +1 -1
- package/dist/auto-ui/types.d.ts +19 -0
- package/dist/auto-ui/types.d.ts.map +1 -1
- package/dist/auto-ui/types.js.map +1 -1
- package/dist/beam.bundle.js +757 -107
- package/dist/beam.bundle.js.map +4 -4
- package/dist/cli/commands/beam.d.ts.map +1 -1
- package/dist/cli/commands/beam.js +2 -0
- package/dist/cli/commands/beam.js.map +1 -1
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +2 -0
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts.map +1 -1
- package/dist/cli/commands/doctor.js +92 -3
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/host.d.ts.map +1 -1
- package/dist/cli/commands/host.js +9 -1
- package/dist/cli/commands/host.js.map +1 -1
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +7 -3
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +4 -0
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/maker.d.ts +8 -0
- package/dist/cli/commands/maker.d.ts.map +1 -1
- package/dist/cli/commands/maker.js +113 -46
- package/dist/cli/commands/maker.js.map +1 -1
- package/dist/cli/commands/marketplace.d.ts.map +1 -1
- package/dist/cli/commands/marketplace.js +7 -1
- package/dist/cli/commands/marketplace.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +10 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +215 -4
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/package.d.ts.map +1 -1
- package/dist/cli/commands/package.js +33 -15
- package/dist/cli/commands/package.js.map +1 -1
- package/dist/cli/commands/ps.d.ts +16 -0
- package/dist/cli/commands/ps.d.ts.map +1 -0
- package/dist/cli/commands/ps.js +267 -0
- package/dist/cli/commands/ps.js.map +1 -0
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +7 -0
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +14 -4
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +9 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/context-store.d.ts +4 -4
- package/dist/context-store.d.ts.map +1 -1
- package/dist/context-store.js +20 -17
- package/dist/context-store.js.map +1 -1
- package/dist/context.d.ts +5 -4
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +68 -14
- package/dist/context.js.map +1 -1
- package/dist/daemon/client.d.ts +60 -0
- package/dist/daemon/client.d.ts.map +1 -1
- package/dist/daemon/client.js +76 -0
- package/dist/daemon/client.js.map +1 -1
- package/dist/daemon/execution-history-sqlite.d.ts +50 -0
- package/dist/daemon/execution-history-sqlite.d.ts.map +1 -0
- package/dist/daemon/execution-history-sqlite.js +165 -0
- package/dist/daemon/execution-history-sqlite.js.map +1 -0
- package/dist/daemon/execution-history.d.ts +78 -0
- package/dist/daemon/execution-history.d.ts.map +1 -0
- package/dist/daemon/execution-history.js +246 -0
- package/dist/daemon/execution-history.js.map +1 -0
- package/dist/daemon/hot-reload-state.d.ts +27 -0
- package/dist/daemon/hot-reload-state.d.ts.map +1 -0
- package/dist/daemon/hot-reload-state.js +48 -0
- package/dist/daemon/hot-reload-state.js.map +1 -0
- package/dist/daemon/protocol.d.ts +5 -1
- package/dist/daemon/protocol.d.ts.map +1 -1
- package/dist/daemon/protocol.js +13 -0
- package/dist/daemon/protocol.js.map +1 -1
- package/dist/daemon/registry-keys.d.ts +88 -0
- package/dist/daemon/registry-keys.d.ts.map +1 -0
- package/dist/daemon/registry-keys.js +91 -0
- package/dist/daemon/registry-keys.js.map +1 -0
- package/dist/daemon/server.js +1521 -186
- package/dist/daemon/server.js.map +1 -1
- package/dist/daemon/session-resolver.d.ts +28 -0
- package/dist/daemon/session-resolver.d.ts.map +1 -0
- package/dist/daemon/session-resolver.js +41 -0
- package/dist/daemon/session-resolver.js.map +1 -0
- package/dist/data-migration.js +20 -9
- package/dist/data-migration.js.map +1 -1
- package/dist/loader.d.ts +22 -8
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +214 -94
- package/dist/loader.js.map +1 -1
- package/dist/marketplace-manager.d.ts.map +1 -1
- package/dist/marketplace-manager.js +9 -5
- package/dist/marketplace-manager.js.map +1 -1
- package/dist/namespace-migration.d.ts.map +1 -1
- package/dist/namespace-migration.js +28 -23
- package/dist/namespace-migration.js.map +1 -1
- package/dist/photon-cli-runner.d.ts.map +1 -1
- package/dist/photon-cli-runner.js +57 -8
- package/dist/photon-cli-runner.js.map +1 -1
- package/dist/serv/auth/auth-store.d.ts +155 -0
- package/dist/serv/auth/auth-store.d.ts.map +1 -0
- package/dist/serv/auth/auth-store.js +240 -0
- package/dist/serv/auth/auth-store.js.map +1 -0
- package/dist/serv/auth/endpoints.d.ts +113 -0
- package/dist/serv/auth/endpoints.d.ts.map +1 -0
- package/dist/serv/auth/endpoints.js +1005 -0
- package/dist/serv/auth/endpoints.js.map +1 -0
- package/dist/serv/auth/http-adapter.d.ts +60 -0
- package/dist/serv/auth/http-adapter.d.ts.map +1 -0
- package/dist/serv/auth/http-adapter.js +235 -0
- package/dist/serv/auth/http-adapter.js.map +1 -0
- package/dist/serv/auth/jwt.d.ts +92 -6
- package/dist/serv/auth/jwt.d.ts.map +1 -1
- package/dist/serv/auth/jwt.js +226 -24
- package/dist/serv/auth/jwt.js.map +1 -1
- package/dist/serv/auth/oauth-sqlite-stores.d.ts +48 -0
- package/dist/serv/auth/oauth-sqlite-stores.d.ts.map +1 -0
- package/dist/serv/auth/oauth-sqlite-stores.js +212 -0
- package/dist/serv/auth/oauth-sqlite-stores.js.map +1 -0
- package/dist/serv/auth/sqlite-stores.d.ts +85 -0
- package/dist/serv/auth/sqlite-stores.d.ts.map +1 -0
- package/dist/serv/auth/sqlite-stores.js +446 -0
- package/dist/serv/auth/sqlite-stores.js.map +1 -0
- package/dist/serv/auth/well-known.d.ts +54 -1
- package/dist/serv/auth/well-known.d.ts.map +1 -1
- package/dist/serv/auth/well-known.js +166 -17
- package/dist/serv/auth/well-known.js.map +1 -1
- package/dist/serv/index.d.ts +45 -2
- package/dist/serv/index.d.ts.map +1 -1
- package/dist/serv/index.js +65 -1
- package/dist/serv/index.js.map +1 -1
- package/dist/serv/types/index.d.ts +80 -0
- package/dist/serv/types/index.d.ts.map +1 -1
- package/dist/serv/types/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +61 -6
- package/dist/server.js.map +1 -1
- package/dist/shared/announce-context.d.ts +51 -0
- package/dist/shared/announce-context.d.ts.map +1 -0
- package/dist/shared/announce-context.js +73 -0
- package/dist/shared/announce-context.js.map +1 -0
- package/dist/shared/audit-sqlite.d.ts +63 -0
- package/dist/shared/audit-sqlite.d.ts.map +1 -0
- package/dist/shared/audit-sqlite.js +187 -0
- package/dist/shared/audit-sqlite.js.map +1 -0
- package/dist/shared/audit.d.ts +25 -3
- package/dist/shared/audit.d.ts.map +1 -1
- package/dist/shared/audit.js +97 -3
- package/dist/shared/audit.js.map +1 -1
- package/dist/shared/error-handler.d.ts +10 -1
- package/dist/shared/error-handler.d.ts.map +1 -1
- package/dist/shared/error-handler.js +17 -2
- package/dist/shared/error-handler.js.map +1 -1
- package/dist/shared/security.d.ts +12 -0
- package/dist/shared/security.d.ts.map +1 -1
- package/dist/shared/security.js +80 -0
- package/dist/shared/security.js.map +1 -1
- package/dist/shared/sqlite-runtime.d.ts +46 -0
- package/dist/shared/sqlite-runtime.d.ts.map +1 -0
- package/dist/shared/sqlite-runtime.js +110 -0
- package/dist/shared/sqlite-runtime.js.map +1 -0
- package/dist/tasks/store.d.ts +1 -1
- package/dist/tasks/store.d.ts.map +1 -1
- package/dist/tasks/store.js +29 -15
- package/dist/tasks/store.js.map +1 -1
- package/dist/telemetry/metrics.d.ts +26 -0
- package/dist/telemetry/metrics.d.ts.map +1 -1
- package/dist/telemetry/metrics.js +31 -0
- package/dist/telemetry/metrics.js.map +1 -1
- package/dist/test-runner.d.ts.map +1 -1
- package/dist/test-runner.js +3 -3
- package/dist/test-runner.js.map +1 -1
- package/dist/version-checker.d.ts.map +1 -1
- package/dist/version-checker.js +7 -14
- package/dist/version-checker.js.map +1 -1
- package/dist/version.d.ts +12 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +103 -1
- package/dist/version.js.map +1 -1
- package/package.json +6 -2
- package/templates/photon.template.ts +7 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoints.js","sourceRoot":"","sources":["../../../src/serv/auth/endpoints.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP adapter for the OAuth 2.1 authorization server.
|
|
3
|
+
*
|
|
4
|
+
* Bridges Node's IncomingMessage / ServerResponse to the pure-function
|
|
5
|
+
* `AuthRequest` / `AuthResponse` shape that the endpoint handlers speak.
|
|
6
|
+
* Same composition pattern as `handleStreamableHTTP` in
|
|
7
|
+
* src/auto-ui/streamable-http-transport.ts: returns `true` when the
|
|
8
|
+
* request was matched + handled, `false` so the host HTTP server can
|
|
9
|
+
* fall through to other routes.
|
|
10
|
+
*
|
|
11
|
+
* Routes mounted:
|
|
12
|
+
* GET /tenant/<slug>/.well-known/oauth-authorization-server
|
|
13
|
+
* GET /tenant/<slug>/.well-known/oauth-protected-resource
|
|
14
|
+
* GET /tenant/<slug>/authorize
|
|
15
|
+
* POST /tenant/<slug>/token
|
|
16
|
+
* POST /tenant/<slug>/register
|
|
17
|
+
* GET /tenant/<slug>/consent
|
|
18
|
+
* POST /tenant/<slug>/consent
|
|
19
|
+
* POST /tenant/<slug>/revoke
|
|
20
|
+
* POST /tenant/<slug>/introspect
|
|
21
|
+
*
|
|
22
|
+
* `<slug>` is optional when `singleTenant` is configured — the same
|
|
23
|
+
* routes are also accepted at the path root for self-host deployments.
|
|
24
|
+
*/
|
|
25
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
26
|
+
import type { Serv } from '../index.js';
|
|
27
|
+
import type { Tenant } from '../types/index.js';
|
|
28
|
+
export interface AuthServerHTTPOptions {
|
|
29
|
+
/** The Serv instance that owns the AS state. */
|
|
30
|
+
serv: Serv;
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the tenant for a request. Typical implementations pull the
|
|
33
|
+
* slug from the URL path (`/tenant/<slug>/...`), look it up in the
|
|
34
|
+
* tenant store, and return the Tenant row (or null for 404).
|
|
35
|
+
*/
|
|
36
|
+
resolveTenant: (req: IncomingMessage, slug: string | null) => Promise<Tenant | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Resolve the caller identity from the request. Returns `undefined` for
|
|
39
|
+
* unauthenticated requests — `/authorize` will then redirect to the
|
|
40
|
+
* configured login URL with `return_to`. For the self-host
|
|
41
|
+
* `PHOTON_SINGLE_USER=1` short-circuit, bake the tenant-owner id into
|
|
42
|
+
* the return value so every request lands authenticated.
|
|
43
|
+
*/
|
|
44
|
+
resolveUserId: (req: IncomingMessage, tenant: Tenant) => Promise<string | undefined>;
|
|
45
|
+
/**
|
|
46
|
+
* When set, also accept the AS endpoints at the root path (no
|
|
47
|
+
* `/tenant/<slug>/` prefix). The `resolveTenant` callback will be
|
|
48
|
+
* invoked with `slug = null` so the host can return the single tenant.
|
|
49
|
+
*/
|
|
50
|
+
singleTenant?: boolean;
|
|
51
|
+
/** Optional structured logger. Best-effort. */
|
|
52
|
+
log?: (level: 'info' | 'warn' | 'error', msg: string, meta?: Record<string, unknown>) => void;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Match + handle an AS HTTP request. Returns `false` when the request's
|
|
56
|
+
* path doesn't belong to the AS so the host can fall through to other
|
|
57
|
+
* mounts. Returns `true` for handled, rejected, or errored requests.
|
|
58
|
+
*/
|
|
59
|
+
export declare function handleAuthServerHTTP(req: IncomingMessage, res: ServerResponse, options: AuthServerHTTPOptions): Promise<boolean>;
|
|
60
|
+
//# sourceMappingURL=http-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-adapter.d.ts","sourceRoot":"","sources":["../../../src/serv/auth/http-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAiB5D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAMhD,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,IAAI,EAAE,IAAI,CAAC;IACX;;;;OAIG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACrF;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrF;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+CAA+C;IAC/C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC/F;AAMD;;;;GAIG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,OAAO,CAAC,CAiFlB"}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP adapter for the OAuth 2.1 authorization server.
|
|
3
|
+
*
|
|
4
|
+
* Bridges Node's IncomingMessage / ServerResponse to the pure-function
|
|
5
|
+
* `AuthRequest` / `AuthResponse` shape that the endpoint handlers speak.
|
|
6
|
+
* Same composition pattern as `handleStreamableHTTP` in
|
|
7
|
+
* src/auto-ui/streamable-http-transport.ts: returns `true` when the
|
|
8
|
+
* request was matched + handled, `false` so the host HTTP server can
|
|
9
|
+
* fall through to other routes.
|
|
10
|
+
*
|
|
11
|
+
* Routes mounted:
|
|
12
|
+
* GET /tenant/<slug>/.well-known/oauth-authorization-server
|
|
13
|
+
* GET /tenant/<slug>/.well-known/oauth-protected-resource
|
|
14
|
+
* GET /tenant/<slug>/authorize
|
|
15
|
+
* POST /tenant/<slug>/token
|
|
16
|
+
* POST /tenant/<slug>/register
|
|
17
|
+
* GET /tenant/<slug>/consent
|
|
18
|
+
* POST /tenant/<slug>/consent
|
|
19
|
+
* POST /tenant/<slug>/revoke
|
|
20
|
+
* POST /tenant/<slug>/introspect
|
|
21
|
+
*
|
|
22
|
+
* `<slug>` is optional when `singleTenant` is configured — the same
|
|
23
|
+
* routes are also accepted at the path root for self-host deployments.
|
|
24
|
+
*/
|
|
25
|
+
import { handleAuthorize, handleConsent, handleToken, handleRegister, handleRevoke, handleIntrospect, } from './endpoints.js';
|
|
26
|
+
import { handleAuthServerRequest, handleProtectedResourceRequest, } from './well-known.js';
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Public entrypoint
|
|
29
|
+
// ============================================================================
|
|
30
|
+
/**
|
|
31
|
+
* Match + handle an AS HTTP request. Returns `false` when the request's
|
|
32
|
+
* path doesn't belong to the AS so the host can fall through to other
|
|
33
|
+
* mounts. Returns `true` for handled, rejected, or errored requests.
|
|
34
|
+
*/
|
|
35
|
+
export async function handleAuthServerHTTP(req, res, options) {
|
|
36
|
+
const parsed = parsePathname(req, options.singleTenant);
|
|
37
|
+
if (!parsed)
|
|
38
|
+
return false;
|
|
39
|
+
// CORS + preflight
|
|
40
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
41
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
42
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, Accept');
|
|
43
|
+
if (req.method === 'OPTIONS') {
|
|
44
|
+
res.writeHead(204);
|
|
45
|
+
res.end();
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
const tenant = await options.resolveTenant(req, parsed.slug);
|
|
49
|
+
if (!tenant) {
|
|
50
|
+
writeJson(res, 404, { error: 'tenant_not_found', error_description: 'Unknown tenant slug' });
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
// Well-known metadata is tenant-scoped but doesn't need full endpoint deps.
|
|
54
|
+
const wellKnownConfig = options.serv.wellKnownConfig;
|
|
55
|
+
if (parsed.endpoint === '.well-known/oauth-authorization-server' && req.method === 'GET') {
|
|
56
|
+
const response = handleAuthServerRequest(wellKnownConfig, tenant);
|
|
57
|
+
writeResponse(res, response);
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
if (parsed.endpoint === '.well-known/oauth-protected-resource' && req.method === 'GET') {
|
|
61
|
+
const response = handleProtectedResourceRequest(wellKnownConfig, tenant);
|
|
62
|
+
writeResponse(res, response);
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
const deps = options.serv.buildEndpointDeps(tenant);
|
|
66
|
+
// Build the AuthRequest. /authorize uses query params only, so reading
|
|
67
|
+
// the body would waste cycles; everything else expects form-urlencoded
|
|
68
|
+
// or JSON. parseBody handles both with a size cap.
|
|
69
|
+
const needsBody = req.method === 'POST';
|
|
70
|
+
let body;
|
|
71
|
+
if (needsBody) {
|
|
72
|
+
try {
|
|
73
|
+
body = await readBody(req, MAX_BODY_BYTES);
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
if (err instanceof Error && err.message === 'body_too_large') {
|
|
77
|
+
writeJson(res, 413, {
|
|
78
|
+
error: 'invalid_request',
|
|
79
|
+
error_description: 'request body exceeds the configured maximum',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
writeJson(res, 400, {
|
|
84
|
+
error: 'invalid_request',
|
|
85
|
+
error_description: 'could not read request body',
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const userId = await options.resolveUserId(req, tenant);
|
|
92
|
+
const authReq = {
|
|
93
|
+
method: req.method ?? 'GET',
|
|
94
|
+
url: absoluteUrl(req),
|
|
95
|
+
headers: normalizeHeaders(req.headers),
|
|
96
|
+
body,
|
|
97
|
+
userId,
|
|
98
|
+
};
|
|
99
|
+
const response = await dispatch(parsed.endpoint, authReq, deps);
|
|
100
|
+
if (!response) {
|
|
101
|
+
// Matched the /tenant/... prefix but not a known endpoint — fall
|
|
102
|
+
// through so the host can surface its own 404 shape.
|
|
103
|
+
return false;
|
|
104
|
+
}
|
|
105
|
+
options.log?.('info', 'as_http_request', {
|
|
106
|
+
endpoint: parsed.endpoint,
|
|
107
|
+
status: response.status,
|
|
108
|
+
tenant: tenant.slug,
|
|
109
|
+
});
|
|
110
|
+
writeResponse(res, response);
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
// ============================================================================
|
|
114
|
+
// Route dispatch
|
|
115
|
+
// ============================================================================
|
|
116
|
+
async function dispatch(endpoint, req, deps) {
|
|
117
|
+
switch (endpoint) {
|
|
118
|
+
case 'authorize':
|
|
119
|
+
return handleAuthorize(req, deps);
|
|
120
|
+
case 'token':
|
|
121
|
+
return handleToken(req, deps);
|
|
122
|
+
case 'register':
|
|
123
|
+
return handleRegister(req, deps);
|
|
124
|
+
case 'consent':
|
|
125
|
+
return handleConsent(req, deps);
|
|
126
|
+
case 'revoke':
|
|
127
|
+
return handleRevoke(req, deps);
|
|
128
|
+
case 'introspect':
|
|
129
|
+
return handleIntrospect(req, deps);
|
|
130
|
+
default:
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Recognize `/tenant/<slug>/<endpoint>` and, when singleTenant is set,
|
|
136
|
+
* the bare `/endpoint` form. The endpoint bucket preserves the
|
|
137
|
+
* `.well-known/...` sub-path when present.
|
|
138
|
+
*/
|
|
139
|
+
function parsePathname(req, singleTenant) {
|
|
140
|
+
const url = new URL(req.url ?? '/', `http://${req.headers.host ?? 'localhost'}`);
|
|
141
|
+
const parts = url.pathname.split('/').filter(Boolean);
|
|
142
|
+
if (parts.length === 0)
|
|
143
|
+
return null;
|
|
144
|
+
if (parts[0] === 'tenant') {
|
|
145
|
+
if (parts.length < 3)
|
|
146
|
+
return null;
|
|
147
|
+
const slug = parts[1];
|
|
148
|
+
const endpoint = parts.slice(2).join('/');
|
|
149
|
+
if (!KNOWN_ENDPOINTS.has(endpoint))
|
|
150
|
+
return null;
|
|
151
|
+
return { slug, endpoint };
|
|
152
|
+
}
|
|
153
|
+
if (singleTenant) {
|
|
154
|
+
const endpoint = parts.join('/');
|
|
155
|
+
if (!KNOWN_ENDPOINTS.has(endpoint))
|
|
156
|
+
return null;
|
|
157
|
+
return { slug: null, endpoint };
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
const KNOWN_ENDPOINTS = new Set([
|
|
162
|
+
'authorize',
|
|
163
|
+
'token',
|
|
164
|
+
'register',
|
|
165
|
+
'consent',
|
|
166
|
+
'revoke',
|
|
167
|
+
'introspect',
|
|
168
|
+
'.well-known/oauth-authorization-server',
|
|
169
|
+
'.well-known/oauth-protected-resource',
|
|
170
|
+
]);
|
|
171
|
+
// ============================================================================
|
|
172
|
+
// Request/response plumbing
|
|
173
|
+
// ============================================================================
|
|
174
|
+
const MAX_BODY_BYTES = 64 * 1024; // 64 KiB — plenty for any AS request
|
|
175
|
+
function absoluteUrl(req) {
|
|
176
|
+
const host = req.headers.host ?? 'localhost';
|
|
177
|
+
// The `forwarded`/`x-forwarded-proto` headers win when present so
|
|
178
|
+
// reverse-proxied deployments see the real external scheme.
|
|
179
|
+
const proto = firstHeader(req.headers['x-forwarded-proto']) ?? 'http';
|
|
180
|
+
return `${proto}://${host}${req.url ?? '/'}`;
|
|
181
|
+
}
|
|
182
|
+
function normalizeHeaders(raw) {
|
|
183
|
+
const out = {};
|
|
184
|
+
for (const [key, value] of Object.entries(raw)) {
|
|
185
|
+
if (value === undefined)
|
|
186
|
+
continue;
|
|
187
|
+
out[key.toLowerCase()] = value;
|
|
188
|
+
}
|
|
189
|
+
return out;
|
|
190
|
+
}
|
|
191
|
+
function firstHeader(raw) {
|
|
192
|
+
if (raw === undefined)
|
|
193
|
+
return undefined;
|
|
194
|
+
return Array.isArray(raw) ? raw[0] : raw;
|
|
195
|
+
}
|
|
196
|
+
async function readBody(req, maxBytes) {
|
|
197
|
+
return new Promise((resolve, reject) => {
|
|
198
|
+
let size = 0;
|
|
199
|
+
let tooLarge = false;
|
|
200
|
+
const chunks = [];
|
|
201
|
+
req.on('data', (chunk) => {
|
|
202
|
+
size += chunk.length;
|
|
203
|
+
if (!tooLarge && size > maxBytes) {
|
|
204
|
+
tooLarge = true;
|
|
205
|
+
}
|
|
206
|
+
if (!tooLarge)
|
|
207
|
+
chunks.push(chunk);
|
|
208
|
+
// Don't destroy the socket here — drain remaining chunks so the
|
|
209
|
+
// caller can still write a proper 413 response. Destroying the
|
|
210
|
+
// request mid-read leaves the client with ECONNRESET and no way
|
|
211
|
+
// to distinguish "too large" from "server crashed."
|
|
212
|
+
});
|
|
213
|
+
req.on('end', () => {
|
|
214
|
+
if (tooLarge)
|
|
215
|
+
reject(new Error('body_too_large'));
|
|
216
|
+
else
|
|
217
|
+
resolve(Buffer.concat(chunks).toString('utf-8'));
|
|
218
|
+
});
|
|
219
|
+
req.on('error', reject);
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
function writeResponse(res, response) {
|
|
223
|
+
for (const [key, value] of Object.entries(response.headers)) {
|
|
224
|
+
if (value !== undefined)
|
|
225
|
+
res.setHeader(key, value);
|
|
226
|
+
}
|
|
227
|
+
res.writeHead(response.status);
|
|
228
|
+
res.end(response.body);
|
|
229
|
+
}
|
|
230
|
+
function writeJson(res, status, body) {
|
|
231
|
+
res.setHeader('Content-Type', 'application/json');
|
|
232
|
+
res.writeHead(status);
|
|
233
|
+
res.end(JSON.stringify(body));
|
|
234
|
+
}
|
|
235
|
+
//# sourceMappingURL=http-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/serv/auth/http-adapter.ts"],"names":[],"mappings":"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"}
|
package/dist/serv/auth/jwt.d.ts
CHANGED
|
@@ -6,21 +6,82 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import type { Session, SessionToken, Tenant, User, Membership } from '../types/index.js';
|
|
8
8
|
export interface JwtConfig {
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Signing secret for HMAC algorithms (HS256/384/512). Min 32 bytes
|
|
11
|
+
* recommended. Ignored when algorithm is an asymmetric variant.
|
|
12
|
+
*/
|
|
10
13
|
secret: string;
|
|
11
14
|
/** Token issuer (e.g., 'https://serv.example.com') */
|
|
12
15
|
issuer: string;
|
|
13
16
|
/** Default token expiry in seconds */
|
|
14
17
|
expirySeconds: number;
|
|
15
|
-
/**
|
|
16
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Algorithm to use. Asymmetric variants require `privateKey` (PEM) for
|
|
20
|
+
* signing and optionally `publicKey` (PEM) for verification. If the
|
|
21
|
+
* public key is omitted it's derived from the private key.
|
|
22
|
+
*/
|
|
23
|
+
algorithm: 'HS256' | 'HS384' | 'HS512' | 'RS256' | 'ES256';
|
|
24
|
+
/** PEM-encoded private key. Required for RS256/ES256. */
|
|
25
|
+
privateKey?: string;
|
|
26
|
+
/** PEM-encoded public key; derived from privateKey if omitted. */
|
|
27
|
+
publicKey?: string;
|
|
28
|
+
/** Key identifier for `kid` header. Optional; useful during key rotation. */
|
|
29
|
+
kid?: string;
|
|
17
30
|
}
|
|
18
31
|
export declare class JwtService {
|
|
19
32
|
private config;
|
|
33
|
+
private privateKey?;
|
|
34
|
+
private publicKey?;
|
|
20
35
|
constructor(config: Partial<JwtConfig> & {
|
|
21
|
-
secret: string;
|
|
22
36
|
issuer: string;
|
|
37
|
+
secret?: string;
|
|
23
38
|
});
|
|
39
|
+
/**
|
|
40
|
+
* Export the public JWK for publication at `/.well-known/jwks.json`.
|
|
41
|
+
* Only meaningful for asymmetric algorithms.
|
|
42
|
+
*/
|
|
43
|
+
exportJwk(): Record<string, unknown> | null;
|
|
44
|
+
/**
|
|
45
|
+
* Generate an OAuth access token JWT for the token endpoint.
|
|
46
|
+
*
|
|
47
|
+
* This is a lower-level variant of `generateSessionToken` that accepts
|
|
48
|
+
* the minimal fields needed for an OAuth 2.1 bearer token: `sub`, `scope`,
|
|
49
|
+
* `client_id`, `tenant_id`, plus a TTL. No `Session` object required.
|
|
50
|
+
*/
|
|
51
|
+
generateAccessToken(args: {
|
|
52
|
+
sub: string;
|
|
53
|
+
tenantId: string;
|
|
54
|
+
scope: string;
|
|
55
|
+
clientId: string;
|
|
56
|
+
expiresInSeconds: number;
|
|
57
|
+
now?: Date;
|
|
58
|
+
/** Optional jti; random if omitted. */
|
|
59
|
+
jti?: string;
|
|
60
|
+
}): string;
|
|
61
|
+
/**
|
|
62
|
+
* Sign a custom payload (used by RFC 8693 token exchange, where the
|
|
63
|
+
* caller fully controls the claim set including `aud`, `act`, etc.).
|
|
64
|
+
* Caller is responsible for including `iss`, `exp`, `iat`.
|
|
65
|
+
*/
|
|
66
|
+
exchangeSign(payload: Record<string, unknown>): string;
|
|
67
|
+
/**
|
|
68
|
+
* Generate an OpenID Connect id_token per OIDC Core §3.1.3.7.
|
|
69
|
+
*
|
|
70
|
+
* Identity assertion about the end-user. Issued when `openid` scope is
|
|
71
|
+
* granted at /token. Signed with the same key/algorithm as access tokens.
|
|
72
|
+
* `azp` (authorized party) claim identifies the client that requested it.
|
|
73
|
+
*/
|
|
74
|
+
generateIdToken(args: {
|
|
75
|
+
sub: string;
|
|
76
|
+
tenantId: string;
|
|
77
|
+
clientId: string;
|
|
78
|
+
expiresInSeconds: number;
|
|
79
|
+
now?: Date;
|
|
80
|
+
/** Optional extra claims (email, name, etc.) surfaced from the profile. */
|
|
81
|
+
profile?: Record<string, unknown>;
|
|
82
|
+
/** Optional nonce echoed from the authorize request. */
|
|
83
|
+
nonce?: string;
|
|
84
|
+
}): string;
|
|
24
85
|
/**
|
|
25
86
|
* Generate a session token
|
|
26
87
|
*/
|
|
@@ -46,16 +107,18 @@ export declare class JwtService {
|
|
|
46
107
|
*/
|
|
47
108
|
private verify;
|
|
48
109
|
/**
|
|
49
|
-
* Create HMAC
|
|
110
|
+
* Create JWS signature. HMAC for symmetric algs, RSA-PSS / ECDSA for asymmetric.
|
|
50
111
|
*/
|
|
51
112
|
private createSignature;
|
|
113
|
+
private hashName;
|
|
52
114
|
}
|
|
53
115
|
/**
|
|
54
116
|
* Generate a code verifier for PKCE
|
|
55
117
|
*/
|
|
56
118
|
export declare function generateCodeVerifier(): string;
|
|
57
119
|
/**
|
|
58
|
-
* Generate a code challenge from a verifier
|
|
120
|
+
* Generate a code challenge from a verifier (RFC 7636 §4.2, S256 method)
|
|
121
|
+
* code_challenge = BASE64URL-ENCODE(SHA256(code_verifier))
|
|
59
122
|
*/
|
|
60
123
|
export declare function generateCodeChallenge(verifier: string): string;
|
|
61
124
|
/**
|
|
@@ -78,6 +141,28 @@ export declare function encodeOAuthState(state: OAuthState, secret: string): str
|
|
|
78
141
|
* Decode and verify OAuth state
|
|
79
142
|
*/
|
|
80
143
|
export declare function decodeOAuthState(encoded: string, secret: string): OAuthState | null;
|
|
144
|
+
/**
|
|
145
|
+
* Convert a DER-encoded ECDSA signature (Node's default output from
|
|
146
|
+
* `createSign().sign()`) into the IEEE-P1363 r||s encoding required by
|
|
147
|
+
* RFC 7518 §3.4 for JWS ES256/ES384/ES512.
|
|
148
|
+
*
|
|
149
|
+
* DER layout: 0x30 [totalLen] 0x02 [rLen] [r...] 0x02 [sLen] [s...]
|
|
150
|
+
* r and s are encoded as signed integers — DER prepends 0x00 if the high
|
|
151
|
+
* bit of the first byte would otherwise make them negative. P1363 strips
|
|
152
|
+
* that padding and left-zero-pads each component to `componentLen` bytes.
|
|
153
|
+
*/
|
|
154
|
+
declare function derToP1363(der: Buffer, componentLen: number): Buffer;
|
|
155
|
+
/**
|
|
156
|
+
* Convert a P1363 r||s signature into DER for Node's `verifier.verify()`.
|
|
157
|
+
* Inverse of `derToP1363`. Used on the verify path so signatures received
|
|
158
|
+
* in spec-compliant JWS form can still be handed to Node's DER-only API.
|
|
159
|
+
*/
|
|
160
|
+
declare function p1363ToDer(p1363: Buffer): Buffer;
|
|
161
|
+
/** Internal exports for tests only. */
|
|
162
|
+
export declare const __test_ecdsa__: {
|
|
163
|
+
derToP1363: typeof derToP1363;
|
|
164
|
+
p1363ToDer: typeof p1363ToDer;
|
|
165
|
+
};
|
|
81
166
|
export declare function getJwtService(config?: Partial<JwtConfig> & {
|
|
82
167
|
secret: string;
|
|
83
168
|
issuer: string;
|
|
@@ -88,4 +173,5 @@ export declare function initJwtService(config: Partial<JwtConfig> & {
|
|
|
88
173
|
}): JwtService;
|
|
89
174
|
/** Reset the singleton — for testing only. */
|
|
90
175
|
export declare function resetJwtService(): void;
|
|
176
|
+
export {};
|
|
91
177
|
//# sourceMappingURL=jwt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/serv/auth/jwt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/serv/auth/jwt.ts"],"names":[],"mappings":"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"}
|