@substrat-run/vertical-auth 0.15.2 → 0.15.3
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/places.d.ts +11 -0
- package/dist/places.d.ts.map +1 -1
- package/dist/places.js +45 -2
- package/dist/places.js.map +1 -1
- package/package.json +5 -5
package/dist/places.d.ts
CHANGED
|
@@ -24,6 +24,16 @@ import type { IdentityStub } from './identity-do.js';
|
|
|
24
24
|
* - **`reportScopeMembers`**, the repair: the whole set bound in the scope, which drops every
|
|
25
25
|
* entry it does not name. Run it from the platform's reconcile.
|
|
26
26
|
*
|
|
27
|
+
* ## Where the secret goes
|
|
28
|
+
*
|
|
29
|
+
* The report carries the install's `client_secret`, and the endpoint comes out of a document the
|
|
30
|
+
* issuer serves. So the endpoint is held to the issuer's own ORIGIN (scheme, host and port,
|
|
31
|
+
* exactly), to `https:` (`http:` only on a loopback issuer, which is what the dev issuer is), and
|
|
32
|
+
* to no embedded credentials; and the POST is made with `redirect: 'manual'`, so a 30x is a
|
|
33
|
+
* failure and never a second hop for the secret. A refused endpoint sends nothing, is reported as
|
|
34
|
+
* `failed` like an unreachable issuer, and is logged once with its origin only (#1771): the
|
|
35
|
+
* origin is what is bound and shown, since a path and query are the issuer's own and may carry a token.
|
|
36
|
+
*
|
|
27
37
|
* Every report is best-effort and **never throws**: a login must never fail because the index
|
|
28
38
|
* could not be told. A lost report is what the repair exists for.
|
|
29
39
|
*
|
|
@@ -66,6 +76,7 @@ export declare function placesReporter(opts: {
|
|
|
66
76
|
identity: AuthChoice | null;
|
|
67
77
|
fetch?: FetchLike;
|
|
68
78
|
now?: () => number;
|
|
79
|
+
log?: (line: string) => void;
|
|
69
80
|
}): PlacesReporter | null;
|
|
70
81
|
/**
|
|
71
82
|
* Tell the pool what a resolve just established: `principal` non-null ⇒ the subject is bound
|
package/dist/places.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"places.d.ts","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0C,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAEH,8FAA8F;AAC9F,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE;AACrB,gFAAgF;GAC9E;IAAE,OAAO,EAAE,UAAU,CAAA;CAAE;AACzB,qFAAqF;GACnF;IAAE,OAAO,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtC;IAAE,OAAO,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACjE,qEAAqE;IACrE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/E;AAoDD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,QAAQ,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B,GAAG,cAAc,GAAG,IAAI,CAuDxB;AAoBD;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,GAAG,GAAE,MAAM,MAAiB,GAC3B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAanC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EACvC,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,GACV,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAAA;CAAE,CAAC,CAMjE;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,EAC3C,QAAQ,EAAE,cAAc,GAAG,IAAI,EAC/B,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAmC,GACzD,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAgBnC;AAED,mEAAmE;AACnE,wBAAgB,eAAe,IAAI,IAAI,CAItC"}
|
package/dist/places.js
CHANGED
|
@@ -4,6 +4,30 @@ import { globalFetch } from '@substrat-run/kernel';
|
|
|
4
4
|
const DISCOVERY_TTL_MS = 10 * 60_000;
|
|
5
5
|
/** Per isolate: issuer → where it takes reports (null = it keeps no index), and until when. */
|
|
6
6
|
const discovered = new Map();
|
|
7
|
+
const LOOPBACK_HOSTS = new Set(['localhost', '127.0.0.1', '[::1]']);
|
|
8
|
+
/** Why `endpoint` may not receive the client secret of `issuer`, or null when it may. */
|
|
9
|
+
function endpointRefusal(issuer, endpoint) {
|
|
10
|
+
let e;
|
|
11
|
+
let i;
|
|
12
|
+
try {
|
|
13
|
+
e = new URL(endpoint);
|
|
14
|
+
i = new URL(issuer);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return 'not a URL';
|
|
18
|
+
}
|
|
19
|
+
if (e.origin !== i.origin)
|
|
20
|
+
return `origin ${e.origin} is not the issuer's ${i.origin}`;
|
|
21
|
+
if (e.username || e.password)
|
|
22
|
+
return 'carries credentials';
|
|
23
|
+
if (e.protocol !== 'https:' && !(e.protocol === 'http:' && LOOPBACK_HOSTS.has(e.hostname))) {
|
|
24
|
+
return `scheme ${e.protocol} is not https`;
|
|
25
|
+
}
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
/** Per isolate: the refusals already logged, so a request path that repeats does not flood. */
|
|
29
|
+
const refusalLogged = new Set();
|
|
30
|
+
const REFUSAL_LOG_LIMIT = 100;
|
|
7
31
|
const reasonOf = (e) => (e instanceof Error ? e.message : String(e));
|
|
8
32
|
async function reportEndpointOf(issuer, fetchImpl, now) {
|
|
9
33
|
const cached = discovered.get(issuer);
|
|
@@ -36,16 +60,34 @@ export function placesReporter(opts) {
|
|
|
36
60
|
const { issuer, clientId, clientSecret } = identity;
|
|
37
61
|
const fetchImpl = opts.fetch ?? globalFetch;
|
|
38
62
|
const now = opts.now ?? Date.now;
|
|
63
|
+
const log = opts.log ?? ((line) => console.warn(line));
|
|
39
64
|
async function send(body) {
|
|
40
65
|
try {
|
|
41
66
|
const endpoint = await reportEndpointOf(issuer, fetchImpl, now());
|
|
42
67
|
if (!endpoint)
|
|
43
68
|
return { outcome: 'no-index' };
|
|
44
|
-
const
|
|
69
|
+
const refusal = endpointRefusal(issuer, endpoint);
|
|
70
|
+
if (refusal) {
|
|
71
|
+
// Logged with the endpoint's origin only: its path and query are the issuer's to keep.
|
|
72
|
+
const shown = new URL(endpoint).origin;
|
|
73
|
+
if (!refusalLogged.has(`${issuer}|${shown}`)) {
|
|
74
|
+
if (refusalLogged.size >= REFUSAL_LOG_LIMIT)
|
|
75
|
+
refusalLogged.delete(refusalLogged.values().next().value);
|
|
76
|
+
refusalLogged.add(`${issuer}|${shown}`);
|
|
77
|
+
log(`vertical-auth: places report to ${shown} refused — ${refusal}; the client secret was not sent`);
|
|
78
|
+
}
|
|
79
|
+
return { outcome: 'failed', reason: `places report endpoint refused: ${refusal}` };
|
|
80
|
+
}
|
|
81
|
+
// `redirect` is a field the runtime's fetch reads and `ConnectorRequestInit` does not name.
|
|
82
|
+
const init = {
|
|
45
83
|
method: 'POST',
|
|
46
84
|
headers: { 'content-type': 'application/json' },
|
|
47
85
|
body: JSON.stringify({ client_id: clientId, client_secret: clientSecret, ...body }),
|
|
48
|
-
|
|
86
|
+
redirect: 'manual',
|
|
87
|
+
};
|
|
88
|
+
const res = await fetchImpl(endpoint, init);
|
|
89
|
+
// With `redirect: 'manual'` a 30x (or the opaque redirect some runtimes hand back, status
|
|
90
|
+
// 0) is not `ok`, not a 4xx, and so lands in `failed` below: never followed.
|
|
49
91
|
if (res.status === 204 || res.ok)
|
|
50
92
|
return { outcome: 'sent' };
|
|
51
93
|
if (res.status >= 400 && res.status < 500)
|
|
@@ -146,5 +188,6 @@ export async function reportScopeMembers(directory, reporter, scopeId, log = (li
|
|
|
146
188
|
export function resetPlacesMemo() {
|
|
147
189
|
discovered.clear();
|
|
148
190
|
observed.clear();
|
|
191
|
+
refusalLogged.clear();
|
|
149
192
|
}
|
|
150
193
|
//# sourceMappingURL=places.js.map
|
package/dist/places.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"places.js","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"places.js","sourceRoot":"","sources":["../src/places.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@substrat-run/vertical-auth",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.3",
|
|
4
4
|
"description": "Pluggable auth for Substrat verticals — the AuthProvider contract, an OIDC provider (Supabase/Auth0/AuthHero/Keycloak), a full relying-party login flow, and a per-tenant identity Durable Object (Better Auth + sub→principal directory). Workers-targeted; the vertical worker bundles it.",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"repository": {
|
|
@@ -44,10 +44,10 @@
|
|
|
44
44
|
"better-auth": "^1.7.1",
|
|
45
45
|
"drizzle-orm": "^0.45.2",
|
|
46
46
|
"jose": "^6.2.3",
|
|
47
|
-
"@substrat-run/
|
|
48
|
-
"@substrat-run/
|
|
49
|
-
"@substrat-run/
|
|
50
|
-
"@substrat-run/
|
|
47
|
+
"@substrat-run/kernel": "^0.121.0",
|
|
48
|
+
"@substrat-run/psl": "^0.2.5",
|
|
49
|
+
"@substrat-run/contracts": "^0.121.0",
|
|
50
|
+
"@substrat-run/oidc-rp": "^0.9.0"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"hono": "^4.6.0"
|