@spine-event-engine/auth 2.0.0-snapshot.25 → 2.0.0-snapshot.28
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 +128 -11
- package/REFERENCE.md +166 -12
- package/dist/gateway/dynamic-unary-forwarder.d.ts +62 -3
- package/dist/gateway/dynamic-unary-forwarder.d.ts.map +1 -1
- package/dist/gateway/dynamic-unary-forwarder.js +189 -10
- package/dist/gateway/dynamic-unary-forwarder.js.map +1 -1
- package/dist/gateway/index.d.ts +5 -0
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +65 -7
- package/dist/gateway/index.js.map +1 -1
- package/dist/index.d.ts +60 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/native/index.d.ts +43 -3
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.js +178 -32
- package/dist/native/index.js.map +1 -1
- package/dist/oidc/contracts.d.ts +18 -4
- package/dist/oidc/contracts.d.ts.map +1 -1
- package/dist/oidc/flow-store.d.ts +143 -0
- package/dist/oidc/flow-store.d.ts.map +1 -0
- package/dist/oidc/flow-store.js +184 -0
- package/dist/oidc/flow-store.js.map +1 -0
- package/dist/oidc/index.d.ts +29 -9
- package/dist/oidc/index.d.ts.map +1 -1
- package/dist/oidc/index.js +611 -152
- package/dist/oidc/index.js.map +1 -1
- package/dist/oidc/persistent-flow-store.d.ts +117 -0
- package/dist/oidc/persistent-flow-store.d.ts.map +1 -0
- package/dist/oidc/persistent-flow-store.js +413 -0
- package/dist/oidc/persistent-flow-store.js.map +1 -0
- package/dist/oidc/records.d.ts +15 -0
- package/dist/oidc/records.d.ts.map +1 -0
- package/dist/oidc/records.js +91 -0
- package/dist/oidc/records.js.map +1 -0
- package/dist/providers/index.d.ts +10 -5
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +103 -30
- package/dist/providers/index.js.map +1 -1
- package/dist/request/index.d.ts +3 -0
- package/dist/request/index.d.ts.map +1 -1
- package/dist/request/index.js +17 -1
- package/dist/request/index.js.map +1 -1
- package/dist/sessions/cookies.d.ts +46 -8
- package/dist/sessions/cookies.d.ts.map +1 -1
- package/dist/sessions/cookies.js +269 -47
- package/dist/sessions/cookies.js.map +1 -1
- package/dist/sessions/opaque-session-store.d.ts +143 -0
- package/dist/sessions/opaque-session-store.d.ts.map +1 -0
- package/dist/sessions/opaque-session-store.js +185 -0
- package/dist/sessions/opaque-session-store.js.map +1 -0
- package/dist/sessions/opaque.d.ts +93 -106
- package/dist/sessions/opaque.d.ts.map +1 -1
- package/dist/sessions/opaque.js +501 -232
- package/dist/sessions/opaque.js.map +1 -1
- package/dist/sessions/persistent-opaque-session-store.d.ts +105 -0
- package/dist/sessions/persistent-opaque-session-store.d.ts.map +1 -0
- package/dist/sessions/persistent-opaque-session-store.js +333 -0
- package/dist/sessions/persistent-opaque-session-store.js.map +1 -0
- package/dist/sessions/persistent-token-revocations.d.ts +90 -0
- package/dist/sessions/persistent-token-revocations.d.ts.map +1 -0
- package/dist/sessions/persistent-token-revocations.js +422 -0
- package/dist/sessions/persistent-token-revocations.js.map +1 -0
- package/dist/sessions/session-lifetime.d.ts +67 -0
- package/dist/sessions/session-lifetime.d.ts.map +1 -0
- package/dist/sessions/session-lifetime.js +165 -0
- package/dist/sessions/session-lifetime.js.map +1 -0
- package/dist/sessions/session-record.d.ts +15 -0
- package/dist/sessions/session-record.d.ts.map +1 -0
- package/dist/sessions/session-record.js +109 -0
- package/dist/sessions/session-record.js.map +1 -0
- package/dist/sessions/signed.d.ts +5 -4
- package/dist/sessions/signed.d.ts.map +1 -1
- package/dist/sessions/signed.js +212 -74
- package/dist/sessions/signed.js.map +1 -1
- package/dist/subscriptions/index.d.ts +35 -3
- package/dist/subscriptions/index.d.ts.map +1 -1
- package/dist/subscriptions/index.js +680 -134
- package/dist/subscriptions/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opaque.js","sourceRoot":"","sources":["../../src/sessions/opaque.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opaque.js","sourceRoot":"","sources":["../../src/sessions/opaque.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
2
|
+
import { type OpaqueSessionRecord } from "@spine-event-engine/proto/auth";
|
|
3
|
+
import { type StorageFactory, type StorageGroup } from "@spine-event-engine/storage";
|
|
4
|
+
import type { OpaqueSessionStore } from "./opaque-session-store.js";
|
|
5
|
+
/**
|
|
6
|
+
* Construction policy and placement for a durable opaque-session store.
|
|
7
|
+
*/
|
|
8
|
+
export interface PersistentOpaqueStoreOptions {
|
|
9
|
+
/**
|
|
10
|
+
* Provider factory used only to acquire this store's independent handle.
|
|
11
|
+
*/
|
|
12
|
+
readonly storageFactory: StorageFactory;
|
|
13
|
+
/**
|
|
14
|
+
* Physical group selected for this session family.
|
|
15
|
+
*/
|
|
16
|
+
readonly group: StorageGroup;
|
|
17
|
+
/**
|
|
18
|
+
* Whether to prepare and check structures before returning; defaults to true.
|
|
19
|
+
*/
|
|
20
|
+
readonly createMissingStructures?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Returns the trusted latest allowed purge cutoff.
|
|
23
|
+
*
|
|
24
|
+
* @returns Current exact deadline.
|
|
25
|
+
*/
|
|
26
|
+
readonly clock?: () => Timestamp;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Durable opaque sessions backed by one independently closeable record handle.
|
|
30
|
+
*/
|
|
31
|
+
export declare class PersistentOpaqueSessionStore implements OpaqueSessionStore {
|
|
32
|
+
#private;
|
|
33
|
+
/**
|
|
34
|
+
* Binds the selected record handle and trusted maintenance clock.
|
|
35
|
+
*
|
|
36
|
+
* @param storage Independently closeable session handle.
|
|
37
|
+
* @param clock Supplies latest allowed purge cutoff.
|
|
38
|
+
*/
|
|
39
|
+
private constructor();
|
|
40
|
+
/**
|
|
41
|
+
* Acquires an independent handle and completes default physical preparation.
|
|
42
|
+
*
|
|
43
|
+
* @param options Provider placement and preparation policy.
|
|
44
|
+
* @returns Fully prepared store, or non-preparing store when explicitly selected.
|
|
45
|
+
*/
|
|
46
|
+
static create(options: PersistentOpaqueStoreOptions): Promise<PersistentOpaqueSessionStore>;
|
|
47
|
+
/**
|
|
48
|
+
* Creates a complete session only when its stable reference is absent.
|
|
49
|
+
*
|
|
50
|
+
* @param record Complete session to insert.
|
|
51
|
+
* @param signal Optional cancellation.
|
|
52
|
+
* @returns Whether insertion won.
|
|
53
|
+
*/
|
|
54
|
+
insert(record: OpaqueSessionRecord, signal?: AbortSignal): Promise<boolean>;
|
|
55
|
+
/**
|
|
56
|
+
* Reads one authoritative session by stable reference.
|
|
57
|
+
*
|
|
58
|
+
* @param id Stable session reference.
|
|
59
|
+
* @param signal Optional cancellation.
|
|
60
|
+
* @returns Detached current record, if present.
|
|
61
|
+
*/
|
|
62
|
+
read(id: string, signal?: AbortSignal): Promise<OpaqueSessionRecord | undefined>;
|
|
63
|
+
/**
|
|
64
|
+
* Replaces exactly one expected session record.
|
|
65
|
+
*
|
|
66
|
+
* @param expected Complete record that must still be current.
|
|
67
|
+
* @param next Replacement with the same stable reference.
|
|
68
|
+
* @param signal Optional cancellation.
|
|
69
|
+
* @returns Whether replacement won.
|
|
70
|
+
*/
|
|
71
|
+
replace(expected: OpaqueSessionRecord, next: OpaqueSessionRecord, signal?: AbortSignal): Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Deletes the current generation behind a stable reference.
|
|
74
|
+
*
|
|
75
|
+
* @param id Stable session reference.
|
|
76
|
+
* @param signal Optional cancellation.
|
|
77
|
+
* @returns Whether a record was removed.
|
|
78
|
+
*/
|
|
79
|
+
revoke(id: string, signal?: AbortSignal): Promise<boolean>;
|
|
80
|
+
/**
|
|
81
|
+
* Deletes only one complete expected record.
|
|
82
|
+
*
|
|
83
|
+
* @param expected Complete record that may be removed.
|
|
84
|
+
* @param signal Optional cancellation.
|
|
85
|
+
* @returns Whether the expected record was removed.
|
|
86
|
+
*/
|
|
87
|
+
remove(expected: OpaqueSessionRecord, signal?: AbortSignal): Promise<boolean>;
|
|
88
|
+
/**
|
|
89
|
+
* Removes exact deadlines at or before the trusted cutoff.
|
|
90
|
+
* A changed selected row ends the pass after its current expiry group, so
|
|
91
|
+
* other eligible rows can remain for later explicit maintenance.
|
|
92
|
+
*
|
|
93
|
+
* @param cutoff Current-or-earlier exact deadline.
|
|
94
|
+
* @param signal Optional maintenance cancellation.
|
|
95
|
+
* @returns Number removed by this completed pass.
|
|
96
|
+
*/
|
|
97
|
+
purgeExpired(cutoff: Timestamp, signal?: AbortSignal): Promise<number>;
|
|
98
|
+
/**
|
|
99
|
+
* Closes admission, drains admitted work, then releases this handle.
|
|
100
|
+
*
|
|
101
|
+
* @returns Repeatable close completion.
|
|
102
|
+
*/
|
|
103
|
+
close(): Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=persistent-opaque-session-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistent-opaque-session-store.d.ts","sourceRoot":"","sources":["../../src/sessions/persistent-opaque-session-store.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAQL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAG3C;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,4BAA6B,YAAW,kBAAkB;;IAarE;;;;;OAKG;IACH,OAAO;IAKP;;;;;OAKG;WACU,MAAM,CACjB,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,4BAA4B,CAAC;IA4BxC;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAU3E;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IAShF;;;;;;;OAOG;IACH,OAAO,CACL,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,mBAAmB,EACzB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,OAAO,CAAC;IAWnB;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1D;;;;;;OAMG;IACH,MAAM,CAAC,QAAQ,EAAE,mBAAmB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAS7E;;;;;;;;OAQG;IACH,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAUtE;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA6JvB"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, CodeMatters. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
5
|
+
* in compliance with the License. You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
10
|
+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
11
|
+
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
|
+
* the License.
|
|
13
|
+
*/
|
|
14
|
+
import { Time } from "@spine-event-engine/core/time";
|
|
15
|
+
import { OpaqueSessionRecordSchema, } from "@spine-event-engine/proto/auth";
|
|
16
|
+
import { ColumnTypes, defaultQueryCandidateLimit, RecordColumn, RecordSpec, } from "@spine-event-engine/storage";
|
|
17
|
+
import { StoragePreparations } from "@spine-event-engine/storage/provider";
|
|
18
|
+
import { SessionRecords } from "./session-record.js";
|
|
19
|
+
/**
|
|
20
|
+
* Durable opaque sessions backed by one independently closeable record handle.
|
|
21
|
+
*/
|
|
22
|
+
export class PersistentOpaqueSessionStore {
|
|
23
|
+
#storage;
|
|
24
|
+
#clock;
|
|
25
|
+
#closed = false;
|
|
26
|
+
#active = 0;
|
|
27
|
+
#drained;
|
|
28
|
+
#closing;
|
|
29
|
+
/**
|
|
30
|
+
* Binds the selected record handle and trusted maintenance clock.
|
|
31
|
+
*
|
|
32
|
+
* @param storage Independently closeable session handle.
|
|
33
|
+
* @param clock Supplies latest allowed purge cutoff.
|
|
34
|
+
*/
|
|
35
|
+
constructor(storage, clock) {
|
|
36
|
+
this.#storage = storage;
|
|
37
|
+
this.#clock = clock;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Acquires an independent handle and completes default physical preparation.
|
|
41
|
+
*
|
|
42
|
+
* @param options Provider placement and preparation policy.
|
|
43
|
+
* @returns Fully prepared store, or non-preparing store when explicitly selected.
|
|
44
|
+
*/
|
|
45
|
+
static async create(options) {
|
|
46
|
+
const storage = options.storageFactory.createRecordStorage(context, spec, options.group, {
|
|
47
|
+
prepareOnAccess: false,
|
|
48
|
+
});
|
|
49
|
+
try {
|
|
50
|
+
if (!storage.atomicCompareAndSet)
|
|
51
|
+
throw new Error("Opaque session storage requires atomic compare-and-set.");
|
|
52
|
+
if (options.createMissingStructures !== false)
|
|
53
|
+
await StoragePreparations.for(options.storageFactory).prepareRecord(context, spec, options.group, "create");
|
|
54
|
+
return new PersistentOpaqueSessionStore(storage, options.clock ?? Time.currentTime);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
try {
|
|
58
|
+
storage.close();
|
|
59
|
+
}
|
|
60
|
+
catch (closeError) {
|
|
61
|
+
throw new AggregateError([error, closeError], "Opaque session preparation and handle cleanup both failed.");
|
|
62
|
+
}
|
|
63
|
+
throw error;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Creates a complete session only when its stable reference is absent.
|
|
68
|
+
*
|
|
69
|
+
* @param record Complete session to insert.
|
|
70
|
+
* @param signal Optional cancellation.
|
|
71
|
+
* @returns Whether insertion won.
|
|
72
|
+
*/
|
|
73
|
+
insert(record, signal) {
|
|
74
|
+
return this.#run(async () => {
|
|
75
|
+
signal?.throwIfAborted();
|
|
76
|
+
SessionRecords.expiry(record);
|
|
77
|
+
const inserted = await this.#storage.compareAndSet(record.id, undefined, record);
|
|
78
|
+
if (!inserted)
|
|
79
|
+
signal?.throwIfAborted();
|
|
80
|
+
return inserted;
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Reads one authoritative session by stable reference.
|
|
85
|
+
*
|
|
86
|
+
* @param id Stable session reference.
|
|
87
|
+
* @param signal Optional cancellation.
|
|
88
|
+
* @returns Detached current record, if present.
|
|
89
|
+
*/
|
|
90
|
+
read(id, signal) {
|
|
91
|
+
return this.#run(async () => {
|
|
92
|
+
signal?.throwIfAborted();
|
|
93
|
+
const record = await this.#storage.read(id);
|
|
94
|
+
signal?.throwIfAborted();
|
|
95
|
+
return record;
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Replaces exactly one expected session record.
|
|
100
|
+
*
|
|
101
|
+
* @param expected Complete record that must still be current.
|
|
102
|
+
* @param next Replacement with the same stable reference.
|
|
103
|
+
* @param signal Optional cancellation.
|
|
104
|
+
* @returns Whether replacement won.
|
|
105
|
+
*/
|
|
106
|
+
replace(expected, next, signal) {
|
|
107
|
+
return this.#run(async () => {
|
|
108
|
+
signal?.throwIfAborted();
|
|
109
|
+
if (expected.id !== next.id)
|
|
110
|
+
throw new Error("Replacement must retain the stable reference.");
|
|
111
|
+
SessionRecords.expiry(next);
|
|
112
|
+
const replaced = await this.#storage.compareAndSet(expected.id, expected, next);
|
|
113
|
+
if (!replaced)
|
|
114
|
+
signal?.throwIfAborted();
|
|
115
|
+
return replaced;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Deletes the current generation behind a stable reference.
|
|
120
|
+
*
|
|
121
|
+
* @param id Stable session reference.
|
|
122
|
+
* @param signal Optional cancellation.
|
|
123
|
+
* @returns Whether a record was removed.
|
|
124
|
+
*/
|
|
125
|
+
revoke(id, signal) {
|
|
126
|
+
return this.#run(async () => {
|
|
127
|
+
signal?.throwIfAborted();
|
|
128
|
+
const removed = await this.#storage.delete(id);
|
|
129
|
+
signal?.throwIfAborted();
|
|
130
|
+
return removed;
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Deletes only one complete expected record.
|
|
135
|
+
*
|
|
136
|
+
* @param expected Complete record that may be removed.
|
|
137
|
+
* @param signal Optional cancellation.
|
|
138
|
+
* @returns Whether the expected record was removed.
|
|
139
|
+
*/
|
|
140
|
+
remove(expected, signal) {
|
|
141
|
+
return this.#run(async () => {
|
|
142
|
+
signal?.throwIfAborted();
|
|
143
|
+
const removed = await this.#storage.compareAndSet(expected.id, expected, undefined);
|
|
144
|
+
signal?.throwIfAborted();
|
|
145
|
+
return removed;
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Removes exact deadlines at or before the trusted cutoff.
|
|
150
|
+
* A changed selected row ends the pass after its current expiry group, so
|
|
151
|
+
* other eligible rows can remain for later explicit maintenance.
|
|
152
|
+
*
|
|
153
|
+
* @param cutoff Current-or-earlier exact deadline.
|
|
154
|
+
* @param signal Optional maintenance cancellation.
|
|
155
|
+
* @returns Number removed by this completed pass.
|
|
156
|
+
*/
|
|
157
|
+
purgeExpired(cutoff, signal) {
|
|
158
|
+
return this.#run(async () => {
|
|
159
|
+
const valid = SessionRecords.deadline(cutoff);
|
|
160
|
+
signal?.throwIfAborted();
|
|
161
|
+
if (SessionRecords.compare(valid, SessionRecords.deadline(this.#clock())) > 0)
|
|
162
|
+
throw new RangeError("Purge cutoff cannot be later than the trusted clock.");
|
|
163
|
+
return this.#purge(valid, signal);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Closes admission, drains admitted work, then releases this handle.
|
|
168
|
+
*
|
|
169
|
+
* @returns Repeatable close completion.
|
|
170
|
+
*/
|
|
171
|
+
close() {
|
|
172
|
+
if (this.#closing !== undefined)
|
|
173
|
+
return this.#closing;
|
|
174
|
+
this.#closed = true;
|
|
175
|
+
this.#closing = this.#finishClose();
|
|
176
|
+
return this.#closing;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Waits for admitted work and closes only the acquired record handle.
|
|
180
|
+
*
|
|
181
|
+
* @returns Completion after handle release.
|
|
182
|
+
*/
|
|
183
|
+
async #finishClose() {
|
|
184
|
+
if (this.#active > 0)
|
|
185
|
+
await new Promise((resolve) => (this.#drained = resolve));
|
|
186
|
+
this.#storage.close();
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Keeps one operation admitted through all asynchronous storage work.
|
|
190
|
+
*
|
|
191
|
+
* @typeParam T Result produced by the admitted operation.
|
|
192
|
+
* @param work Operation body.
|
|
193
|
+
* @returns Operation result.
|
|
194
|
+
*/
|
|
195
|
+
async #run(work) {
|
|
196
|
+
if (this.#closed)
|
|
197
|
+
throw new Error("Opaque session store is closed.");
|
|
198
|
+
this.#active += 1;
|
|
199
|
+
try {
|
|
200
|
+
return await work();
|
|
201
|
+
}
|
|
202
|
+
finally {
|
|
203
|
+
this.#active -= 1;
|
|
204
|
+
if (this.#active === 0)
|
|
205
|
+
this.#drained?.();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Discovers exact expiry ties and drains each one through ID keyset pages.
|
|
210
|
+
* A conditional race ends this pass after the selected expiry group.
|
|
211
|
+
*
|
|
212
|
+
* @param cutoff Latest eligible deadline.
|
|
213
|
+
* @param signal Optional cancellation.
|
|
214
|
+
* @returns Number of removed rows.
|
|
215
|
+
*/
|
|
216
|
+
async #purge(cutoff, signal) {
|
|
217
|
+
const cutoffKey = SessionRecords.orderKey(cutoff);
|
|
218
|
+
let completed;
|
|
219
|
+
let removed = 0;
|
|
220
|
+
for (;;) {
|
|
221
|
+
signal?.throwIfAborted();
|
|
222
|
+
const key = await this.#nextExpiry(cutoffKey, completed);
|
|
223
|
+
signal?.throwIfAborted();
|
|
224
|
+
if (key === undefined)
|
|
225
|
+
return removed;
|
|
226
|
+
const [count, raced] = await this.#purgeTie(key, cutoff, signal);
|
|
227
|
+
removed += count;
|
|
228
|
+
if (raced)
|
|
229
|
+
return removed;
|
|
230
|
+
completed = key;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Finds one distinct expiry using the provider's indexed range and order.
|
|
235
|
+
*
|
|
236
|
+
* @param cutoffKey Encoded latest eligible deadline.
|
|
237
|
+
* @param completed Previously completed expiry key, if any.
|
|
238
|
+
* @returns Next exact expiry key, if present.
|
|
239
|
+
*/
|
|
240
|
+
async #nextExpiry(cutoffKey, completed) {
|
|
241
|
+
const maximum = {
|
|
242
|
+
kind: "comparison",
|
|
243
|
+
column: "expires_order",
|
|
244
|
+
operator: "lessOrEqual",
|
|
245
|
+
value: cutoffKey,
|
|
246
|
+
};
|
|
247
|
+
const predicate = completed === undefined
|
|
248
|
+
? maximum
|
|
249
|
+
: {
|
|
250
|
+
kind: "all",
|
|
251
|
+
predicates: [
|
|
252
|
+
maximum,
|
|
253
|
+
{
|
|
254
|
+
kind: "comparison",
|
|
255
|
+
column: "expires_order",
|
|
256
|
+
operator: "greaterThan",
|
|
257
|
+
value: completed,
|
|
258
|
+
},
|
|
259
|
+
],
|
|
260
|
+
};
|
|
261
|
+
const entries = await this.#storage.queryPlanEntries({
|
|
262
|
+
predicate,
|
|
263
|
+
order: [{ column: "expires_order", direction: "asc" }],
|
|
264
|
+
limit: 1,
|
|
265
|
+
});
|
|
266
|
+
return entries[0] === undefined
|
|
267
|
+
? undefined
|
|
268
|
+
: SessionRecords.orderKey(SessionRecords.expiry(entries[0].record));
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Drains one exact expiry group in finite provider ID pages.
|
|
272
|
+
*
|
|
273
|
+
* @param key Encoded exact expiry group.
|
|
274
|
+
* @param cutoff Latest eligible deadline.
|
|
275
|
+
* @param signal Optional cancellation.
|
|
276
|
+
* @returns Removed rows and whether a changed row ended this maintenance pass.
|
|
277
|
+
*/
|
|
278
|
+
async #purgeTie(key, cutoff, signal) {
|
|
279
|
+
let after;
|
|
280
|
+
let removed = 0;
|
|
281
|
+
let raced = false;
|
|
282
|
+
for (;;) {
|
|
283
|
+
signal?.throwIfAborted();
|
|
284
|
+
const entries = await this.#storage.queryEntries({
|
|
285
|
+
filters: [{ column: "expires_order", value: key }],
|
|
286
|
+
sort: [{ field: "id" }],
|
|
287
|
+
limit: defaultQueryCandidateLimit,
|
|
288
|
+
...(after === undefined ? {} : { after }),
|
|
289
|
+
});
|
|
290
|
+
signal?.throwIfAborted();
|
|
291
|
+
if (entries.length === 0)
|
|
292
|
+
return [removed, raced];
|
|
293
|
+
for (const entry of entries) {
|
|
294
|
+
const result = await this.#removeEligible(entry.record, cutoff, signal);
|
|
295
|
+
if (result === undefined)
|
|
296
|
+
raced = true;
|
|
297
|
+
else
|
|
298
|
+
removed += result;
|
|
299
|
+
}
|
|
300
|
+
const last = entries.at(-1);
|
|
301
|
+
if (last === undefined)
|
|
302
|
+
return [removed, raced];
|
|
303
|
+
after = { id: last.id, values: [{ field: "id", value: last.id }] };
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Conditionally removes one selected row at most once.
|
|
308
|
+
*
|
|
309
|
+
* @param candidate Selected row snapshot.
|
|
310
|
+
* @param cutoff Latest eligible deadline.
|
|
311
|
+
* @param signal Optional cancellation.
|
|
312
|
+
* @returns One if deleted, zero if ineligible, or undefined if the row changed.
|
|
313
|
+
*/
|
|
314
|
+
async #removeEligible(candidate, cutoff, signal) {
|
|
315
|
+
signal?.throwIfAborted();
|
|
316
|
+
if (SessionRecords.compare(SessionRecords.expiry(candidate), cutoff) > 0)
|
|
317
|
+
return 0;
|
|
318
|
+
const removed = await this.#storage.compareAndSet(candidate.id, candidate, undefined);
|
|
319
|
+
signal?.throwIfAborted();
|
|
320
|
+
return removed ? 1 : undefined;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
const context = { name: "__AUTH_OPAQUE_SESSIONS__", multitenant: false };
|
|
324
|
+
const spec = new RecordSpec({
|
|
325
|
+
recordType: OpaqueSessionRecordSchema,
|
|
326
|
+
idKind: "string",
|
|
327
|
+
extractId: (record) => record.id,
|
|
328
|
+
columns: [
|
|
329
|
+
new RecordColumn("expires_order", ColumnTypes.fixedBytes(12), (record) => SessionRecords.orderKey(SessionRecords.expiry(record))),
|
|
330
|
+
],
|
|
331
|
+
indexes: [{ name: "expiry", columns: ["expires_order", "id"] }],
|
|
332
|
+
});
|
|
333
|
+
//# sourceMappingURL=persistent-opaque-session-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistent-opaque-session-store.js","sourceRoot":"","sources":["../../src/sessions/persistent-opaque-session-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Timestamp } from "@bufbuild/protobuf/wkt";
|
|
2
|
+
import { type StorageFactory, type StorageGroup } from "@spine-event-engine/storage";
|
|
3
|
+
import type { SignedTokenRevocation } from "./signed.js";
|
|
4
|
+
/**
|
|
5
|
+
* Placement, token scope and explicit preparation for durable revocations.
|
|
6
|
+
*/
|
|
7
|
+
export interface PersistentTokenRevocationsOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Factory supplying the selected revocation record handle.
|
|
10
|
+
*/
|
|
11
|
+
readonly storageFactory: StorageFactory;
|
|
12
|
+
/**
|
|
13
|
+
* Group shared by token-validating processes.
|
|
14
|
+
*/
|
|
15
|
+
readonly group: StorageGroup;
|
|
16
|
+
/**
|
|
17
|
+
* Exact issuer used to scope every token identifier.
|
|
18
|
+
*/
|
|
19
|
+
readonly issuer: string;
|
|
20
|
+
/**
|
|
21
|
+
* Exact single audience used to scope every token identifier.
|
|
22
|
+
*/
|
|
23
|
+
readonly audience: string;
|
|
24
|
+
/**
|
|
25
|
+
* Whether to prepare the selected structure before returning; defaults to true.
|
|
26
|
+
*/
|
|
27
|
+
readonly createMissingStructures?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Returns trusted current time for revocation validity reads and maintenance.
|
|
30
|
+
* Defaults to `Time.currentTime`; explicit purge cutoffs cannot exceed this time.
|
|
31
|
+
* @returns Current exact time in the Protobuf Timestamp domain.
|
|
32
|
+
*/
|
|
33
|
+
readonly clock?: () => Timestamp;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Atomic scoped revocations retained through the last token-acceptance instant.
|
|
37
|
+
*/
|
|
38
|
+
export declare class PersistentTokenRevocations implements SignedTokenRevocation {
|
|
39
|
+
#private;
|
|
40
|
+
/**
|
|
41
|
+
* Declares immediate revocation capability to signed sessions.
|
|
42
|
+
*/
|
|
43
|
+
readonly kind: "supported";
|
|
44
|
+
/**
|
|
45
|
+
* Binds one acquired handle to its scope and trusted maintenance clock.
|
|
46
|
+
* @param options Validated placement and scope.
|
|
47
|
+
* @param storage Selected record handle.
|
|
48
|
+
*/
|
|
49
|
+
private constructor();
|
|
50
|
+
/**
|
|
51
|
+
* Acquires and optionally prepares the selected indexed record family.
|
|
52
|
+
* With `createMissingStructures: false`, creation and later operations never
|
|
53
|
+
* check or create physical structures. Missing structures fail through ordinary
|
|
54
|
+
* storage operations. The default prepares the selected structure before return.
|
|
55
|
+
* @param options Shared factory, group, scope and preparation policy.
|
|
56
|
+
* @returns Ready revocation source, or a non-preparing handle when explicitly requested.
|
|
57
|
+
*/
|
|
58
|
+
static create(options: PersistentTokenRevocationsOptions): Promise<PersistentTokenRevocations>;
|
|
59
|
+
/**
|
|
60
|
+
* Reads the exact scoped token identifier by primary key.
|
|
61
|
+
* @param jti Token ID produced by the signed-session strategy.
|
|
62
|
+
* @returns Whether the scoped revocation is still within its inclusive deadline.
|
|
63
|
+
*/
|
|
64
|
+
isRevoked(jti: string): Promise<boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* Stores the maximum full last-acceptance deadline through atomic CAS.
|
|
67
|
+
* @param jti Token ID produced by the signed-session strategy.
|
|
68
|
+
* @param expiresAt Inclusive last valid instant, already including strategy skew.
|
|
69
|
+
* @returns Completion after a deadline no shorter than the supplied instant is stored.
|
|
70
|
+
*/
|
|
71
|
+
revoke(jti: string, expiresAt: Timestamp): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* Removes records strictly before an application-selected trusted cutoff.
|
|
74
|
+
* A record at the cutoff remains, because its token is still valid there.
|
|
75
|
+
* Concurrently extended records survive conditional deletion; a changed
|
|
76
|
+
* candidate may require a later invocation. Failure or cancellation rejects
|
|
77
|
+
* after any already completed removals.
|
|
78
|
+
* @param cutoff Current-or-earlier exact maintenance cutoff.
|
|
79
|
+
* @param signal Optional maintenance cancellation.
|
|
80
|
+
* @returns Number of confirmed removals in this invocation.
|
|
81
|
+
*/
|
|
82
|
+
purgeExpired(cutoff: Timestamp, signal?: AbortSignal): Promise<number>;
|
|
83
|
+
/**
|
|
84
|
+
* Closes the selected handle after fencing and draining admitted work.
|
|
85
|
+
* The shared factory remains open.
|
|
86
|
+
* @returns Completion after the selected handle is closed.
|
|
87
|
+
*/
|
|
88
|
+
close(): Promise<void>;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=persistent-token-revocations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistent-token-revocations.d.ts","sourceRoot":"","sources":["../../src/sessions/persistent-token-revocations.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAQL,KAAK,cAAc,EACnB,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD;;GAEG;AACH,MAAM,WAAW,iCAAiC;IAGhD;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAE3C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,SAAS,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,0BAA2B,YAAW,qBAAqB;;IACtE;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAG,WAAW,CAAU;IAoBrC;;;;OAIG;IACH,OAAO;IAWP;;;;;;;OAOG;WACU,MAAM,CACjB,OAAO,EAAE,iCAAiC,GACzC,OAAO,CAAC,0BAA0B,CAAC;IA2BtC;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAoBxC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBxD;;;;;;;;;OASG;IACH,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAUtE;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA+KvB"}
|