@casual-simulation/aux-records 3.2.13 → 3.2.14-alpha.7890390188

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.
Files changed (46) hide show
  1. package/AIController.d.ts +7 -4
  2. package/AIController.js +11 -0
  3. package/AIController.js.map +1 -1
  4. package/AuthController.d.ts +2 -1
  5. package/AuthController.js +6 -3
  6. package/AuthController.js.map +1 -1
  7. package/AuthStore.d.ts +1 -21
  8. package/CachingPolicyStore.d.ts +16 -5
  9. package/CachingPolicyStore.js +66 -39
  10. package/CachingPolicyStore.js.map +1 -1
  11. package/DataRecordsController.d.ts +67 -5
  12. package/DataRecordsController.js +141 -78
  13. package/DataRecordsController.js.map +1 -1
  14. package/DataRecordsStore.d.ts +35 -1
  15. package/DataRecordsStore.js.map +1 -1
  16. package/EventRecordsController.d.ts +5 -5
  17. package/EventRecordsController.js +54 -35
  18. package/EventRecordsController.js.map +1 -1
  19. package/FileRecordsController.d.ts +6 -6
  20. package/FileRecordsController.js +142 -76
  21. package/FileRecordsController.js.map +1 -1
  22. package/MemoryStore.d.ts +28 -17
  23. package/MemoryStore.js +457 -110
  24. package/MemoryStore.js.map +1 -1
  25. package/PolicyController.d.ts +512 -677
  26. package/PolicyController.js +1196 -2934
  27. package/PolicyController.js.map +1 -1
  28. package/PolicyStore.d.ts +319 -90
  29. package/PolicyStore.js +125 -0
  30. package/PolicyStore.js.map +1 -1
  31. package/RecordsServer.d.ts +3 -4
  32. package/RecordsServer.js +88 -111
  33. package/RecordsServer.js.map +1 -1
  34. package/RecordsStore.d.ts +3 -0
  35. package/TestUtils.d.ts +1 -1
  36. package/TestUtils.js.map +1 -1
  37. package/Utils.d.ts +21 -3
  38. package/Utils.js +42 -3
  39. package/Utils.js.map +1 -1
  40. package/package.json +3 -3
  41. package/websockets/InstRecordsStore.d.ts +21 -0
  42. package/websockets/InstRecordsStore.js +43 -1
  43. package/websockets/InstRecordsStore.js.map +1 -1
  44. package/websockets/WebsocketController.d.ts +7 -7
  45. package/websockets/WebsocketController.js +153 -82
  46. package/websockets/WebsocketController.js.map +1 -1
package/Utils.js CHANGED
@@ -338,6 +338,9 @@ export function getStatusCode(response) {
338
338
  else if (response.errorCode === 'comId_already_taken') {
339
339
  return 409;
340
340
  }
341
+ else if (response.errorCode === 'permission_not_found') {
342
+ return 404;
343
+ }
341
344
  else {
342
345
  return 400;
343
346
  }
@@ -420,14 +423,50 @@ export function isActiveSubscription(status) {
420
423
  return status === 'active' || status === 'trialing';
421
424
  }
422
425
  /**
423
- * Gets the list of markers that should be used, or the default list if none are provided.
426
+ * Gets the list of root markers that should be used, or the default list if none are provided.
424
427
  * @param markers
425
428
  */
426
- export function getMarkersOrDefault(markers) {
429
+ export function getRootMarkersOrDefault(markers) {
427
430
  if (markers === null || markers === undefined || markers.length <= 0) {
428
431
  return [PUBLIC_READ_MARKER];
429
432
  }
430
- return markers;
433
+ return markers.map(getRootMarker);
434
+ }
435
+ /**
436
+ * Gets the root marker from the given marker.
437
+ * Markers have two parts, the root and the path: "root:path".
438
+ * The root is the first part of the marker, and contains the security name of the marker. That is, the name of the marker that is used to retrieve permissions for the marker.
439
+ * The path is the second part of the marker, and contains the path that the marker is for. That is, extra information that can be used to organize marker data.
440
+ * @param marker The marker that should be parsed.
441
+ */
442
+ export function getRootMarker(marker) {
443
+ if (!marker) {
444
+ return marker;
445
+ }
446
+ const indexOfColon = marker.indexOf(':');
447
+ if (indexOfColon < 0) {
448
+ return marker;
449
+ }
450
+ return marker.substring(0, indexOfColon);
451
+ }
452
+ /**
453
+ * Gets the path marker from the given marker.
454
+ * Markers have two parts, the root and the path: "root:path".
455
+ * The root is the first part of the marker, and contains the security name of the marker. That is, the name of the marker that is used to retrieve permissions for the marker.
456
+ * The path is the second part of the marker, and contains the path that the marker is for. That is, extra information that can be used to organize marker data.
457
+ *
458
+ * Returns an empty string if the marker does not contain a path.
459
+ * @param marker The marker that should be parsed.
460
+ */
461
+ export function getPathMarker(marker) {
462
+ if (!marker) {
463
+ return '';
464
+ }
465
+ const indexOfColon = marker.indexOf(':');
466
+ if (indexOfColon < 0) {
467
+ return '';
468
+ }
469
+ return marker.substring(indexOfColon + 1);
431
470
  }
432
471
  /**
433
472
  * Handles axios errors and ensures they get logged properly.
package/Utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Utils.js","sourceRoot":"","sources":["Utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Utils.js","sourceRoot":"","sources":["Utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@casual-simulation/aux-records",
3
- "version": "3.2.13",
3
+ "version": "3.2.14-alpha.7890390188",
4
4
  "description": "Helpers and managers used by the CasualOS records system.",
5
5
  "keywords": [],
6
6
  "author": "Casual Simulation, Inc.",
@@ -37,7 +37,7 @@
37
37
  "access": "public"
38
38
  },
39
39
  "dependencies": {
40
- "@casual-simulation/aux-common": "^3.2.12",
40
+ "@casual-simulation/aux-common": "^3.2.14-alpha.7890390188",
41
41
  "@casual-simulation/crypto": "^3.2.7",
42
42
  "@casual-simulation/fast-json-stable-stringify": "^3.1.11",
43
43
  "@casual-simulation/rate-limit-redis": "^3.2.7",
@@ -54,5 +54,5 @@
54
54
  "yjs": "13.6.8",
55
55
  "zod": "3.22.4"
56
56
  },
57
- "gitHead": "552756631484a984db430ca842834a1a08935f38"
57
+ "gitHead": "b5e23a196adfb6d14d836c939601261f87b5cf20"
58
58
  }
@@ -239,4 +239,25 @@ export interface ListInstsStoreFailure {
239
239
  errorCode: ServerError | 'record_not_found';
240
240
  errorMessage: string;
241
241
  }
242
+ /**
243
+ * Gets the ID for an inst with the given origin.
244
+ * @param recordName The name of the record for the simulation.
245
+ * @param inst The name of the inst for the simulation.
246
+ */
247
+ export declare function formatInstId(recordName: string | null, inst: string): string;
248
+ /**
249
+ * Parses the given inst ID into the record name and inst name.
250
+ * @param id The ID of the inst.
251
+ */
252
+ export declare function parseInstId(id: string): {
253
+ recordName: string | null;
254
+ inst: string;
255
+ };
256
+ /**
257
+ * Normalizes the given isnt ID.
258
+ * Insts can belong to a record, so inst IDs have to formatted like: "{recordName}/{instName}""
259
+ * In previous versions, insts were only referenced by their name. This function is able to normalize those IDs so that they can be parsed correctly.
260
+ * @param id The ID that should be normalized.
261
+ */
262
+ export declare function normalizeInstId(id: string): string;
242
263
  //# sourceMappingURL=InstRecordsStore.d.ts.map
@@ -1,2 +1,44 @@
1
- export {};
1
+ /**
2
+ * Gets the ID for an inst with the given origin.
3
+ * @param recordName The name of the record for the simulation.
4
+ * @param inst The name of the inst for the simulation.
5
+ */
6
+ export function formatInstId(recordName, inst) {
7
+ return `${recordName !== null && recordName !== void 0 ? recordName : ''}/${inst}`;
8
+ }
9
+ /**
10
+ * Parses the given inst ID into the record name and inst name.
11
+ * @param id The ID of the inst.
12
+ */
13
+ export function parseInstId(id) {
14
+ if (!id) {
15
+ return null;
16
+ }
17
+ const indexOfFirstSlash = id.indexOf('/');
18
+ if (indexOfFirstSlash < 0) {
19
+ return null;
20
+ }
21
+ const recordName = id.substring(0, indexOfFirstSlash);
22
+ const inst = id.substring(indexOfFirstSlash + 1);
23
+ return {
24
+ recordName: recordName ? recordName : null,
25
+ inst,
26
+ };
27
+ }
28
+ /**
29
+ * Normalizes the given isnt ID.
30
+ * Insts can belong to a record, so inst IDs have to formatted like: "{recordName}/{instName}""
31
+ * In previous versions, insts were only referenced by their name. This function is able to normalize those IDs so that they can be parsed correctly.
32
+ * @param id The ID that should be normalized.
33
+ */
34
+ export function normalizeInstId(id) {
35
+ if (!id) {
36
+ return null;
37
+ }
38
+ const indexOfFirstSlash = id.indexOf('/');
39
+ if (indexOfFirstSlash < 0) {
40
+ return '/' + id;
41
+ }
42
+ return id;
43
+ }
2
44
  //# sourceMappingURL=InstRecordsStore.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InstRecordsStore.js","sourceRoot":"","sources":["InstRecordsStore.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"InstRecordsStore.js","sourceRoot":"","sources":["InstRecordsStore.ts"],"names":[],"mappings":"AA2UA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,UAAyB,EAAE,IAAY;IAChE,OAAO,GAAG,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAU;IAIlC,IAAI,CAAC,EAAE,EAAE;QACL,OAAO,IAAI,CAAC;KACf;IACD,MAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,iBAAiB,GAAG,CAAC,EAAE;QACvB,OAAO,IAAI,CAAC;KACf;IACD,MAAM,UAAU,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;IACjD,OAAO;QACH,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC1C,IAAI;KACP,CAAC;AACN,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACtC,IAAI,CAAC,EAAE,EAAE;QACL,OAAO,IAAI,CAAC;KACf;IACD,MAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,iBAAiB,GAAG,CAAC,EAAE;QACvB,OAAO,GAAG,GAAG,EAAE,CAAC;KACnB;IAED,OAAO,EAAE,CAAC;AACd,CAAC"}
@@ -5,10 +5,10 @@ import { DeviceConnection, WebsocketConnectionStore } from './WebsocketConnectio
5
5
  import { AddUpdatesMessage, LoginMessage, SendActionMessage, TimeSyncRequestMessage, UploadHttpHeaders, WatchBranchMessage, WebsocketErrorInfo, WebsocketEvent } from '@casual-simulation/aux-common/websockets/WebsocketEvents';
6
6
  import { ConnectionInfo } from '@casual-simulation/aux-common/common/ConnectionInfo';
7
7
  import { AuthController } from '../AuthController';
8
- import { InstRecordsStore, InstWithSubscriptionInfo, SaveInstFailure } from './InstRecordsStore';
8
+ import { InstRecord, InstRecordsStore, InstWithSubscriptionInfo, SaveInstFailure } from './InstRecordsStore';
9
9
  import { TemporaryInstRecordsStore } from './TemporaryInstRecordsStore';
10
10
  import { DenialReason, ServerError, NotSupportedError } from '@casual-simulation/aux-common';
11
- import { AuthorizationContext, AuthorizeDenied, ListedInstItem, PolicyController } from '../PolicyController';
11
+ import { AuthorizationContext, AuthorizeSubjectFailure, ConstructAuthorizationContextFailure, PolicyController } from '../PolicyController';
12
12
  import { ConfigurationStore } from '../ConfigurationStore';
13
13
  import { FeaturesConfiguration } from '../SubscriptionConfiguration';
14
14
  import { MetricsStore } from '../MetricsStore';
@@ -142,7 +142,7 @@ export interface GetOrCreateInstSuccess {
142
142
  }
143
143
  export interface GetOrCreateInstFailure {
144
144
  success: false;
145
- errorCode: AuthorizeDenied['errorCode'] | SaveInstFailure['errorCode'];
145
+ errorCode: ConstructAuthorizationContextFailure['errorCode'] | AuthorizeSubjectFailure['errorCode'] | SaveInstFailure['errorCode'];
146
146
  errorMessage: string;
147
147
  reason?: DenialReason;
148
148
  }
@@ -153,19 +153,19 @@ export interface GetBranchDataSuccess {
153
153
  }
154
154
  export interface GetBranchDataFailure {
155
155
  success: false;
156
- errorCode: ServerError | 'inst_not_found' | AuthorizeDenied['errorCode'] | GetOrCreateInstFailure['errorCode'];
156
+ errorCode: ServerError | 'inst_not_found' | ConstructAuthorizationContextFailure['errorCode'] | AuthorizeSubjectFailure['errorCode'] | GetOrCreateInstFailure['errorCode'];
157
157
  errorMessage: string;
158
158
  reason?: DenialReason;
159
159
  }
160
160
  export type ListInstsResult = ListInstsSuccess | ListInstsFailure;
161
161
  export interface ListInstsSuccess {
162
162
  success: true;
163
- insts: ListedInstItem[];
163
+ insts: InstRecord[];
164
164
  totalCount: number;
165
165
  }
166
166
  export interface ListInstsFailure {
167
167
  success: false;
168
- errorCode: ServerError | 'record_not_found' | NotSupportedError | AuthorizeDenied['errorCode'] | GetOrCreateInstFailure['errorCode'];
168
+ errorCode: ServerError | 'record_not_found' | NotSupportedError | ConstructAuthorizationContextFailure['errorCode'] | AuthorizeSubjectFailure['errorCode'] | GetOrCreateInstFailure['errorCode'];
169
169
  errorMessage: string;
170
170
  reason?: DenialReason;
171
171
  }
@@ -175,7 +175,7 @@ export interface EraseInstSuccess {
175
175
  }
176
176
  export interface EraseInstFailure {
177
177
  success: false;
178
- errorCode: ServerError | 'inst_not_found' | NotSupportedError | AuthorizeDenied['errorCode'] | GetOrCreateInstFailure['errorCode'];
178
+ errorCode: ServerError | 'inst_not_found' | NotSupportedError | ConstructAuthorizationContextFailure['errorCode'] | AuthorizeSubjectFailure['errorCode'] | GetOrCreateInstFailure['errorCode'];
179
179
  errorMessage: string;
180
180
  reason?: DenialReason;
181
181
  }
@@ -25,10 +25,9 @@ import { fromByteArray, toByteArray } from 'base64-js';
25
25
  import { applyUpdate, mergeUpdates } from 'yjs';
26
26
  import { WebsocketEventTypes, } from '@casual-simulation/aux-common/websockets/WebsocketEvents';
27
27
  import { sumBy } from 'lodash';
28
- import { PRIVATE_MARKER, } from '@casual-simulation/aux-common';
28
+ import { PRIVATE_MARKER, ACCOUNT_MARKER, } from '@casual-simulation/aux-common';
29
29
  import { SplitInstRecordsStore } from './SplitInstRecordsStore';
30
30
  import { v4 as uuid } from 'uuid';
31
- import { returnAuthorizationResult, } from '../PolicyController';
32
31
  import { getSubscriptionFeatures, } from '../SubscriptionConfiguration';
33
32
  /**
34
33
  * Defines a class that is able to serve causal repos in realtime.
@@ -364,15 +363,16 @@ export class WebsocketController {
364
363
  return;
365
364
  }
366
365
  else if (event.recordName) {
367
- const authorizeResult = yield this._policies.authorizeRequestUsingContext(instResult.context, {
368
- action: 'inst.updateData',
369
- inst: event.inst,
370
- recordKeyOrRecordName: event.recordName,
371
- resourceMarkers: instResult.inst.markers,
366
+ const authorizeResult = yield this._policies.authorizeUserAndInstances(instResult.context, {
367
+ resourceKind: 'inst',
368
+ resourceId: event.inst,
369
+ action: 'updateData',
372
370
  userId: connection.userId,
371
+ markers: instResult.inst.markers,
372
+ instances: [],
373
373
  });
374
- if (authorizeResult.allowed === false) {
375
- yield this.sendError(connectionId, -1, Object.assign(Object.assign({}, returnAuthorizationResult(authorizeResult)), { recordName: event.recordName, inst: event.inst, branch: event.branch }));
374
+ if (authorizeResult.success === false) {
375
+ yield this.sendError(connectionId, -1, Object.assign(Object.assign({}, authorizeResult), { recordName: event.recordName, inst: event.inst, branch: event.branch }));
376
376
  return;
377
377
  }
378
378
  }
@@ -412,28 +412,60 @@ export class WebsocketController {
412
412
  yield this.sendError(connectionId, -1, Object.assign(Object.assign({}, contextResult), { recordName: event.recordName, inst: event.inst, branch: event.branch }));
413
413
  return;
414
414
  }
415
- const authorizeReadResult = yield this._policies.authorizeRequestUsingContext(contextResult.context, {
416
- action: 'inst.read',
417
- inst: event.inst,
418
- recordKeyOrRecordName: event.recordName,
419
- resourceMarkers: branch.linkedInst.markers,
415
+ const authorizeResult = yield this._policies.authorizeUserAndInstancesForResources(contextResult.context, {
420
416
  userId: connection.userId,
417
+ instances: [],
418
+ resources: [
419
+ {
420
+ resourceKind: 'inst',
421
+ resourceId: event.inst,
422
+ action: 'read',
423
+ markers: branch.linkedInst.markers,
424
+ },
425
+ {
426
+ resourceKind: 'inst',
427
+ resourceId: event.inst,
428
+ action: 'updateData',
429
+ markers: branch.linkedInst.markers,
430
+ },
431
+ ],
421
432
  });
422
- if (authorizeReadResult.allowed === false) {
423
- yield this.sendError(connectionId, -1, Object.assign(Object.assign({}, returnAuthorizationResult(authorizeReadResult)), { recordName: event.recordName, inst: event.inst, branch: event.branch }));
424
- return;
425
- }
426
- const authorizeUpdateResult = yield this._policies.authorizeRequestUsingContext(contextResult.context, {
427
- action: 'inst.updateData',
428
- inst: event.inst,
429
- recordKeyOrRecordName: event.recordName,
430
- resourceMarkers: branch.linkedInst.markers,
431
- userId: connection.userId,
432
- });
433
- if (authorizeUpdateResult.allowed === false) {
434
- yield this.sendError(connectionId, -1, Object.assign(Object.assign({}, returnAuthorizationResult(authorizeUpdateResult)), { recordName: event.recordName, inst: event.inst, branch: event.branch }));
433
+ // const authorizeReadResult =
434
+ // await this._policies.authorizeRequestUsingContext(
435
+ // contextResult.context,
436
+ // {
437
+ // action: 'inst.read',
438
+ // inst: event.inst,
439
+ // recordKeyOrRecordName: event.recordName,
440
+ // resourceMarkers: branch.linkedInst.markers,
441
+ // userId: connection.userId,
442
+ // }
443
+ // );
444
+ if (authorizeResult.success === false) {
445
+ yield this.sendError(connectionId, -1, Object.assign(Object.assign({}, authorizeResult), { recordName: event.recordName, inst: event.inst, branch: event.branch }));
435
446
  return;
436
447
  }
448
+ // const authorizeUpdateResult =
449
+ // await this._policies.authorizeUserAndInstances(
450
+ // contextResult.context,
451
+ // {
452
+ // resourceKind: 'inst',
453
+ // resourceId: event.inst,
454
+ // action: 'updateData',
455
+ // markers: branch.linkedInst.markers,
456
+ // userId: connection.userId,
457
+ // instances: [],
458
+ // }
459
+ // );
460
+ // if (authorizeUpdateResult.success === false) {
461
+ // await this.sendError(connectionId, -1, {
462
+ // ...authorizeUpdateResult,
463
+ // recordName: event.recordName,
464
+ // inst: event.inst,
465
+ // branch: event.branch,
466
+ // });
467
+ // return;
468
+ // }
437
469
  yield this._connectionStore.saveAuthorizedInst(connectionId, event.recordName, event.inst, 'updateData');
438
470
  }
439
471
  }
@@ -581,15 +613,16 @@ export class WebsocketController {
581
613
  });
582
614
  return;
583
615
  }
584
- const authorizeResult = yield this._policies.authorizeRequestUsingContext(instResult.context, {
585
- action: 'inst.sendAction',
586
- recordKeyOrRecordName: event.recordName,
587
- inst: event.inst,
588
- resourceMarkers: instResult.inst.markers,
616
+ const authorizeResult = yield this._policies.authorizeUserAndInstances(instResult.context, {
617
+ resourceKind: 'inst',
618
+ resourceId: event.inst,
619
+ action: 'sendAction',
620
+ markers: instResult.inst.markers,
589
621
  userId: currentConnection.userId,
622
+ instances: [],
590
623
  });
591
- if (authorizeResult.allowed === false) {
592
- yield this.sendError(connectionId, -1, returnAuthorizationResult(authorizeResult));
624
+ if (authorizeResult.success === false) {
625
+ yield this.sendError(connectionId, -1, authorizeResult);
593
626
  return;
594
627
  }
595
628
  }
@@ -747,10 +780,6 @@ export class WebsocketController {
747
780
  totalCount: 0,
748
781
  };
749
782
  }
750
- const instsResult = yield this._instStore.listInstsByRecord(recordName, startingInst);
751
- if (!instsResult.success) {
752
- return instsResult;
753
- }
754
783
  const contextResult = yield this._policies.constructAuthorizationContext({
755
784
  recordKeyOrRecordName: recordName,
756
785
  userId,
@@ -759,17 +788,15 @@ export class WebsocketController {
759
788
  return contextResult;
760
789
  }
761
790
  const context = contextResult.context;
762
- const authorizeResult = yield this._policies.authorizeRequestUsingContext(context, {
763
- action: 'inst.list',
764
- recordKeyOrRecordName: recordName,
791
+ const authorizeResult = yield this._policies.authorizeUserAndInstances(context, {
792
+ resourceKind: 'inst',
793
+ action: 'list',
765
794
  userId,
766
- insts: instsResult.insts.map((i) => ({
767
- inst: i.inst,
768
- markers: i.markers,
769
- })),
795
+ markers: [PRIVATE_MARKER],
796
+ instances: [],
770
797
  });
771
- if (authorizeResult.allowed === false) {
772
- return returnAuthorizationResult(authorizeResult);
798
+ if (authorizeResult.success === false) {
799
+ return authorizeResult;
773
800
  }
774
801
  const metricsResult = yield this._metrics.getSubscriptionInstMetricsByRecordName(recordName);
775
802
  const config = yield this._config.getSubscriptionConfiguration();
@@ -781,9 +808,13 @@ export class WebsocketController {
781
808
  errorMessage: 'Insts are not allowed for this subscription.',
782
809
  };
783
810
  }
811
+ const instsResult = yield this._instStore.listInstsByRecord(recordName, startingInst);
812
+ if (!instsResult.success) {
813
+ return instsResult;
814
+ }
784
815
  return {
785
816
  success: true,
786
- insts: authorizeResult.allowedInstItems,
817
+ insts: instsResult.insts,
787
818
  totalCount: instsResult.totalCount,
788
819
  };
789
820
  }
@@ -874,15 +905,16 @@ export class WebsocketController {
874
905
  success: true,
875
906
  };
876
907
  }
877
- const authResult = yield this._policies.authorizeRequestUsingContext(context.context, {
878
- action: 'inst.delete',
879
- recordKeyOrRecordName: recordName,
880
- inst: inst,
908
+ const authResult = yield this._policies.authorizeUserAndInstances(context.context, {
909
+ resourceKind: 'inst',
910
+ resourceId: inst,
911
+ action: 'delete',
912
+ markers: storedInst.markers,
881
913
  userId,
882
- resourceMarkers: storedInst.markers,
914
+ instances: [],
883
915
  });
884
- if (authResult.allowed === false) {
885
- return returnAuthorizationResult(authResult);
916
+ if (authResult.success === false) {
917
+ return authResult;
886
918
  }
887
919
  yield this._instStore.deleteInst(recordName, inst);
888
920
  return {
@@ -1113,28 +1145,66 @@ export class WebsocketController {
1113
1145
  }
1114
1146
  context = contextResult.context;
1115
1147
  }
1116
- const authorizeCreateResult = yield this._policies.authorizeRequestUsingContext(context, {
1117
- action: 'inst.create',
1118
- recordKeyOrRecordName: recordName,
1119
- inst: instName,
1120
- userId,
1121
- resourceMarkers: [PRIVATE_MARKER],
1148
+ const authorizationResult = yield this._policies.authorizeUserAndInstancesForResources(context, {
1149
+ userId: userId,
1150
+ instances: [],
1151
+ resources: [
1152
+ {
1153
+ resourceKind: 'inst',
1154
+ resourceId: instName,
1155
+ action: 'create',
1156
+ markers: [PRIVATE_MARKER],
1157
+ },
1158
+ {
1159
+ resourceKind: 'marker',
1160
+ resourceId: PRIVATE_MARKER,
1161
+ action: 'assign',
1162
+ markers: [ACCOUNT_MARKER],
1163
+ },
1164
+ {
1165
+ resourceKind: 'inst',
1166
+ resourceId: instName,
1167
+ action: 'read',
1168
+ markers: [PRIVATE_MARKER],
1169
+ },
1170
+ ],
1122
1171
  });
1123
- if (authorizeCreateResult.allowed === false) {
1124
- console.log('[WebsocketController] Unable to authorize inst creation.', authorizeCreateResult);
1125
- return returnAuthorizationResult(authorizeCreateResult);
1126
- }
1127
- const authorizeReadResult = yield this._policies.authorizeRequestUsingContext(context, {
1128
- action: 'inst.read',
1129
- recordKeyOrRecordName: recordName,
1130
- inst: instName,
1131
- userId,
1132
- resourceMarkers: [PRIVATE_MARKER],
1133
- });
1134
- if (authorizeReadResult.allowed === false) {
1135
- console.log('[WebsocketController] Unable to authorize inst creation.', authorizeReadResult);
1136
- return returnAuthorizationResult(authorizeReadResult);
1172
+ if (authorizationResult.success === false) {
1173
+ console.log('[WebsocketController] Unable to authorize inst creation.', authorizationResult);
1174
+ return authorizationResult;
1137
1175
  }
1176
+ // const authorizeCreateResult =
1177
+ // await this._policies.authorizeUserAndInstances(context, {
1178
+ // resourceKind: 'inst',
1179
+ // resourceId: instName,
1180
+ // action: 'create',
1181
+ // markers: [PRIVATE_MARKER],
1182
+ // userId,
1183
+ // instances: [],
1184
+ // });
1185
+ // if (authorizeCreateResult.success === false) {
1186
+ // console.log(
1187
+ // '[WebsocketController] Unable to authorize inst creation.',
1188
+ // authorizeCreateResult
1189
+ // );
1190
+ // return authorizeCreateResult;
1191
+ // }
1192
+ // const authorizeReadResult =
1193
+ // await this._policies.authorizeUserAndInstances(context, {
1194
+ // resourceKind: 'inst',
1195
+ // resourceId: instName,
1196
+ // action: 'read',
1197
+ // markers: [PRIVATE_MARKER],
1198
+ // userId,
1199
+ // instances: [],
1200
+ // });
1201
+ // if (authorizeReadResult.success === false) {
1202
+ // console.log(
1203
+ // '[WebsocketController] Unable to authorize inst creation.',
1204
+ // authorizeReadResult
1205
+ // );
1206
+ // return authorizeReadResult;
1207
+ // }
1138
1208
  const instMetrics = yield this._metrics.getSubscriptionInstMetricsByRecordName(recordName);
1139
1209
  features = getSubscriptionFeatures(config, instMetrics.subscriptionStatus, instMetrics.subscriptionId, instMetrics.subscriptionType);
1140
1210
  if (!features.insts.allowed) {
@@ -1240,16 +1310,17 @@ export class WebsocketController {
1240
1310
  }
1241
1311
  context = contextResult.context;
1242
1312
  }
1243
- const authorizeResult = yield this._policies.authorizeRequestUsingContext(context, {
1244
- action: 'inst.read',
1245
- recordKeyOrRecordName: recordName,
1246
- inst: instName,
1313
+ const authorizeResult = yield this._policies.authorizeUserAndInstances(context, {
1314
+ resourceKind: 'inst',
1315
+ resourceId: instName,
1316
+ action: 'read',
1317
+ markers: savedInst.markers,
1247
1318
  userId,
1248
- resourceMarkers: savedInst.markers,
1319
+ instances: [],
1249
1320
  });
1250
- if (authorizeResult.allowed === false) {
1321
+ if (authorizeResult.success === false) {
1251
1322
  console.log('[WebsocketController] Unable to authorize inst read.', authorizeResult);
1252
- return returnAuthorizationResult(authorizeResult);
1323
+ return authorizeResult;
1253
1324
  }
1254
1325
  }
1255
1326
  return {