@emilia-protocol/gate 0.15.0 → 0.15.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/CHANGELOG.md +28 -0
- package/dist/aeb-consumption-store.d.ts +9 -1
- package/dist/aeb-consumption-store.d.ts.map +1 -1
- package/dist/aeb-consumption-store.js +42 -1
- package/dist/aeb-consumption-store.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/proposal-to-effect-postgres.d.ts +15 -0
- package/dist/proposal-to-effect-postgres.d.ts.map +1 -1
- package/dist/proposal-to-effect-postgres.js +67 -0
- package/dist/proposal-to-effect-postgres.js.map +1 -1
- package/dist/proposal-to-effect-status-head-store.d.ts +72 -0
- package/dist/proposal-to-effect-status-head-store.d.ts.map +1 -0
- package/dist/proposal-to-effect-status-head-store.js +355 -0
- package/dist/proposal-to-effect-status-head-store.js.map +1 -0
- package/dist/proposal-to-effect-status.d.ts +9 -9
- package/dist/proposal-to-effect-status.d.ts.map +1 -1
- package/dist/proposal-to-effect-status.js +33 -19
- package/dist/proposal-to-effect-status.js.map +1 -1
- package/package.json +6 -1
- package/proposal-to-effect-status-head-store.js +2 -0
- package/src/aeb-consumption-store.ts +48 -1
- package/src/index.ts +15 -1
- package/src/proposal-to-effect-postgres.ts +93 -0
- package/src/proposal-to-effect-status-head-store.ts +449 -0
- package/src/proposal-to-effect-status.ts +62 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proposal-to-effect-status.js","sourceRoot":"","sources":["../src/proposal-to-effect-status.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;GAOG;AAGH,OAAO,EACL,oBAAoB,
|
|
1
|
+
{"version":3,"file":"proposal-to-effect-status.js","sourceRoot":"","sources":["../src/proposal-to-effect-status.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@emilia-protocol/gate",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.1",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "https://github.com/emiliaprotocol/emilia-protocol.git",
|
|
@@ -269,6 +269,10 @@
|
|
|
269
269
|
"types": "./dist/proposal-to-effect-status.d.ts",
|
|
270
270
|
"import": "./proposal-to-effect-status.js"
|
|
271
271
|
},
|
|
272
|
+
"./proposal-to-effect-status-head-store": {
|
|
273
|
+
"types": "./dist/proposal-to-effect-status-head-store.d.ts",
|
|
274
|
+
"import": "./proposal-to-effect-status-head-store.js"
|
|
275
|
+
},
|
|
272
276
|
"./proposal-to-effect-postgres": {
|
|
273
277
|
"types": "./dist/proposal-to-effect-postgres.d.ts",
|
|
274
278
|
"import": "./proposal-to-effect-postgres.js"
|
|
@@ -325,6 +329,7 @@
|
|
|
325
329
|
"remedy-case-set-postgres.js",
|
|
326
330
|
"proposal-to-effect.js",
|
|
327
331
|
"proposal-to-effect-status.js",
|
|
332
|
+
"proposal-to-effect-status-head-store.js",
|
|
328
333
|
"proposal-to-effect-postgres.js",
|
|
329
334
|
"aeb-consumption-store.js",
|
|
330
335
|
"zk-range-proof.js",
|
|
@@ -136,6 +136,22 @@ BEGIN
|
|
|
136
136
|
RETURNING ${AEB_CONSUMPTION_OPERATION_TABLE}.operation_key;
|
|
137
137
|
END
|
|
138
138
|
$fn$;
|
|
139
|
+
CREATE OR REPLACE FUNCTION ep_aeb_private.has_replay_fence(
|
|
140
|
+
p_tenant_id TEXT, p_relying_party_id TEXT, p_replay_key TEXT
|
|
141
|
+
) RETURNS TABLE(fenced BOOLEAN)
|
|
142
|
+
LANGUAGE plpgsql VOLATILE SECURITY DEFINER SET search_path = ''
|
|
143
|
+
AS $fn$
|
|
144
|
+
BEGIN
|
|
145
|
+
PERFORM ep_aeb_private.assert_tenant_principal(p_tenant_id, FALSE);
|
|
146
|
+
RETURN QUERY SELECT EXISTS (
|
|
147
|
+
SELECT 1
|
|
148
|
+
FROM public.${AEB_CONSUMPTION_REPLAY_TABLE} AS fences
|
|
149
|
+
WHERE fences.tenant_id = p_tenant_id
|
|
150
|
+
AND fences.relying_party_id = p_relying_party_id
|
|
151
|
+
AND fences.replay_key = p_replay_key
|
|
152
|
+
);
|
|
153
|
+
END
|
|
154
|
+
$fn$;
|
|
139
155
|
CREATE OR REPLACE FUNCTION ep_aeb_private.reserve_replay_keys(
|
|
140
156
|
p_tenant_id TEXT, p_relying_party_id TEXT, p_operation_key TEXT, p_replay_keys TEXT[]
|
|
141
157
|
) RETURNS TABLE(replay_key TEXT)
|
|
@@ -200,6 +216,8 @@ ALTER FUNCTION ep_aeb_private.assert_tenant_principal(TEXT, BOOLEAN)
|
|
|
200
216
|
OWNER TO ${AEB_CONSUMPTION_OWNER_ROLE};
|
|
201
217
|
ALTER FUNCTION ep_aeb_private.reserve_operation(TEXT, TEXT, TEXT, TEXT)
|
|
202
218
|
OWNER TO ${AEB_CONSUMPTION_OWNER_ROLE};
|
|
219
|
+
ALTER FUNCTION ep_aeb_private.has_replay_fence(TEXT, TEXT, TEXT)
|
|
220
|
+
OWNER TO ${AEB_CONSUMPTION_OWNER_ROLE};
|
|
203
221
|
ALTER FUNCTION ep_aeb_private.reserve_replay_keys(TEXT, TEXT, TEXT, TEXT[])
|
|
204
222
|
OWNER TO ${AEB_CONSUMPTION_OWNER_ROLE};
|
|
205
223
|
ALTER FUNCTION ep_aeb_private.commit_operation(TEXT, TEXT, TEXT, TEXT)
|
|
@@ -211,7 +229,8 @@ ALTER FUNCTION ep_aeb_private.release_operation(TEXT, TEXT, TEXT, TEXT)
|
|
|
211
229
|
REVOKE ALL ON ALL FUNCTIONS IN SCHEMA ep_aeb_private
|
|
212
230
|
FROM PUBLIC, anon, authenticated, service_role;
|
|
213
231
|
GRANT USAGE ON SCHEMA ep_aeb_private TO ${AEB_CONSUMPTION_EXECUTOR_ROLE}, ${AEB_CONSUMPTION_RECOVERY_ROLE};
|
|
214
|
-
GRANT EXECUTE ON FUNCTION ep_aeb_private.
|
|
232
|
+
GRANT EXECUTE ON FUNCTION ep_aeb_private.has_replay_fence(TEXT, TEXT, TEXT),
|
|
233
|
+
ep_aeb_private.reserve_operation(TEXT, TEXT, TEXT, TEXT),
|
|
215
234
|
ep_aeb_private.reserve_replay_keys(TEXT, TEXT, TEXT, TEXT[]),
|
|
216
235
|
ep_aeb_private.commit_operation(TEXT, TEXT, TEXT, TEXT),
|
|
217
236
|
ep_aeb_private.release_operation(TEXT, TEXT, TEXT, TEXT)
|
|
@@ -222,6 +241,7 @@ REVOKE ${AEB_CONSUMPTION_OWNER_ROLE} FROM CURRENT_USER;`;
|
|
|
222
241
|
|
|
223
242
|
/** Exact statements issued by the store, exported for audit and deterministic fakes. */
|
|
224
243
|
export const AEB_CONSUMPTION_SQL = Object.freeze({
|
|
244
|
+
hasReplayFence: `SELECT fenced FROM ep_aeb_private.has_replay_fence($1::text, $2::text, $3::text)`,
|
|
225
245
|
reserveOperation: `SELECT operation_key FROM ep_aeb_private.reserve_operation($1::text, $2::text, $3::text, $4::text)`,
|
|
226
246
|
reserveReplayKeys: `SELECT replay_key FROM ep_aeb_private.reserve_replay_keys($1::text, $2::text, $3::text, $4::text[])`,
|
|
227
247
|
commitOperation: `SELECT operation_key FROM ep_aeb_private.commit_operation($1::text, $2::text, $3::text, $4::text)`,
|
|
@@ -270,6 +290,12 @@ export type AebRecoveryClaimAuthorizer = (
|
|
|
270
290
|
|
|
271
291
|
export interface PostgresAebDurableConsumptionStore extends AebDurableConsumptionStore {
|
|
272
292
|
recoveryClaimSupported: true;
|
|
293
|
+
/**
|
|
294
|
+
* Authenticated pre-reservation observation for one exact native replay key.
|
|
295
|
+
* A true result includes both RESERVED and CONSUMED fences. Atomic reserve
|
|
296
|
+
* remains the race-closing operation.
|
|
297
|
+
*/
|
|
298
|
+
hasReplayFence(replayKey: string): Promise<boolean>;
|
|
273
299
|
/**
|
|
274
300
|
* Rotate ownership of an existing RESERVED row after external authorization.
|
|
275
301
|
* The stored and replacement owner tokens are never returned or passed to
|
|
@@ -395,6 +421,27 @@ export function createPostgresAebDurableConsumptionStore({
|
|
|
395
421
|
atomicReplayFenced: true,
|
|
396
422
|
recoveryClaimSupported: true,
|
|
397
423
|
|
|
424
|
+
async hasReplayFence(replayKey): Promise<boolean> {
|
|
425
|
+
assertText(replayKey, 'native replay key', 4096);
|
|
426
|
+
const client = await pool.connect();
|
|
427
|
+
if (!client || typeof client.query !== 'function' || typeof client.release !== 'function') {
|
|
428
|
+
throw new TypeError('AEB consumption pg pool returned an invalid client');
|
|
429
|
+
}
|
|
430
|
+
try {
|
|
431
|
+
const result = await client.query(AEB_CONSUMPTION_SQL.hasReplayFence, [
|
|
432
|
+
tenantId, relyingPartyId, replayKey,
|
|
433
|
+
]);
|
|
434
|
+
const rows = exactRowCount(result, 'lookup replay fence');
|
|
435
|
+
const fenced = result.rows?.[0]?.fenced;
|
|
436
|
+
if (rows !== 1 || result.rows?.length !== 1 || typeof fenced !== 'boolean') {
|
|
437
|
+
throw new Error('lookup replay fence: malformed PostgreSQL result');
|
|
438
|
+
}
|
|
439
|
+
return fenced;
|
|
440
|
+
} finally {
|
|
441
|
+
client.release();
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
|
|
398
445
|
async reserve(key, replayKeys = []): Promise<AebReservationResult> {
|
|
399
446
|
assertText(key, 'operation key', 4096);
|
|
400
447
|
if (!Array.isArray(replayKeys)) {
|
package/src/index.ts
CHANGED
|
@@ -313,7 +313,21 @@ export {
|
|
|
313
313
|
proposalToEffectConsumptionNonce,
|
|
314
314
|
createProposalToEffect,
|
|
315
315
|
} from './proposal-to-effect.js';
|
|
316
|
-
export {
|
|
316
|
+
export {
|
|
317
|
+
PROPOSAL_TO_EFFECT_STATUS_HEAD_STORE_VERSION,
|
|
318
|
+
PROPOSAL_TO_EFFECT_STATUS_HEAD_TABLE,
|
|
319
|
+
PROPOSAL_TO_EFFECT_STATUS_HEAD_SQL,
|
|
320
|
+
createProposalToEffectStatusVerifier,
|
|
321
|
+
createPostgresProposalToEffectStatusHeadStore,
|
|
322
|
+
} from './proposal-to-effect-status.js';
|
|
323
|
+
export type {
|
|
324
|
+
PostgresProposalToEffectStatusHeadStoreOptions,
|
|
325
|
+
ProposalToEffectStatusHeadAcceptance,
|
|
326
|
+
ProposalToEffectStatusHeadAcceptanceInput,
|
|
327
|
+
ProposalToEffectStatusHeadPgClient,
|
|
328
|
+
ProposalToEffectStatusHeadPgPool,
|
|
329
|
+
ProposalToEffectStatusHeadStore,
|
|
330
|
+
} from './proposal-to-effect-status.js';
|
|
317
331
|
export {
|
|
318
332
|
PROPOSAL_TO_EFFECT_POSTGRES_DDL,
|
|
319
333
|
PROPOSAL_TO_EFFECT_POSTGRES_SQL,
|
|
@@ -68,6 +68,14 @@ export interface ProposalToEffectAttemptDigests {
|
|
|
68
68
|
config_digest: AebDigest;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
+
export interface ProposalToEffectPostgresAttemptLookup {
|
|
72
|
+
tenant_id: string;
|
|
73
|
+
provider_id: string;
|
|
74
|
+
provider_account_id: string;
|
|
75
|
+
environment: string;
|
|
76
|
+
request_digest: AebDigest;
|
|
77
|
+
}
|
|
78
|
+
|
|
71
79
|
export interface ProposalToEffectPostgresAttemptReference {
|
|
72
80
|
tenant_id: string;
|
|
73
81
|
provider_id: string;
|
|
@@ -110,6 +118,14 @@ export type ProposalToEffectPostgresRecoveryResult =
|
|
|
110
118
|
|
|
111
119
|
export interface ProposalToEffectPostgresStore
|
|
112
120
|
extends ProposalToEffectConsequenceAttemptStore {
|
|
121
|
+
/**
|
|
122
|
+
* Rediscover an attempt after a lost response using only the exact,
|
|
123
|
+
* server-derived provider tuple and request digest. This neither executes
|
|
124
|
+
* nor rotates custody and returns no owner or operational state.
|
|
125
|
+
*/
|
|
126
|
+
lookup(
|
|
127
|
+
input: ProposalToEffectPostgresAttemptLookup,
|
|
128
|
+
): Promise<ProposalToEffectPostgresAttemptReference | null>;
|
|
113
129
|
/**
|
|
114
130
|
* Read operational saga state by its complete durable namespace and request
|
|
115
131
|
* digest. Owner material is deliberately absent.
|
|
@@ -1037,6 +1053,9 @@ export const PROPOSAL_TO_EFFECT_POSTGRES_SQL = Object.freeze({
|
|
|
1037
1053
|
$1, $2, $3, $4, $5, $6, $7, $8, $9,
|
|
1038
1054
|
$10, $11, $12, $13, $14, $15, $16, $17, $18, $19
|
|
1039
1055
|
)`,
|
|
1056
|
+
lookup: `SELECT * FROM proposal_to_effect_private.lookup_attempt(
|
|
1057
|
+
$1, $2, $3, $4, $5
|
|
1058
|
+
)`,
|
|
1040
1059
|
read: `SELECT * FROM proposal_to_effect_private.read_attempt(
|
|
1041
1060
|
$1, $2, $3, $4, $5, $6
|
|
1042
1061
|
)`,
|
|
@@ -1120,6 +1139,25 @@ function assertAttemptReference(
|
|
|
1120
1139
|
assertBinding(value);
|
|
1121
1140
|
}
|
|
1122
1141
|
|
|
1142
|
+
function assertAttemptLookup(
|
|
1143
|
+
value: unknown,
|
|
1144
|
+
): asserts value is ProposalToEffectPostgresAttemptLookup {
|
|
1145
|
+
if (!isRecord(value) || !hasExactKeys(value, [
|
|
1146
|
+
'tenant_id',
|
|
1147
|
+
'provider_id',
|
|
1148
|
+
'provider_account_id',
|
|
1149
|
+
'environment',
|
|
1150
|
+
'request_digest',
|
|
1151
|
+
])) {
|
|
1152
|
+
throw new TypeError('consequence attempt lookup is invalid');
|
|
1153
|
+
}
|
|
1154
|
+
assertIdentifier(value.tenant_id, 'lookup tenant_id');
|
|
1155
|
+
assertIdentifier(value.provider_id, 'lookup provider_id');
|
|
1156
|
+
assertIdentifier(value.provider_account_id, 'lookup provider_account_id');
|
|
1157
|
+
assertIdentifier(value.environment, 'lookup environment');
|
|
1158
|
+
assertDigest(value.request_digest, 'lookup request_digest');
|
|
1159
|
+
}
|
|
1160
|
+
|
|
1123
1161
|
function assertResolvedDigests(value: unknown): asserts value is ProposalToEffectAttemptDigests {
|
|
1124
1162
|
if (!isRecord(value) || !hasExactKeys(value, [
|
|
1125
1163
|
'operation_digest',
|
|
@@ -1305,6 +1343,47 @@ function parseSnapshot(
|
|
|
1305
1343
|
};
|
|
1306
1344
|
}
|
|
1307
1345
|
|
|
1346
|
+
function parseLookup(
|
|
1347
|
+
result: ProposalToEffectPostgresQueryResult,
|
|
1348
|
+
input: ProposalToEffectPostgresAttemptLookup,
|
|
1349
|
+
): ProposalToEffectPostgresAttemptReference | null {
|
|
1350
|
+
assertResultEnvelope(result, 'lookup');
|
|
1351
|
+
if (result.rowCount === 0 && result.rows.length === 0) return null;
|
|
1352
|
+
const row = result.rows[0];
|
|
1353
|
+
if (result.rowCount !== 1 || result.rows.length !== 1 || !isRecord(row)
|
|
1354
|
+
|| !hasExactKeys(row, [
|
|
1355
|
+
'tenant_id',
|
|
1356
|
+
'provider_id',
|
|
1357
|
+
'provider_account_id',
|
|
1358
|
+
'environment',
|
|
1359
|
+
'attempt_id',
|
|
1360
|
+
'request_digest',
|
|
1361
|
+
])) {
|
|
1362
|
+
throw new Error('malformed Postgres result: lookup');
|
|
1363
|
+
}
|
|
1364
|
+
assertIdentifier(row.tenant_id, 'lookup tenant_id');
|
|
1365
|
+
assertIdentifier(row.provider_id, 'lookup provider_id');
|
|
1366
|
+
assertIdentifier(row.provider_account_id, 'lookup provider_account_id');
|
|
1367
|
+
assertIdentifier(row.environment, 'lookup environment');
|
|
1368
|
+
assertIdentifier(row.attempt_id, 'lookup attempt_id');
|
|
1369
|
+
assertDigest(row.request_digest, 'lookup request_digest');
|
|
1370
|
+
if (row.tenant_id !== input.tenant_id
|
|
1371
|
+
|| row.provider_id !== input.provider_id
|
|
1372
|
+
|| row.provider_account_id !== input.provider_account_id
|
|
1373
|
+
|| row.environment !== input.environment
|
|
1374
|
+
|| row.request_digest !== input.request_digest) {
|
|
1375
|
+
throw new Error('malformed Postgres result: lookup binding');
|
|
1376
|
+
}
|
|
1377
|
+
return {
|
|
1378
|
+
tenant_id: row.tenant_id,
|
|
1379
|
+
provider_id: row.provider_id,
|
|
1380
|
+
provider_account_id: row.provider_account_id,
|
|
1381
|
+
environment: row.environment,
|
|
1382
|
+
attempt_id: row.attempt_id,
|
|
1383
|
+
request_digest: row.request_digest,
|
|
1384
|
+
};
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1308
1387
|
function transitionAllowed(expected: string, next: string): boolean {
|
|
1309
1388
|
return (expected === 'RESERVED' && next === 'INVOKING')
|
|
1310
1389
|
|| (expected === 'INVOKING' && next === 'INDETERMINATE')
|
|
@@ -1666,6 +1745,20 @@ export function createProposalToEffectPostgresStore(
|
|
|
1666
1745
|
return result.applied;
|
|
1667
1746
|
},
|
|
1668
1747
|
|
|
1748
|
+
async lookup(input) {
|
|
1749
|
+
assertAttemptLookup(input);
|
|
1750
|
+
return retryAmbiguousCommit(pool, true, 'lookup', async (client) => parseLookup(
|
|
1751
|
+
await client.query(PROPOSAL_TO_EFFECT_POSTGRES_SQL.lookup, [
|
|
1752
|
+
input.tenant_id,
|
|
1753
|
+
input.provider_id,
|
|
1754
|
+
input.provider_account_id,
|
|
1755
|
+
input.environment,
|
|
1756
|
+
input.request_digest,
|
|
1757
|
+
]),
|
|
1758
|
+
input,
|
|
1759
|
+
));
|
|
1760
|
+
},
|
|
1761
|
+
|
|
1669
1762
|
async read(input) {
|
|
1670
1763
|
assertAttemptReference(input);
|
|
1671
1764
|
const snapshot = await readInternal(pool, input);
|