@memberjunction/actions 6.2.0-edge.3 → 6.2.0-edge.5

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.
@@ -1,6 +1,7 @@
1
- import { UserInfo, IMetadataProvider } from "@memberjunction/core";
2
- import { MJActionExecutionLogEntity, MJActionCategoryEntity, MJActionFilterEntity, MJActionLibraryEntity, MJActionParamEntity, MJActionResultCodeEntity } from "@memberjunction/core-entities";
1
+ import { UserInfo, IMetadataProvider, DatabaseProviderBase } from "@memberjunction/core";
2
+ import { MJActionEntity, MJActionExecutionLogEntity, MJActionCategoryEntity, MJActionFilterEntity, MJActionLibraryEntity, MJActionParamEntity, MJActionResultCodeEntity } from "@memberjunction/core-entities";
3
3
  import { BaseSingleton } from "@memberjunction/global";
4
+ import { BaseAction } from "./BaseAction.js";
4
5
  import { MJActionEntityExtended, ActionParam, ActionResult, ActionResultSimple, RunActionParams, EntityChangeContext } from "@memberjunction/actions-base";
5
6
  /**
6
7
  * The `Message` on a run that a filter prevented.
@@ -52,6 +53,25 @@ export interface ActionFilterContext {
52
53
  */
53
54
  DidFieldChangeToValue(fieldName: string, value: unknown): boolean;
54
55
  }
56
+ /**
57
+ * Opens a provider on the host's read-only database login. Resolves null when the host has no
58
+ * read-only login configured.
59
+ */
60
+ export type ReadOnlyProviderFactory = () => Promise<DatabaseProviderBase | null>;
61
+ /**
62
+ * The host's checks for SQL a caller wrote, so that an action which runs such SQL applies the same
63
+ * rules as the host's own ad-hoc SQL API. MJServer registers one at startup.
64
+ */
65
+ export interface AdhocSQLAuthorizer {
66
+ /**
67
+ * Why `contextUser` may not run `sql` on `provider`, or null when they may. The host checks the
68
+ * SQL as it will run: one read statement, and every table it reads an entity view the user may
69
+ * read in full.
70
+ */
71
+ Authorize(sql: string, provider: DatabaseProviderBase, contextUser: UserInfo): string | null;
72
+ /** The timeout, in seconds, to run with when the caller asks for `requestedSeconds`. */
73
+ ClampTimeoutSeconds(requestedSeconds: number | undefined): number;
74
+ }
55
75
  /**
56
76
  * Base class for executing actions. This class can be sub-classed if desired if you would like to modify the logic across ALL actions. To do so, sub-class this class and use the
57
77
  * @RegisterClass decorator from the @memberjunction/global package to register your sub-class with the ClassFactory. This will cause your sub-class to be used instead of this base class when the Metadata object insantiates the ActionEngine.
@@ -84,6 +104,39 @@ export declare class ActionEngineServer extends BaseSingleton<ActionEngineServer
84
104
  get Loaded(): boolean;
85
105
  get ContextUser(): UserInfo;
86
106
  set ContextUser(value: UserInfo);
107
+ private _readOnlyProviderFactory?;
108
+ /**
109
+ * Registers how the host opens a provider on its read-only database login. MJServer registers one
110
+ * at startup. A second registration through this setter throws; code running inside the server
111
+ * process can still replace it.
112
+ * @throws Error when a factory is already registered
113
+ */
114
+ SetReadOnlyProviderFactory(factory: ReadOnlyProviderFactory): void;
115
+ /**
116
+ * A provider on the host's read-only database login, for actions that run caller-supplied SQL.
117
+ * Such actions run only here and never fall back to the read-write provider, so they refuse when
118
+ * this resolves null: no factory registered, or no read-only login configured.
119
+ */
120
+ GetReadOnlyProvider(): Promise<DatabaseProviderBase | null>;
121
+ private _adhocSQLAuthorizer?;
122
+ /**
123
+ * Registers the host's checks for SQL a caller wrote. MJServer registers one at startup. A second
124
+ * registration through this setter throws; code running inside the server process can still
125
+ * replace it.
126
+ * @throws Error when an authorizer is already registered
127
+ */
128
+ SetAdhocSQLAuthorizer(authorizer: AdhocSQLAuthorizer): void;
129
+ /**
130
+ * The host's checks for SQL a caller wrote. Actions that run such SQL refuse when this is null.
131
+ */
132
+ get AdhocSQLAuthorizer(): AdhocSQLAuthorizer | null;
133
+ /**
134
+ * True when the class that runs `action` declares {@link BaseAction.AuthorizesCaller} itself. The
135
+ * class is resolved the way {@link RunClassBasedAction} resolves it. A subclass that overrides a
136
+ * marked action does not inherit the marker. A Runtime action, or one with no registered class,
137
+ * does not authorize its caller.
138
+ */
139
+ ActionAuthorizesCaller(action: MJActionEntity): boolean;
87
140
  get Actions(): MJActionEntityExtended[];
88
141
  get ActionCategories(): MJActionCategoryEntity[];
89
142
  get ActionParams(): MJActionParamEntity[];
@@ -171,6 +224,28 @@ export declare class ActionEngineServer extends BaseSingleton<ActionEngineServer
171
224
  * the Type dispatch is readable.
172
225
  */
173
226
  protected RunClassBasedAction(params: RunActionParams): Promise<ActionResultSimple>;
227
+ /**
228
+ * The registered class for a Custom / Generated action — keyed by its `DriverClass`, else its `Name` — or
229
+ * null when nothing more specific than `BaseAction` is registered.
230
+ */
231
+ protected CreateActionInstance(params: RunActionParams): BaseAction | null;
232
+ /**
233
+ * The audience gate ({@link RunActionParams.Audience}): the refusal when the audience adds a reader beyond
234
+ * the caller and this run cannot honour it, else null — after normalizing the audience to the distinct
235
+ * readers beyond the caller, or clearing it when it adds nobody, so the action sees exactly the people to check.
236
+ *
237
+ * Refused, for EVERY action, under a malformed audience (`Readers` not an array, a reader that is not an object
238
+ * or has no `ID` — see {@link ActionAudienceReaders}): who the readers are cannot be checked, so no action may run
239
+ * as if there were none, nor pass it on to one that would take it as no audience. Refused under a well-formed
240
+ * audience that adds a reader: an action whose class does not declare `BaseAction.SupportsAudience`, or has no
241
+ * registered class; a runtime-defined action, whose code cannot declare support; and any deferred run, which
242
+ * hands the work to a path that executes it later, outside this gate. The refusal carries
243
+ * {@link AUDIENCE_UNSUPPORTED_RESULT_CODE} and writes no execution log row, since nothing ran. Protected so a
244
+ * host can change the rule.
245
+ */
246
+ protected CheckAudience(params: RunActionParams): ActionResult | null;
247
+ /** Why this run cannot honour an audience, or null when it can. */
248
+ private audienceUnsupportedReason;
174
249
  /**
175
250
  * Runs an `Action.Type='Runtime'` action by delegating to the sandboxed
176
251
  * RuntimeActionExecutor. Approval / Status / Code-presence checks are
@@ -1 +1 @@
1
- {"version":3,"file":"ActionEngine.d.ts","sourceRoot":"","sources":["../../src/generic/ActionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionEngine.d.ts","sourceRoot":"","sources":["../../src/generic/ActionEngine.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { BaseEntitySaveQueue, LogError, LogErrorEx, Metadata } from "@memberjunction/core";
1
+ import { BaseEntitySaveQueue, LogError, LogErrorEx, LogStatus, Metadata } from "@memberjunction/core";
2
2
  import { BaseSingleton, MJGlobal, MJLruCache, SafeJSONParse, UUIDsEqual } from "@memberjunction/global";
3
3
  import { BaseAction } from "./BaseAction.js";
4
4
  import { BaseActionFilter } from "./BaseActionFilter.js";
5
- import { ActionEngineBase, RuntimeActionConfigurationSchema, RuntimeActionBridgeBuilder, RedactParamsToJSON, DidFieldChange, DidFieldChangeToValue } from "@memberjunction/actions-base";
5
+ import { ActionEngineBase, RuntimeActionConfigurationSchema, RuntimeActionBridgeBuilder, RedactParamsToJSON, DidFieldChange, DidFieldChangeToValue, ActionAudienceReaders, AUDIENCE_UNSUPPORTED_RESULT_CODE } from "@memberjunction/actions-base";
6
6
  import { RuntimeActionExecutor } from "@memberjunction/action-runtime";
7
7
  /**
8
8
  * The `Message` on a run that a filter prevented.
@@ -12,6 +12,16 @@ import { RuntimeActionExecutor } from "@memberjunction/action-runtime";
12
12
  * refused rather than wondering why nothing happened.
13
13
  */
14
14
  export const ACTION_PREVENTED_BY_FILTER_MESSAGE = 'Filters were run and the result indicated this action should not be executed. This is a Success condition as filters returning false is not considered an error.';
15
+ /** Why `CheckAudience` refuses every action under a malformed audience (the refusal message's closing clause). */
16
+ const MALFORMED_AUDIENCE_REASON = 'the audience naming them is malformed, so who they are cannot be checked';
17
+ /**
18
+ * True when `actionClass` declares `AuthorizesCaller = true` as its own static field. A subclass does
19
+ * not inherit the marker from its parent. The field is read by name, so a class built on another
20
+ * loaded copy of {@link BaseAction} qualifies too.
21
+ */
22
+ function declaresAuthorizesCaller(actionClass) {
23
+ return typeof actionClass === 'function' && Object.getOwnPropertyDescriptor(actionClass, 'AuthorizesCaller')?.value === true;
24
+ }
15
25
  /**
16
26
  * Base class for executing actions. This class can be sub-classed if desired if you would like to modify the logic across ALL actions. To do so, sub-class this class and use the
17
27
  * @RegisterClass decorator from the @memberjunction/global package to register your sub-class with the ClassFactory. This will cause your sub-class to be used instead of this base class when the Metadata object insantiates the ActionEngine.
@@ -31,7 +41,7 @@ export class ActionEngineServer extends BaseSingleton {
31
41
  * impossible). The queue is self-bounding (in-flight tasks only), so it needs no flush on this
32
42
  * long-lived singleton.
33
43
  */
34
- this._logQueue = new BaseEntitySaveQueue();
44
+ this._logQueue = new BaseEntitySaveQueue({ saveReturnMode: 'datestamps_only' });
35
45
  /**
36
46
  * Bounded cache of compiled filter functions. Keyed by filter ID + row version so an edited
37
47
  * filter's Code is recompiled on next use instead of serving the stale compilation.
@@ -68,6 +78,57 @@ export class ActionEngineServer extends BaseSingleton {
68
78
  get Loaded() { return this.base.Loaded; }
69
79
  get ContextUser() { return (this._contextUser ?? this.base.ContextUser); }
70
80
  set ContextUser(value) { this._contextUser = value; }
81
+ /**
82
+ * Registers how the host opens a provider on its read-only database login. MJServer registers one
83
+ * at startup. A second registration through this setter throws; code running inside the server
84
+ * process can still replace it.
85
+ * @throws Error when a factory is already registered
86
+ */
87
+ SetReadOnlyProviderFactory(factory) {
88
+ if (this._readOnlyProviderFactory) {
89
+ throw new Error('A read-only provider factory is already registered with the action engine; a second registration is not allowed.');
90
+ }
91
+ this._readOnlyProviderFactory = factory;
92
+ }
93
+ /**
94
+ * A provider on the host's read-only database login, for actions that run caller-supplied SQL.
95
+ * Such actions run only here and never fall back to the read-write provider, so they refuse when
96
+ * this resolves null: no factory registered, or no read-only login configured.
97
+ */
98
+ async GetReadOnlyProvider() {
99
+ return this._readOnlyProviderFactory ? await this._readOnlyProviderFactory() : null;
100
+ }
101
+ /**
102
+ * Registers the host's checks for SQL a caller wrote. MJServer registers one at startup. A second
103
+ * registration through this setter throws; code running inside the server process can still
104
+ * replace it.
105
+ * @throws Error when an authorizer is already registered
106
+ */
107
+ SetAdhocSQLAuthorizer(authorizer) {
108
+ if (this._adhocSQLAuthorizer) {
109
+ throw new Error('An ad-hoc SQL authorizer is already registered with the action engine; a second registration is not allowed.');
110
+ }
111
+ this._adhocSQLAuthorizer = authorizer;
112
+ }
113
+ /**
114
+ * The host's checks for SQL a caller wrote. Actions that run such SQL refuse when this is null.
115
+ */
116
+ get AdhocSQLAuthorizer() {
117
+ return this._adhocSQLAuthorizer ?? null;
118
+ }
119
+ /**
120
+ * True when the class that runs `action` declares {@link BaseAction.AuthorizesCaller} itself. The
121
+ * class is resolved the way {@link RunClassBasedAction} resolves it. A subclass that overrides a
122
+ * marked action does not inherit the marker. A Runtime action, or one with no registered class,
123
+ * does not authorize its caller.
124
+ */
125
+ ActionAuthorizesCaller(action) {
126
+ if (action.Type === 'Runtime') {
127
+ return false;
128
+ }
129
+ const registration = MJGlobal.Instance.ClassFactory.GetRegistration(BaseAction, action.DriverClass || action.Name);
130
+ return declaresAuthorizesCaller(registration?.SubClass);
131
+ }
71
132
  // ── Proxied cached collections (single source of truth: ActionEngineBase.Instance) ──
72
133
  get Actions() { return this.base.Actions; }
73
134
  get ActionCategories() { return this.base.ActionCategories; }
@@ -94,6 +155,12 @@ export class ActionEngineServer extends BaseSingleton {
94
155
  return 2 * 60 * 60 * 1000;
95
156
  }
96
157
  async RunAction(params) {
158
+ // An audience the run cannot honour refuses it before anything else — no validation, no filters, no log
159
+ // row: the action never runs. Otherwise the audience is normalized for the action (see CheckAudience).
160
+ const audienceRefusal = this.CheckAudience(params);
161
+ if (audienceRefusal) {
162
+ return audienceRefusal;
163
+ }
97
164
  // Snapshot the inputs BEFORE anything can run — see SnapshotInputParams. Threaded down every
98
165
  // path (validation failure, filter refusal, timeout, normal run) so all four write the same
99
166
  // as-called values into ActionExecutionLog.Params.
@@ -244,8 +311,8 @@ export class ActionEngineServer extends BaseSingleton {
244
311
  }
245
312
  return {
246
313
  Name: param.Name,
247
- Value: value,
248
- Type: param.Type
314
+ Type: param.Type,
315
+ Value: value
249
316
  };
250
317
  });
251
318
  return params;
@@ -358,11 +425,14 @@ export class ActionEngineServer extends BaseSingleton {
358
425
  const simpleResult = deferred ?? (params.Action.Type === 'Runtime'
359
426
  ? await this.RunRuntimeAction(params)
360
427
  : await this.RunClassBasedAction(params));
361
- const resultCodeEntity = this.ActionResultCodes.find(r => UUIDsEqual(r.ActionID, params.Action.ID) &&
362
- r.ResultCode.trim().toLowerCase() === simpleResult.ResultCode.trim().toLowerCase());
428
+ const resultCodeEntity = typeof this.base?.GetResultCode === 'function' && this.ActionResultCodes === this.base.ActionResultCodes
429
+ ? this.base.GetResultCode(params.Action.ID, simpleResult.ResultCode)
430
+ : this.ActionResultCodes.find(r => UUIDsEqual(r.ActionID, params.Action.ID) &&
431
+ r.ResultCode.trim().toLowerCase() === simpleResult.ResultCode.trim().toLowerCase());
363
432
  const result = {
364
433
  RunParams: params,
365
434
  Success: simpleResult.Success,
435
+ ResultCode: simpleResult.ResultCode,
366
436
  Message: simpleResult.Message,
367
437
  AIDirectives: simpleResult.AIDirectives,
368
438
  LogEntry: logEntry,
@@ -407,12 +477,69 @@ export class ActionEngineServer extends BaseSingleton {
407
477
  * the Type dispatch is readable.
408
478
  */
409
479
  async RunClassBasedAction(params) {
410
- const action = MJGlobal.Instance.ClassFactory.CreateInstance(BaseAction, params.Action.DriverClass || params.Action.Name, params.ContextUser);
411
- if (!action || action.constructor === BaseAction) {
480
+ const action = this.CreateActionInstance(params);
481
+ if (!action) {
412
482
  throw new Error(`Could not find a class for action ${params.Action.Name}.`);
413
483
  }
414
484
  return await action.Run(params);
415
485
  }
486
+ /**
487
+ * The registered class for a Custom / Generated action — keyed by its `DriverClass`, else its `Name` — or
488
+ * null when nothing more specific than `BaseAction` is registered.
489
+ */
490
+ CreateActionInstance(params) {
491
+ const action = MJGlobal.Instance.ClassFactory.CreateInstance(BaseAction, params.Action.DriverClass || params.Action.Name, params.ContextUser);
492
+ return action && action.constructor !== BaseAction ? action : null;
493
+ }
494
+ /**
495
+ * The audience gate ({@link RunActionParams.Audience}): the refusal when the audience adds a reader beyond
496
+ * the caller and this run cannot honour it, else null — after normalizing the audience to the distinct
497
+ * readers beyond the caller, or clearing it when it adds nobody, so the action sees exactly the people to check.
498
+ *
499
+ * Refused, for EVERY action, under a malformed audience (`Readers` not an array, a reader that is not an object
500
+ * or has no `ID` — see {@link ActionAudienceReaders}): who the readers are cannot be checked, so no action may run
501
+ * as if there were none, nor pass it on to one that would take it as no audience. Refused under a well-formed
502
+ * audience that adds a reader: an action whose class does not declare `BaseAction.SupportsAudience`, or has no
503
+ * registered class; a runtime-defined action, whose code cannot declare support; and any deferred run, which
504
+ * hands the work to a path that executes it later, outside this gate. The refusal carries
505
+ * {@link AUDIENCE_UNSUPPORTED_RESULT_CODE} and writes no execution log row, since nothing ran. Protected so a
506
+ * host can change the rule.
507
+ */
508
+ CheckAudience(params) {
509
+ const readers = ActionAudienceReaders(params.Audience, params.ContextUser);
510
+ if (readers !== null && readers.length === 0) {
511
+ params.Audience = undefined;
512
+ return null;
513
+ }
514
+ const reason = readers === null ? MALFORMED_AUDIENCE_REASON : this.audienceUnsupportedReason(params);
515
+ if (!reason && readers) {
516
+ params.Audience = { Readers: readers };
517
+ return null;
518
+ }
519
+ LogStatus(`ActionEngine: action '${params.Action.Name}' refused under an audience — ${reason}.`);
520
+ return {
521
+ RunParams: params,
522
+ Success: false,
523
+ ResultCode: AUDIENCE_UNSUPPORTED_RESULT_CODE,
524
+ Message: `Action '${params.Action.Name}' is not available here: its output would be shown to people besides the caller, and ${reason}.`,
525
+ LogEntry: undefined,
526
+ Params: params.Params,
527
+ Result: undefined
528
+ };
529
+ }
530
+ /** Why this run cannot honour an audience, or null when it can. */
531
+ audienceUnsupportedReason(params) {
532
+ if (params.DeferExecution) {
533
+ return 'a deferred run executes later, outside this dispatch, where nothing holds it to the audience';
534
+ }
535
+ if (params.Action.Type === 'Runtime') {
536
+ return 'a runtime-defined action cannot declare that it honours an audience';
537
+ }
538
+ if (this.CreateActionInstance(params)?.SupportsAudience === true) {
539
+ return null;
540
+ }
541
+ return 'it has not declared that it can limit what it returns to what every one of them may see';
542
+ }
416
543
  /**
417
544
  * Runs an `Action.Type='Runtime'` action by delegating to the sandboxed
418
545
  * RuntimeActionExecutor. Approval / Status / Code-presence checks are
@@ -468,7 +595,9 @@ export class ActionEngineServer extends BaseSingleton {
468
595
  config,
469
596
  contextUser: params.ContextUser,
470
597
  abortSignal: params.AbortSignal,
471
- provider: params.Provider
598
+ provider: params.Provider,
599
+ runScope: params.RunScope,
600
+ audience: params.Audience
472
601
  });
473
602
  preamble = builder.GetPreamble();
474
603
  }
@@ -519,6 +648,9 @@ export class ActionEngineServer extends BaseSingleton {
519
648
  * the `Params` column, so redaction here is what makes the column safe by construction.
520
649
  */
521
650
  SnapshotInputParams(params) {
651
+ if (!params.Params || params.Params.length === 0) {
652
+ return '[]';
653
+ }
522
654
  return RedactParamsToJSON(params.Params, this.ParamDefinitionsFor(params), params.Provenance?.EntityActionParams);
523
655
  }
524
656
  /**
@@ -527,7 +659,12 @@ export class ActionEngineServer extends BaseSingleton {
527
659
  * which is typed as the plain entity and carries no params collection.
528
660
  */
529
661
  ParamDefinitionsFor(params) {
530
- return params.Action ? this.ActionParams.filter(p => UUIDsEqual(p.ActionID, params.Action.ID)) : [];
662
+ if (!params.Action)
663
+ return [];
664
+ if (typeof this.base?.GetParamsByActionID === 'function' && this.ActionParams === this.base.ActionParams) {
665
+ return this.base.GetParamsByActionID(params.Action.ID);
666
+ }
667
+ return this.ActionParams.filter(p => UUIDsEqual(p.ActionID, params.Action.ID));
531
668
  }
532
669
  /**
533
670
  * How much of this run to log, from the Entity Action binding that dispatched it. Direct
@@ -1 +1 @@
1
- {"version":3,"file":"ActionEngine.js","sourceRoot":"","sources":["../../src/generic/ActionEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActionEngine.js","sourceRoot":"","sources":["../../src/generic/ActionEngine.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,29 @@ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-bas
28
28
  * ```
29
29
  */
30
30
  export declare abstract class BaseAction {
31
+ /**
32
+ * Whether this action can bound what it returns to an audience (`RunActionParams.Audience`): everyone
33
+ * besides the caller who will see its output, such as the other participants of a shared conversation.
34
+ *
35
+ * `false` by default, and the engine enforces it: when a run's audience adds a reader beyond the caller,
36
+ * `ActionEngineServer.RunAction` refuses the action with result code `AUDIENCE_UNSUPPORTED`, without running
37
+ * it. Override to return `true` only when the action honours the audience in full — every record, snippet
38
+ * and count it returns is something every reader may see (pass the audience to the search engine, check each
39
+ * reader's entitlement to anything it scopes by, and leave out aggregates computed before that filtering).
40
+ */
41
+ get SupportsAudience(): boolean;
42
+ /**
43
+ * True when the action authorizes its caller itself, so a public entry point such as the
44
+ * `RunAction` mutation may run it for an authenticated user without an `MJ: Action
45
+ * Authorizations` link. Set it only on an action that either checks an authorization the caller
46
+ * must hold, or reads and writes only with the caller's own permissions. Leave it false for an
47
+ * action that acts with more authority than its caller, or that reaches data or sends messages
48
+ * the caller chooses but could not otherwise reach.
49
+ *
50
+ * The engine reads the marker only from the class that runs, never from its parent classes. A
51
+ * subclass that overrides a marked action must declare the marker again.
52
+ */
53
+ static readonly AuthorizesCaller: boolean;
31
54
  /**
32
55
  * Executes the action with the provided parameters.
33
56
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAction.d.ts","sourceRoot":"","sources":["../../src/generic/BaseAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,8BAAsB,UAAU;IAC7B;;;;;OAKG;IACU,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAItE;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAC5F"}
1
+ {"version":3,"file":"BaseAction.d.ts","sourceRoot":"","sources":["../../src/generic/BaseAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,8BAAsB,UAAU;IAC7B;;;;;;;;;OASG;IACH,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED;;;;;;;;;;OAUG;IACH,gBAAuB,gBAAgB,EAAE,OAAO,CAAS;IAEzD;;;;;OAKG;IACU,GAAG,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAItE;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAC5F"}
@@ -27,6 +27,31 @@
27
27
  * ```
28
28
  */
29
29
  export class BaseAction {
30
+ /**
31
+ * Whether this action can bound what it returns to an audience (`RunActionParams.Audience`): everyone
32
+ * besides the caller who will see its output, such as the other participants of a shared conversation.
33
+ *
34
+ * `false` by default, and the engine enforces it: when a run's audience adds a reader beyond the caller,
35
+ * `ActionEngineServer.RunAction` refuses the action with result code `AUDIENCE_UNSUPPORTED`, without running
36
+ * it. Override to return `true` only when the action honours the audience in full — every record, snippet
37
+ * and count it returns is something every reader may see (pass the audience to the search engine, check each
38
+ * reader's entitlement to anything it scopes by, and leave out aggregates computed before that filtering).
39
+ */
40
+ get SupportsAudience() {
41
+ return false;
42
+ }
43
+ /**
44
+ * True when the action authorizes its caller itself, so a public entry point such as the
45
+ * `RunAction` mutation may run it for an authenticated user without an `MJ: Action
46
+ * Authorizations` link. Set it only on an action that either checks an authorization the caller
47
+ * must hold, or reads and writes only with the caller's own permissions. Leave it false for an
48
+ * action that acts with more authority than its caller, or that reaches data or sends messages
49
+ * the caller chooses but could not otherwise reach.
50
+ *
51
+ * The engine reads the marker only from the class that runs, never from its parent classes. A
52
+ * subclass that overrides a marked action must declare the marker again.
53
+ */
54
+ static { this.AuthorizesCaller = false; }
30
55
  /**
31
56
  * Executes the action with the provided parameters.
32
57
  *
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAction.js","sourceRoot":"","sources":["../../src/generic/BaseAction.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAgB,UAAU;IAC7B;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CAAC,MAAuB;QACrC,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;CAUH"}
1
+ {"version":3,"file":"BaseAction.js","sourceRoot":"","sources":["../../src/generic/BaseAction.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAgB,UAAU;IAC7B;;;;;;;;;OASG;IACH,IAAW,gBAAgB;QACxB,OAAO,KAAK,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;aACoB,qBAAgB,GAAY,KAAK,CAAC;IAEzD;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CAAC,MAAuB;QACrC,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/actions",
3
3
  "type": "module",
4
- "version": "6.2.0-edge.3",
4
+ "version": "6.2.0-edge.5",
5
5
  "description": "Main library for MemberJunction Actions. This library is only intended to be imported on the server side.",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -16,14 +16,14 @@
16
16
  "vitest": "^3.1.1"
17
17
  },
18
18
  "dependencies": {
19
- "@memberjunction/action-runtime": "6.2.0-edge.3",
20
- "@memberjunction/actions-base": "6.2.0-edge.3",
21
- "@memberjunction/ai": "6.2.0-edge.3",
22
- "@memberjunction/code-execution": "6.2.0-edge.3",
23
- "@memberjunction/core": "6.2.0-edge.3",
24
- "@memberjunction/core-entities": "6.2.0-edge.3",
25
- "@memberjunction/doc-utils": "6.2.0-edge.3",
26
- "@memberjunction/global": "6.2.0-edge.3"
19
+ "@memberjunction/action-runtime": "6.2.0-edge.5",
20
+ "@memberjunction/actions-base": "6.2.0-edge.5",
21
+ "@memberjunction/ai": "6.2.0-edge.5",
22
+ "@memberjunction/code-execution": "6.2.0-edge.5",
23
+ "@memberjunction/core": "6.2.0-edge.5",
24
+ "@memberjunction/core-entities": "6.2.0-edge.5",
25
+ "@memberjunction/doc-utils": "6.2.0-edge.5",
26
+ "@memberjunction/global": "6.2.0-edge.5"
27
27
  },
28
28
  "repository": {
29
29
  "type": "git",