@substrat-run/contract-tests 0.88.0 → 0.90.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/dist/idempotency-suite.d.ts +3 -0
- package/dist/idempotency-suite.d.ts.map +1 -0
- package/dist/idempotency-suite.js +243 -0
- package/dist/idempotency-suite.js.map +1 -0
- package/dist/impersonation-suite.d.ts +3 -0
- package/dist/impersonation-suite.d.ts.map +1 -0
- package/dist/impersonation-suite.js +346 -0
- package/dist/impersonation-suite.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/modules.d.ts +217 -0
- package/dist/modules.d.ts.map +1 -1
- package/dist/modules.js +225 -4
- package/dist/modules.js.map +1 -1
- package/dist/node-only-suite.d.ts +4 -1
- package/dist/node-only-suite.d.ts.map +1 -1
- package/dist/node-only-suite.js +20 -10
- package/dist/node-only-suite.js.map +1 -1
- package/dist/timeline-suite.d.ts +3 -0
- package/dist/timeline-suite.d.ts.map +1 -0
- package/dist/timeline-suite.js +223 -0
- package/dist/timeline-suite.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"impersonation-suite.js","sourceRoot":"","sources":["../src/impersonation-suite.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,9 +2,12 @@ export { scopeHostContractSuite } from './scope-host-suite.js';
|
|
|
2
2
|
export type { ScopeHostFixture, ScopeHostSuiteOptions } from './scope-host-suite.js';
|
|
3
3
|
export { permissionContractSuite } from './permission-suite.js';
|
|
4
4
|
export { atomicContractSuite } from './atomic-suite.js';
|
|
5
|
+
export { impersonationContractSuite } from './impersonation-suite.js';
|
|
5
6
|
export { searchContractSuite } from './search-suite.js';
|
|
6
7
|
export { entityVersionContractSuite } from './entity-version-suite.js';
|
|
8
|
+
export { timelineContractSuite } from './timeline-suite.js';
|
|
7
9
|
export { concurrencyContractSuite } from './concurrency-suite.js';
|
|
10
|
+
export { idempotencyContractSuite } from './idempotency-suite.js';
|
|
8
11
|
export { listContractSuite } from './list-suite.js';
|
|
9
12
|
export { scheduleContractSuite } from './schedule-suite.js';
|
|
10
13
|
export { inputParseContractSuite } from './input-parse-suite.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxF,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC/F,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACxF,YAAY,EACV,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,GAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,aAAa,GACnB,MAAM,wBAAwB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
export { scopeHostContractSuite } from './scope-host-suite.js';
|
|
2
2
|
export { permissionContractSuite } from './permission-suite.js';
|
|
3
3
|
export { atomicContractSuite } from './atomic-suite.js';
|
|
4
|
+
export { impersonationContractSuite } from './impersonation-suite.js';
|
|
4
5
|
export { searchContractSuite } from './search-suite.js';
|
|
5
6
|
export { entityVersionContractSuite } from './entity-version-suite.js';
|
|
7
|
+
export { timelineContractSuite } from './timeline-suite.js';
|
|
6
8
|
export { concurrencyContractSuite } from './concurrency-suite.js';
|
|
9
|
+
export { idempotencyContractSuite } from './idempotency-suite.js';
|
|
7
10
|
export { listContractSuite } from './list-suite.js';
|
|
8
11
|
export { scheduleContractSuite } from './schedule-suite.js';
|
|
9
12
|
export { inputParseContractSuite } from './input-parse-suite.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOxF,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE/F,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOxF,OAAO,EACL,SAAS,EACT,SAAS,EACT,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,0BAA0B,EAC1B,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,mBAAmB,GAEpB,MAAM,wBAAwB,CAAC"}
|
package/dist/modules.d.ts
CHANGED
|
@@ -1142,6 +1142,118 @@ export declare const gateModManifest: {
|
|
|
1142
1142
|
}[] | undefined;
|
|
1143
1143
|
} | undefined;
|
|
1144
1144
|
};
|
|
1145
|
+
/**
|
|
1146
|
+
* K-42 (#868): a CONSUMER of `perm.acted`, whose whole job is to answer the
|
|
1147
|
+
* question a raw outbox read cannot — does the two-actor stamp survive the trip
|
|
1148
|
+
* from the stored row back into a `DomainEvent`? An adapter that writes the column
|
|
1149
|
+
* and drops it on the way out passes every assertion that reads SQL directly, and
|
|
1150
|
+
* still hands its consumers an event with no administrative actor on it.
|
|
1151
|
+
*
|
|
1152
|
+
* Only the impersonation suite reads `imp_echo`, so it is inert everywhere else.
|
|
1153
|
+
*/
|
|
1154
|
+
export declare const impersonationEchoManifest: {
|
|
1155
|
+
id: string & z.$brand<"ModuleId">;
|
|
1156
|
+
version: string;
|
|
1157
|
+
kernelContract: string;
|
|
1158
|
+
permissions: {
|
|
1159
|
+
key: string & z.$brand<"PermissionKey">;
|
|
1160
|
+
description: string;
|
|
1161
|
+
}[];
|
|
1162
|
+
events: {
|
|
1163
|
+
emits: {
|
|
1164
|
+
type: string;
|
|
1165
|
+
schemaVersion: number;
|
|
1166
|
+
}[];
|
|
1167
|
+
consumes: {
|
|
1168
|
+
type: string;
|
|
1169
|
+
schemaVersion: number;
|
|
1170
|
+
}[];
|
|
1171
|
+
};
|
|
1172
|
+
migrations: {
|
|
1173
|
+
journalDir: string;
|
|
1174
|
+
compatibleFrom: string;
|
|
1175
|
+
};
|
|
1176
|
+
attachmentTargets: {
|
|
1177
|
+
entityType: string;
|
|
1178
|
+
readPermission: string & z.$brand<"PermissionKey">;
|
|
1179
|
+
writePermission?: (string & z.$brand<"PermissionKey">) | undefined;
|
|
1180
|
+
}[];
|
|
1181
|
+
entityRelations?: {
|
|
1182
|
+
entityType: string;
|
|
1183
|
+
parentType: string;
|
|
1184
|
+
}[] | undefined;
|
|
1185
|
+
guards?: {
|
|
1186
|
+
before: string;
|
|
1187
|
+
predicate: string;
|
|
1188
|
+
config: Record<string, unknown>;
|
|
1189
|
+
}[] | undefined;
|
|
1190
|
+
schedules?: {
|
|
1191
|
+
operation: string;
|
|
1192
|
+
cadence: {
|
|
1193
|
+
everyMinutes: number;
|
|
1194
|
+
};
|
|
1195
|
+
input?: Record<string, unknown> | undefined;
|
|
1196
|
+
permissions: (string & z.$brand<"PermissionKey">)[];
|
|
1197
|
+
}[] | undefined;
|
|
1198
|
+
withdraws?: string[] | undefined;
|
|
1199
|
+
entitlementKey: string;
|
|
1200
|
+
envSpec?: {
|
|
1201
|
+
key: string;
|
|
1202
|
+
label?: string | undefined;
|
|
1203
|
+
description: string;
|
|
1204
|
+
placeholder?: string | undefined;
|
|
1205
|
+
required: boolean;
|
|
1206
|
+
secret: boolean;
|
|
1207
|
+
default?: string | undefined;
|
|
1208
|
+
group?: string | undefined;
|
|
1209
|
+
}[] | undefined;
|
|
1210
|
+
ownerGrants?: (string & z.$brand<"PermissionKey">)[] | undefined;
|
|
1211
|
+
entitlements?: string[] | undefined;
|
|
1212
|
+
provides?: string[] | undefined;
|
|
1213
|
+
requires?: string[] | undefined;
|
|
1214
|
+
api?: string | undefined;
|
|
1215
|
+
searchables?: {
|
|
1216
|
+
entityType: string;
|
|
1217
|
+
fields: string[];
|
|
1218
|
+
table?: string | undefined;
|
|
1219
|
+
idColumn?: string | undefined;
|
|
1220
|
+
tokenizer?: "prefix" | "substring" | undefined;
|
|
1221
|
+
}[] | undefined;
|
|
1222
|
+
lists?: {
|
|
1223
|
+
entityType: string;
|
|
1224
|
+
sortable: string[];
|
|
1225
|
+
filterable?: string[] | undefined;
|
|
1226
|
+
table?: string | undefined;
|
|
1227
|
+
idColumn?: string | undefined;
|
|
1228
|
+
}[] | undefined;
|
|
1229
|
+
ui?: {
|
|
1230
|
+
routes?: {
|
|
1231
|
+
path: string;
|
|
1232
|
+
screen: string;
|
|
1233
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
1234
|
+
}[] | undefined;
|
|
1235
|
+
nav?: {
|
|
1236
|
+
label: string;
|
|
1237
|
+
icon?: string | undefined;
|
|
1238
|
+
to: string;
|
|
1239
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
1240
|
+
}[] | undefined;
|
|
1241
|
+
entityViews?: {
|
|
1242
|
+
entityType: string;
|
|
1243
|
+
view: string;
|
|
1244
|
+
}[] | undefined;
|
|
1245
|
+
widgets?: {
|
|
1246
|
+
slot: string;
|
|
1247
|
+
component: string;
|
|
1248
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
1249
|
+
}[] | undefined;
|
|
1250
|
+
settingsPanels?: {
|
|
1251
|
+
label: string;
|
|
1252
|
+
component: string;
|
|
1253
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
1254
|
+
}[] | undefined;
|
|
1255
|
+
} | undefined;
|
|
1256
|
+
};
|
|
1145
1257
|
export declare const permModManifest: {
|
|
1146
1258
|
id: string & z.$brand<"ModuleId">;
|
|
1147
1259
|
version: string;
|
|
@@ -1257,6 +1369,7 @@ export declare const victimMod: ModuleRegistration;
|
|
|
1257
1369
|
export declare const withdrawLateMod: ModuleRegistration;
|
|
1258
1370
|
export declare const lateMod: ModuleRegistration;
|
|
1259
1371
|
export declare const billedMod: ModuleRegistration;
|
|
1372
|
+
export declare const impersonationEchoMod: ModuleRegistration;
|
|
1260
1373
|
export declare const permMod: ModuleRegistration;
|
|
1261
1374
|
export declare const connectorModManifest: {
|
|
1262
1375
|
id: string & z.$brand<"ModuleId">;
|
|
@@ -1808,6 +1921,110 @@ export declare const concurrencyModManifest: {
|
|
|
1808
1921
|
} | undefined;
|
|
1809
1922
|
};
|
|
1810
1923
|
export declare const concurrencyMod: ModuleRegistration;
|
|
1924
|
+
export declare const idempotencyModManifest: {
|
|
1925
|
+
id: string & z.$brand<"ModuleId">;
|
|
1926
|
+
version: string;
|
|
1927
|
+
kernelContract: string;
|
|
1928
|
+
permissions: {
|
|
1929
|
+
key: string & z.$brand<"PermissionKey">;
|
|
1930
|
+
description: string;
|
|
1931
|
+
}[];
|
|
1932
|
+
events: {
|
|
1933
|
+
emits: {
|
|
1934
|
+
type: string;
|
|
1935
|
+
schemaVersion: number;
|
|
1936
|
+
}[];
|
|
1937
|
+
consumes: {
|
|
1938
|
+
type: string;
|
|
1939
|
+
schemaVersion: number;
|
|
1940
|
+
}[];
|
|
1941
|
+
};
|
|
1942
|
+
migrations: {
|
|
1943
|
+
journalDir: string;
|
|
1944
|
+
compatibleFrom: string;
|
|
1945
|
+
};
|
|
1946
|
+
attachmentTargets: {
|
|
1947
|
+
entityType: string;
|
|
1948
|
+
readPermission: string & z.$brand<"PermissionKey">;
|
|
1949
|
+
writePermission?: (string & z.$brand<"PermissionKey">) | undefined;
|
|
1950
|
+
}[];
|
|
1951
|
+
entityRelations?: {
|
|
1952
|
+
entityType: string;
|
|
1953
|
+
parentType: string;
|
|
1954
|
+
}[] | undefined;
|
|
1955
|
+
guards?: {
|
|
1956
|
+
before: string;
|
|
1957
|
+
predicate: string;
|
|
1958
|
+
config: Record<string, unknown>;
|
|
1959
|
+
}[] | undefined;
|
|
1960
|
+
schedules?: {
|
|
1961
|
+
operation: string;
|
|
1962
|
+
cadence: {
|
|
1963
|
+
everyMinutes: number;
|
|
1964
|
+
};
|
|
1965
|
+
input?: Record<string, unknown> | undefined;
|
|
1966
|
+
permissions: (string & z.$brand<"PermissionKey">)[];
|
|
1967
|
+
}[] | undefined;
|
|
1968
|
+
withdraws?: string[] | undefined;
|
|
1969
|
+
entitlementKey: string;
|
|
1970
|
+
envSpec?: {
|
|
1971
|
+
key: string;
|
|
1972
|
+
label?: string | undefined;
|
|
1973
|
+
description: string;
|
|
1974
|
+
placeholder?: string | undefined;
|
|
1975
|
+
required: boolean;
|
|
1976
|
+
secret: boolean;
|
|
1977
|
+
default?: string | undefined;
|
|
1978
|
+
group?: string | undefined;
|
|
1979
|
+
}[] | undefined;
|
|
1980
|
+
ownerGrants?: (string & z.$brand<"PermissionKey">)[] | undefined;
|
|
1981
|
+
entitlements?: string[] | undefined;
|
|
1982
|
+
provides?: string[] | undefined;
|
|
1983
|
+
requires?: string[] | undefined;
|
|
1984
|
+
api?: string | undefined;
|
|
1985
|
+
searchables?: {
|
|
1986
|
+
entityType: string;
|
|
1987
|
+
fields: string[];
|
|
1988
|
+
table?: string | undefined;
|
|
1989
|
+
idColumn?: string | undefined;
|
|
1990
|
+
tokenizer?: "prefix" | "substring" | undefined;
|
|
1991
|
+
}[] | undefined;
|
|
1992
|
+
lists?: {
|
|
1993
|
+
entityType: string;
|
|
1994
|
+
sortable: string[];
|
|
1995
|
+
filterable?: string[] | undefined;
|
|
1996
|
+
table?: string | undefined;
|
|
1997
|
+
idColumn?: string | undefined;
|
|
1998
|
+
}[] | undefined;
|
|
1999
|
+
ui?: {
|
|
2000
|
+
routes?: {
|
|
2001
|
+
path: string;
|
|
2002
|
+
screen: string;
|
|
2003
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
2004
|
+
}[] | undefined;
|
|
2005
|
+
nav?: {
|
|
2006
|
+
label: string;
|
|
2007
|
+
icon?: string | undefined;
|
|
2008
|
+
to: string;
|
|
2009
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
2010
|
+
}[] | undefined;
|
|
2011
|
+
entityViews?: {
|
|
2012
|
+
entityType: string;
|
|
2013
|
+
view: string;
|
|
2014
|
+
}[] | undefined;
|
|
2015
|
+
widgets?: {
|
|
2016
|
+
slot: string;
|
|
2017
|
+
component: string;
|
|
2018
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
2019
|
+
}[] | undefined;
|
|
2020
|
+
settingsPanels?: {
|
|
2021
|
+
label: string;
|
|
2022
|
+
component: string;
|
|
2023
|
+
permission: string & z.$brand<"PermissionKey">;
|
|
2024
|
+
}[] | undefined;
|
|
2025
|
+
} | undefined;
|
|
2026
|
+
};
|
|
2027
|
+
export declare const idempotencyMod: ModuleRegistration;
|
|
1811
2028
|
export declare const contractTestModules: ModuleRegistration[];
|
|
1812
2029
|
export declare const brokenModManifest: {
|
|
1813
2030
|
id: string & z.$brand<"ModuleId">;
|
package/dist/modules.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"modules.d.ts","sourceRoot":"","sources":["../src/modules.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EASL,CAAC,EAIF,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAML,KAAK,kBAAkB,EAEvB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAI9B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU1B,CAAC;AAMH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAa9B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkB1B,CAAC;AAMH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS1B,CAAC;AAKH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS5B,CAAC;AAOH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe7B,CAAC;AAIH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUhC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS5B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAU/B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS1B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYpC,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuB1B,CAAC;AA6BH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CA2MhF,CAAC;AAgRF,eAAO,MAAM,OAAO,EAAE,kBA4BrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,kBAkBvB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,kBAsCzB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,kBAqCrB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,kBAwBxB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,kBAYrB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,kBAAwD,CAAC;AAExF,eAAO,MAAM,SAAS,EAAE,kBAOvB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,kBAAuD,CAAC;AAEtF,eAAO,MAAM,OAAO,EAAE,kBAQrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,kBAWvB,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,kBAwBlC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,kBAkDrB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmB/B,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,EAAE,kBA0E1B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,kBAAkB,EAS1D,CAAC;AAEF;;;;;GAKG;AAGH;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoB1B,CAAC;AAEH,eAAO,MAAM,OAAO,EAAE,kBAqDrB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe5B,CAAC;AAEH,eAAO,MAAM,SAAS,EAAE,kBAmDvB,CAAC;AAIF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS3B,CAAC;AA+CH,eAAO,MAAM,QAAQ,EAAE,kBAQtB,CAAC;AAIF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYjC,CAAC;AAmGH,eAAO,MAAM,cAAc,EAAE,kBAY5B,CAAC;AAIF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CASjC,CAAC;AAwFH,eAAO,MAAM,cAAc,EAAE,kBAa5B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBAAkB,EAiBnD,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAS5B,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,EAAE,kBASvB,CAAC"}
|
package/dist/modules.js
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* validates) draw from this one source. The assertions live in the suites; the
|
|
8
8
|
* artifacts live here.
|
|
9
9
|
*/
|
|
10
|
-
import { dataSubjectId, moduleManifest, operationInputsOf, operationConcurrencyOf, permissionKey, principalId, z, } from '@substrat-run/contracts';
|
|
11
|
-
import { assertAllowed, } from '@substrat-run/kernel';
|
|
10
|
+
import { dataSubjectId, moduleManifest, operationInputsOf, operationConcurrencyOf, operationIdempotencyOptOutsOf, IDEMPOTENCY_RESULT_LIMIT, permissionKey, principalId, z, } from '@substrat-run/contracts';
|
|
11
|
+
import { assertAllowed, readHistory, readTimeline, ulid, } from '@substrat-run/kernel';
|
|
12
12
|
// -- manifests ---------------------------------------------------------------
|
|
13
13
|
export const testModManifest = moduleManifest.parse({
|
|
14
14
|
id: '@test/mod',
|
|
@@ -170,6 +170,28 @@ export const gateModManifest = moduleManifest.parse({
|
|
|
170
170
|
attachmentTargets: [],
|
|
171
171
|
entitlementKey: 'gate',
|
|
172
172
|
});
|
|
173
|
+
/**
|
|
174
|
+
* K-42 (#868): a CONSUMER of `perm.acted`, whose whole job is to answer the
|
|
175
|
+
* question a raw outbox read cannot — does the two-actor stamp survive the trip
|
|
176
|
+
* from the stored row back into a `DomainEvent`? An adapter that writes the column
|
|
177
|
+
* and drops it on the way out passes every assertion that reads SQL directly, and
|
|
178
|
+
* still hands its consumers an event with no administrative actor on it.
|
|
179
|
+
*
|
|
180
|
+
* Only the impersonation suite reads `imp_echo`, so it is inert everywhere else.
|
|
181
|
+
*/
|
|
182
|
+
export const impersonationEchoManifest = moduleManifest.parse({
|
|
183
|
+
id: '@imp/echo',
|
|
184
|
+
version: '1.0.0',
|
|
185
|
+
kernelContract: '^0.0.1',
|
|
186
|
+
permissions: [],
|
|
187
|
+
events: {
|
|
188
|
+
emits: [],
|
|
189
|
+
consumes: [{ type: 'perm.acted', schemaVersion: 1 }],
|
|
190
|
+
},
|
|
191
|
+
migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
|
|
192
|
+
attachmentTargets: [],
|
|
193
|
+
entitlementKey: 'imp-echo',
|
|
194
|
+
});
|
|
173
195
|
export const permModManifest = moduleManifest.parse({
|
|
174
196
|
id: '@perm/mod',
|
|
175
197
|
version: '1.0.0',
|
|
@@ -294,6 +316,46 @@ export const contractTestBareOps = {
|
|
|
294
316
|
// documented hole, pinned deliberately so it is a known property rather than a
|
|
295
317
|
// surprise. The fix is a compile-checked `concurrency` against `emits` (#129),
|
|
296
318
|
// not a change here.
|
|
319
|
+
// -- #800: the supported read of an entity's history ------------------------
|
|
320
|
+
// Emit N events about one entity in ONE invocation. `ctx.now()` is stable for
|
|
321
|
+
// the whole operation (#812), so every row lands with the IDENTICAL
|
|
322
|
+
// `occurred_at` — which is what makes a timestamp cursor lose rows, and what
|
|
323
|
+
// the suite needs to be able to construct on purpose rather than hope for.
|
|
324
|
+
'test/emit-burst': ((ctx, input) => {
|
|
325
|
+
for (let n = 0; n < input.count; n++) {
|
|
326
|
+
ctx.emit({
|
|
327
|
+
type: 'test.happened',
|
|
328
|
+
schemaVersion: 1,
|
|
329
|
+
entity: { entityType: 'test-thing', entityId: input.entityId },
|
|
330
|
+
piiClass: 'none',
|
|
331
|
+
payload: { n },
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
return ctx.now();
|
|
335
|
+
}),
|
|
336
|
+
// The reads under test. They take the whole page shape so the suite can drive
|
|
337
|
+
// limit, cursor and order without a variant operation per case.
|
|
338
|
+
'test/timeline': ((ctx, input) => readTimeline(ctx, { entityType: input.entityType, entityId: input.entityId }, input)),
|
|
339
|
+
'test/history': ((ctx, input) => readHistory(ctx, { entityType: input.entityType, entityId: input.entityId }, input)),
|
|
340
|
+
// An event carrying PII, so the suite can shred it and assert the history
|
|
341
|
+
// degrades to a null payload instead of vanishing or throwing.
|
|
342
|
+
//
|
|
343
|
+
// It CHECKS before it emits, unlike `test/emit-about`, and that is the point
|
|
344
|
+
// rather than politeness: `authorization` is stamped from the checks the
|
|
345
|
+
// operation passed (K-34), so an operation that checks nothing writes a null
|
|
346
|
+
// there — indistinguishable from a row predating the column. A history read
|
|
347
|
+
// has to be driven against an event that actually recorded its authority.
|
|
348
|
+
'test/emit-about-with-payload': (async (ctx, input) => {
|
|
349
|
+
assertAllowed(await ctx.check(permissionKey.parse('testmod:use')));
|
|
350
|
+
ctx.emit({
|
|
351
|
+
type: 'test.happened',
|
|
352
|
+
schemaVersion: 1,
|
|
353
|
+
entity: { entityType: 'test-thing', entityId: input.entityId },
|
|
354
|
+
piiClass: 'direct',
|
|
355
|
+
subjectId: dataSubjectId.parse(input.subject),
|
|
356
|
+
payload: { said: input.said },
|
|
357
|
+
});
|
|
358
|
+
}),
|
|
297
359
|
'test/mutate-silently': ((ctx) => {
|
|
298
360
|
ctx.sql.exec('CREATE TABLE IF NOT EXISTS quiet (n INTEGER NOT NULL)');
|
|
299
361
|
ctx.sql.exec('INSERT INTO quiet (n) VALUES (1)');
|
|
@@ -374,8 +436,33 @@ const authorizedReadOp = async (ctx, input) => {
|
|
|
374
436
|
assertAllowed(await ctx.check(input.permission));
|
|
375
437
|
return ctx.sql.query('SELECT COUNT(*) AS n FROM testmod_items')[0].n;
|
|
376
438
|
};
|
|
377
|
-
const readOutboxOp = (ctx) => ctx.sql.query('SELECT id, type, authorization FROM _substrat_outbox ORDER BY id');
|
|
378
|
-
const readDenialsOp = (ctx) => ctx.sql.query(
|
|
439
|
+
const readOutboxOp = (ctx) => ctx.sql.query('SELECT id, type, authorization, impersonation FROM _substrat_outbox ORDER BY id');
|
|
440
|
+
const readDenialsOp = (ctx) => ctx.sql.query(`SELECT actor, permission, tenant_id, scope_id, operation, impersonation
|
|
441
|
+
FROM _substrat_denials ORDER BY id`);
|
|
442
|
+
// -- K-42 fixtures (#868) ----------------------------------------------------
|
|
443
|
+
// A read, a bare-SQL write, and an intent. The bare-SQL write is the one that
|
|
444
|
+
// matters: it goes through NO effecting verb, so a read-only session that only
|
|
445
|
+
// refused `ctx.emit` would let it commit. Its table is created in the handler
|
|
446
|
+
// rather than in a migration deliberately — this module has none, and a DDL
|
|
447
|
+
// statement is a write like any other, so a rolled-back session leaves no table
|
|
448
|
+
// behind either.
|
|
449
|
+
const noteWriteOp = async (ctx, input) => {
|
|
450
|
+
assertAllowed(await ctx.check(permissionKey.parse('perm:use')));
|
|
451
|
+
ctx.sql.exec('CREATE TABLE IF NOT EXISTS perm_notes (note TEXT NOT NULL)');
|
|
452
|
+
ctx.sql.exec('INSERT INTO perm_notes (note) VALUES (?)', [input.note]);
|
|
453
|
+
return { wrote: input.note };
|
|
454
|
+
};
|
|
455
|
+
const noteReadOp = (ctx) => {
|
|
456
|
+
ctx.sql.exec('CREATE TABLE IF NOT EXISTS perm_notes (note TEXT NOT NULL)');
|
|
457
|
+
return ctx.sql.query('SELECT note FROM perm_notes ORDER BY note').map((r) => r.note);
|
|
458
|
+
};
|
|
459
|
+
const requestIntentOp = async (ctx, input) => {
|
|
460
|
+
assertAllowed(await ctx.check(permissionKey.parse('perm:use')));
|
|
461
|
+
return ctx.requestPlatform({ kind: input.kind, payload: {} });
|
|
462
|
+
};
|
|
463
|
+
const readIntentsOp = (ctx) => ctx.sql.query('SELECT kind, requested_by, impersonation FROM _substrat_platform_requests ORDER BY id');
|
|
464
|
+
/** The identity a caller is running as, as `ctx` reports it — never the staff actor. */
|
|
465
|
+
const whoAmIOp = (ctx) => ctx.principal;
|
|
379
466
|
// -- #770 sub-transaction handlers -------------------------------------------
|
|
380
467
|
// Every write a sub-transaction can make is exercised in one place: a row, an
|
|
381
468
|
// event, a link, and a platform intent. The storage transaction reaches all four
|
|
@@ -688,6 +775,28 @@ export const billedMod = {
|
|
|
688
775
|
'billed/list-entitlements': (async (ctx) => ctx.entitlements()),
|
|
689
776
|
},
|
|
690
777
|
};
|
|
778
|
+
export const impersonationEchoMod = {
|
|
779
|
+
manifest: impersonationEchoManifest,
|
|
780
|
+
migrations: [
|
|
781
|
+
{
|
|
782
|
+
version: '0001-init',
|
|
783
|
+
sql: 'CREATE TABLE imp_echo (event_id TEXT PRIMARY KEY, impersonation TEXT)',
|
|
784
|
+
},
|
|
785
|
+
],
|
|
786
|
+
operations: {
|
|
787
|
+
'imp-echo/seen': ((ctx) => ctx.sql.query('SELECT event_id, impersonation FROM imp_echo ORDER BY event_id')),
|
|
788
|
+
},
|
|
789
|
+
consumers: {
|
|
790
|
+
// The stamp as the CONSUMER received it, JSON-encoded so an absent one and a
|
|
791
|
+
// null one stay distinguishable in the assertion.
|
|
792
|
+
'perm.acted': ((ctx, event) => {
|
|
793
|
+
ctx.sql.exec('INSERT INTO imp_echo (event_id, impersonation) VALUES (?, ?)', [
|
|
794
|
+
event.id,
|
|
795
|
+
event.impersonation === undefined ? null : JSON.stringify(event.impersonation),
|
|
796
|
+
]);
|
|
797
|
+
}),
|
|
798
|
+
},
|
|
799
|
+
};
|
|
691
800
|
export const permMod = {
|
|
692
801
|
manifest: permModManifest,
|
|
693
802
|
operations: {
|
|
@@ -697,6 +806,12 @@ export const permMod = {
|
|
|
697
806
|
'perm/authorized-read': authorizedReadOp,
|
|
698
807
|
'perm/read-outbox': readOutboxOp,
|
|
699
808
|
'perm/read-denials': readDenialsOp,
|
|
809
|
+
// K-42 (#868)
|
|
810
|
+
'perm/write-note': noteWriteOp,
|
|
811
|
+
'perm/read-notes': noteReadOp,
|
|
812
|
+
'perm/request-intent': requestIntentOp,
|
|
813
|
+
'perm/read-intents': readIntentsOp,
|
|
814
|
+
'perm/whoami': whoAmIOp,
|
|
700
815
|
// #304: read the request-time entitlement view — used by the scope-local (projected)
|
|
701
816
|
// and CP-less path tests to prove a hosted vertical reads entitlements without a CP.
|
|
702
817
|
'perm/read-entitlement': (async (ctx, key) => ctx.entitlement(key)),
|
|
@@ -1164,11 +1279,116 @@ export const concurrencyMod = {
|
|
|
1164
1279
|
operationInputs: operationInputsOf(concurrencyDeclaration),
|
|
1165
1280
|
operationConcurrency: operationConcurrencyOf(concurrencyDeclaration),
|
|
1166
1281
|
};
|
|
1282
|
+
// -- #116: request idempotency ------------------------------------------------
|
|
1283
|
+
export const idempotencyModManifest = moduleManifest.parse({
|
|
1284
|
+
id: '@test/idempotency',
|
|
1285
|
+
version: '1.0.0',
|
|
1286
|
+
kernelContract: '^0.0.1',
|
|
1287
|
+
permissions: [{ key: 'idem:use', description: 'the idempotency fixture permission' }],
|
|
1288
|
+
events: { emits: [{ type: 'idem.created', schemaVersion: 1 }], consumes: [] },
|
|
1289
|
+
migrations: { journalDir: './migrations', compatibleFrom: '1.0.0' },
|
|
1290
|
+
attachmentTargets: [],
|
|
1291
|
+
entitlementKey: 'idem',
|
|
1292
|
+
});
|
|
1293
|
+
const IDEM_USE = permissionKey.parse('idem:use');
|
|
1294
|
+
/**
|
|
1295
|
+
* The fixture that makes a duplicate VISIBLE.
|
|
1296
|
+
*
|
|
1297
|
+
* Every call appends a row, so "was this replayed?" is not answered by trusting
|
|
1298
|
+
* a flag the host set — it is answered by counting what the handler did. A suite
|
|
1299
|
+
* that asserted only on the returned value would pass just as happily against a
|
|
1300
|
+
* host that re-ran the operation and happened to produce the same answer, which
|
|
1301
|
+
* is precisely the bug (a second work order looks a lot like the first).
|
|
1302
|
+
*/
|
|
1303
|
+
const idemCreate = async (ctx, input) => {
|
|
1304
|
+
assertAllowed(await ctx.check(IDEM_USE));
|
|
1305
|
+
ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
|
|
1306
|
+
const run = ulid();
|
|
1307
|
+
ctx.sql.exec('INSERT INTO idem_runs (run, thing) VALUES (?, ?)', [run, input.thingId]);
|
|
1308
|
+
ctx.emit({
|
|
1309
|
+
type: 'idem.created',
|
|
1310
|
+
schemaVersion: 1,
|
|
1311
|
+
entity: { entityType: 'idem-thing', entityId: input.thingId },
|
|
1312
|
+
piiClass: 'none',
|
|
1313
|
+
payload: { label: input.label ?? null },
|
|
1314
|
+
});
|
|
1315
|
+
return { id: input.thingId, run, label: input.label ?? null };
|
|
1316
|
+
};
|
|
1317
|
+
/** Counts what actually ran — the suite's ground truth. */
|
|
1318
|
+
const idemRuns = async (ctx) => {
|
|
1319
|
+
assertAllowed(await ctx.check(IDEM_USE));
|
|
1320
|
+
ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
|
|
1321
|
+
const rows = ctx.sql.query('SELECT run FROM idem_runs');
|
|
1322
|
+
return { count: rows.length };
|
|
1323
|
+
};
|
|
1324
|
+
/**
|
|
1325
|
+
* Fails after writing, every time.
|
|
1326
|
+
*
|
|
1327
|
+
* The write matters: it proves the recording rolls back with the work rather
|
|
1328
|
+
* than merely never being reached. A retry must execute, because nothing
|
|
1329
|
+
* happened the first time.
|
|
1330
|
+
*/
|
|
1331
|
+
const idemFails = async (ctx, input) => {
|
|
1332
|
+
assertAllowed(await ctx.check(IDEM_USE));
|
|
1333
|
+
ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
|
|
1334
|
+
ctx.sql.exec('INSERT INTO idem_runs (run, thing) VALUES (?, ?)', [ulid(), input.thingId]);
|
|
1335
|
+
throw new Error('idem/fails always fails');
|
|
1336
|
+
};
|
|
1337
|
+
/** Returns more than `IDEMPOTENCY_RESULT_LIMIT` — the recording that cannot be kept. */
|
|
1338
|
+
const idemBig = async (ctx, input) => {
|
|
1339
|
+
assertAllowed(await ctx.check(IDEM_USE));
|
|
1340
|
+
ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
|
|
1341
|
+
ctx.sql.exec('INSERT INTO idem_runs (run, thing) VALUES (?, ?)', [ulid(), input.thingId]);
|
|
1342
|
+
return { id: input.thingId, blob: 'x'.repeat(IDEMPOTENCY_RESULT_LIMIT + 1) };
|
|
1343
|
+
};
|
|
1344
|
+
/**
|
|
1345
|
+
* Declares `idempotency: false` — its response is a credential in the story this
|
|
1346
|
+
* fixture tells, and must not be recorded. A key here is REFUSED.
|
|
1347
|
+
*/
|
|
1348
|
+
const idemSecret = async (ctx, input) => {
|
|
1349
|
+
assertAllowed(await ctx.check(IDEM_USE));
|
|
1350
|
+
ctx.sql.exec('CREATE TABLE IF NOT EXISTS idem_runs (run TEXT PRIMARY KEY, thing TEXT)');
|
|
1351
|
+
ctx.sql.exec('INSERT INTO idem_runs (run, thing) VALUES (?, ?)', [ulid(), input.thingId]);
|
|
1352
|
+
return { id: input.thingId, secret: 'never-recorded' };
|
|
1353
|
+
};
|
|
1354
|
+
const idempotencyDeclaration = {
|
|
1355
|
+
'idem/create': {
|
|
1356
|
+
input: z.object({ thingId: z.string(), label: z.string().optional() }),
|
|
1357
|
+
},
|
|
1358
|
+
// Guarded AND idempotent — the two seams on one operation, which is the case
|
|
1359
|
+
// that proves a replay hands back the original's tag rather than no tag.
|
|
1360
|
+
'idem/create-guarded': {
|
|
1361
|
+
input: z.object({ thingId: z.string(), label: z.string().optional() }),
|
|
1362
|
+
concurrency: { over: 'idem-thing', idFrom: 'thingId' },
|
|
1363
|
+
},
|
|
1364
|
+
'idem/runs': { input: z.object({}) },
|
|
1365
|
+
'idem/fails': { input: z.object({ thingId: z.string() }) },
|
|
1366
|
+
'idem/big': { input: z.object({ thingId: z.string() }) },
|
|
1367
|
+
'idem/secret': { input: z.object({ thingId: z.string() }), idempotency: false },
|
|
1368
|
+
};
|
|
1369
|
+
export const idempotencyMod = {
|
|
1370
|
+
manifest: idempotencyModManifest,
|
|
1371
|
+
operations: {
|
|
1372
|
+
'idem/create': idemCreate,
|
|
1373
|
+
'idem/create-guarded': idemCreate,
|
|
1374
|
+
'idem/runs': idemRuns,
|
|
1375
|
+
'idem/fails': idemFails,
|
|
1376
|
+
'idem/big': idemBig,
|
|
1377
|
+
'idem/secret': idemSecret,
|
|
1378
|
+
},
|
|
1379
|
+
operationInputs: operationInputsOf(idempotencyDeclaration),
|
|
1380
|
+
operationConcurrency: operationConcurrencyOf(idempotencyDeclaration),
|
|
1381
|
+
operationIdempotencyOptOuts: operationIdempotencyOptOutsOf(idempotencyDeclaration),
|
|
1382
|
+
};
|
|
1167
1383
|
export const contractTestModules = [
|
|
1168
1384
|
...contractTestInitialModules,
|
|
1169
1385
|
lateMod,
|
|
1170
1386
|
billedMod,
|
|
1171
1387
|
permMod,
|
|
1388
|
+
// K-42 (#868): the consumer that proves the two-actor stamp survives the outbox
|
|
1389
|
+
// read. It consumes `perm.acted` and writes one row per delivery; nothing else
|
|
1390
|
+
// in the kit reads `imp_echo`, so it is inert for every other suite.
|
|
1391
|
+
impersonationEchoMod,
|
|
1172
1392
|
connectorMod,
|
|
1173
1393
|
scheduleMod,
|
|
1174
1394
|
atomicMod,
|
|
@@ -1176,6 +1396,7 @@ export const contractTestModules = [
|
|
|
1176
1396
|
listMod,
|
|
1177
1397
|
parseMod,
|
|
1178
1398
|
concurrencyMod,
|
|
1399
|
+
idempotencyMod,
|
|
1179
1400
|
];
|
|
1180
1401
|
export const brokenModManifest = moduleManifest.parse({
|
|
1181
1402
|
id: '@test/broken',
|