@objectstack/plugin-sharing 9.9.1 → 9.11.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.
@@ -1,5 +1,5 @@
1
1
 
2
- > @objectstack/plugin-sharing@9.9.1 build /home/runner/work/framework/framework/packages/plugins/plugin-sharing
2
+ > @objectstack/plugin-sharing@9.11.0 build /home/runner/work/framework/framework/packages/plugins/plugin-sharing
3
3
  > tsup --config ../../../tsup.config.ts
4
4
 
5
5
  CLI Building entry: src/index.ts
@@ -10,13 +10,13 @@
10
10
  CLI Cleaning output folder
11
11
  ESM Build start
12
12
  CJS Build start
13
- ESM dist/index.mjs 109.89 KB
14
- ESM dist/index.mjs.map 191.90 KB
15
- ESM ⚡️ Build success in 177ms
16
- CJS dist/index.js 111.86 KB
17
- CJS dist/index.js.map 191.93 KB
18
- CJS ⚡️ Build success in 177ms
13
+ CJS dist/index.js 114.82 KB
14
+ CJS dist/index.js.map 199.06 KB
15
+ CJS ⚡️ Build success in 319ms
16
+ ESM dist/index.mjs 112.85 KB
17
+ ESM dist/index.mjs.map 199.03 KB
18
+ ESM ⚡️ Build success in 326ms
19
19
  DTS Build start
20
- DTS ⚡️ Build success in 17884ms
21
- DTS dist/index.d.mts 400.34 KB
22
- DTS dist/index.d.ts 400.34 KB
20
+ DTS ⚡️ Build success in 31341ms
21
+ DTS dist/index.d.mts 403.41 KB
22
+ DTS dist/index.d.ts 403.41 KB
package/CHANGELOG.md CHANGED
@@ -1,5 +1,65 @@
1
1
  # @objectstack/plugin-sharing
2
2
 
3
+ ## 9.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 2365d07: feat(sharing): configurable role-hierarchy widening — `role_and_subordinates` recipient (ADR-0056 D6)
8
+
9
+ Role-hierarchy access widening ("a manager sees records shared with their team") is now
10
+ **implemented and configurable per sharing rule**, not a hardcoded no-op. The
11
+ `role_and_subordinates` recipient (declarable on `sys_sharing_rule.recipient_type`) expands,
12
+ at evaluation time, to the named role **plus every subordinate role** by walking the
13
+ `sys_role.parent` hierarchy via a new `RoleGraphService` (mirroring the department/team
14
+ graphs; cycle-safe). Previously `Role.parent` was declared but never consumed — a silent
15
+ no-op flagged by the ADR-0056 audit. This is the Salesforce "grant access using hierarchies"
16
+ model expressed declaratively: each rule chooses whether to roll up the hierarchy. Unit-proven
17
+ (role-graph traversal, subordinate-user expansion, cycle safety); the recipient is added to
18
+ the authoring select + the `SharingRuleRecipientType` contract.
19
+
20
+ ### Patch Changes
21
+
22
+ - e7f6539: feat(spec,sharing): canonical OWD vocabulary on `object.sharingModel` (ADR-0056 D1)
23
+
24
+ Reconciles the Org-Wide-Default naming so authors use ONE vocabulary. `object.sharingModel`
25
+ now accepts the canonical OWD names — `private` | `public_read` | `public_read_write` |
26
+ `controlled_by_parent` — alongside the legacy `read` / `read_write` / `full` aliases (kept,
27
+ non-breaking). The sharing runtime maps them onto the three enforced behaviours
28
+ (`public_read` ≡ legacy `read` = everyone reads / owner writes; `public_read_write` =
29
+ unscoped). Unknown values remain rejected by the enum (authoring-time, fail-closed). The
30
+ showcase announcement now declares the canonical `public_read`, exercised end-to-end by the
31
+ public-read dogfood proof.
32
+
33
+ - Updated dependencies [e7f6539]
34
+ - Updated dependencies [2365d07]
35
+ - Updated dependencies [6595b53]
36
+ - Updated dependencies [fa8964d]
37
+ - Updated dependencies [36138c7]
38
+ - Updated dependencies [a8e4f3b]
39
+ - Updated dependencies [4c213c2]
40
+ - Updated dependencies [2afb612]
41
+ - @objectstack/spec@9.11.0
42
+ - @objectstack/objectql@9.11.0
43
+ - @objectstack/core@9.11.0
44
+ - @objectstack/platform-objects@9.11.0
45
+
46
+ ## 9.10.0
47
+
48
+ ### Patch Changes
49
+
50
+ - Updated dependencies [db02bd5]
51
+ - Updated dependencies [641675d]
52
+ - Updated dependencies [94e9040]
53
+ - Updated dependencies [4331adb]
54
+ - Updated dependencies [1f88fd9]
55
+ - Updated dependencies [1f88fd9]
56
+ - Updated dependencies [e2b5324]
57
+ - Updated dependencies [fd07027]
58
+ - @objectstack/spec@9.10.0
59
+ - @objectstack/platform-objects@9.10.0
60
+ - @objectstack/objectql@9.10.0
61
+ - @objectstack/core@9.10.0
62
+
3
63
  ## 9.9.1
4
64
 
5
65
  ### Patch Changes
package/dist/index.d.mts CHANGED
@@ -475,6 +475,29 @@ declare const SysRecordShare: Omit<{
475
475
  titleField: string;
476
476
  progressField?: string | undefined;
477
477
  dependenciesField?: string | undefined;
478
+ colorField?: string | undefined;
479
+ parentField?: string | undefined;
480
+ typeField?: string | undefined;
481
+ baselineStartField?: string | undefined;
482
+ baselineEndField?: string | undefined;
483
+ groupByField?: string | undefined;
484
+ resourceView?: boolean | undefined;
485
+ assigneeField?: string | undefined;
486
+ effortField?: string | undefined;
487
+ capacity?: number | undefined;
488
+ tooltipFields?: (string | {
489
+ field: string;
490
+ label?: string | undefined;
491
+ })[] | undefined;
492
+ quickFilters?: {
493
+ field: string;
494
+ label?: string | undefined;
495
+ options?: (string | {
496
+ value: string | number;
497
+ label?: string | undefined;
498
+ })[] | undefined;
499
+ }[] | undefined;
500
+ autoZoomToFilter?: boolean | undefined;
478
501
  } | undefined;
479
502
  gallery?: {
480
503
  coverFit: "cover" | "contain";
@@ -638,7 +661,7 @@ declare const SysRecordShare: Omit<{
638
661
  clone: boolean;
639
662
  apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
640
663
  } | undefined;
641
- sharingModel?: "full" | "read" | "private" | "read_write" | undefined;
664
+ sharingModel?: "full" | "read" | "private" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
642
665
  publicSharing?: {
643
666
  enabled: boolean;
644
667
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -670,7 +693,7 @@ declare const SysRecordShare: Omit<{
670
693
  } | {
671
694
  language: "js";
672
695
  source: string;
673
- capabilities: ("api.read" | "api.write" | "crypto.uuid" | "crypto.hash" | "log")[];
696
+ capabilities: ("api.read" | "api.write" | "api.transaction" | "crypto.uuid" | "crypto.hash" | "log")[];
674
697
  timeoutMs?: number | undefined;
675
698
  memoryMb?: number | undefined;
676
699
  } | undefined;
@@ -3248,6 +3271,29 @@ declare const SysSharingRule: Omit<{
3248
3271
  titleField: string;
3249
3272
  progressField?: string | undefined;
3250
3273
  dependenciesField?: string | undefined;
3274
+ colorField?: string | undefined;
3275
+ parentField?: string | undefined;
3276
+ typeField?: string | undefined;
3277
+ baselineStartField?: string | undefined;
3278
+ baselineEndField?: string | undefined;
3279
+ groupByField?: string | undefined;
3280
+ resourceView?: boolean | undefined;
3281
+ assigneeField?: string | undefined;
3282
+ effortField?: string | undefined;
3283
+ capacity?: number | undefined;
3284
+ tooltipFields?: (string | {
3285
+ field: string;
3286
+ label?: string | undefined;
3287
+ })[] | undefined;
3288
+ quickFilters?: {
3289
+ field: string;
3290
+ label?: string | undefined;
3291
+ options?: (string | {
3292
+ value: string | number;
3293
+ label?: string | undefined;
3294
+ })[] | undefined;
3295
+ }[] | undefined;
3296
+ autoZoomToFilter?: boolean | undefined;
3251
3297
  } | undefined;
3252
3298
  gallery?: {
3253
3299
  coverFit: "cover" | "contain";
@@ -3411,7 +3457,7 @@ declare const SysSharingRule: Omit<{
3411
3457
  clone: boolean;
3412
3458
  apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
3413
3459
  } | undefined;
3414
- sharingModel?: "full" | "read" | "private" | "read_write" | undefined;
3460
+ sharingModel?: "full" | "read" | "private" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
3415
3461
  publicSharing?: {
3416
3462
  enabled: boolean;
3417
3463
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -3443,7 +3489,7 @@ declare const SysSharingRule: Omit<{
3443
3489
  } | {
3444
3490
  language: "js";
3445
3491
  source: string;
3446
- capabilities: ("api.read" | "api.write" | "crypto.uuid" | "crypto.hash" | "log")[];
3492
+ capabilities: ("api.read" | "api.write" | "api.transaction" | "crypto.uuid" | "crypto.hash" | "log")[];
3447
3493
  timeoutMs?: number | undefined;
3448
3494
  memoryMb?: number | undefined;
3449
3495
  } | undefined;
@@ -6151,6 +6197,29 @@ declare const SysShareLink: Omit<{
6151
6197
  titleField: string;
6152
6198
  progressField?: string | undefined;
6153
6199
  dependenciesField?: string | undefined;
6200
+ colorField?: string | undefined;
6201
+ parentField?: string | undefined;
6202
+ typeField?: string | undefined;
6203
+ baselineStartField?: string | undefined;
6204
+ baselineEndField?: string | undefined;
6205
+ groupByField?: string | undefined;
6206
+ resourceView?: boolean | undefined;
6207
+ assigneeField?: string | undefined;
6208
+ effortField?: string | undefined;
6209
+ capacity?: number | undefined;
6210
+ tooltipFields?: (string | {
6211
+ field: string;
6212
+ label?: string | undefined;
6213
+ })[] | undefined;
6214
+ quickFilters?: {
6215
+ field: string;
6216
+ label?: string | undefined;
6217
+ options?: (string | {
6218
+ value: string | number;
6219
+ label?: string | undefined;
6220
+ })[] | undefined;
6221
+ }[] | undefined;
6222
+ autoZoomToFilter?: boolean | undefined;
6154
6223
  } | undefined;
6155
6224
  gallery?: {
6156
6225
  coverFit: "cover" | "contain";
@@ -6314,7 +6383,7 @@ declare const SysShareLink: Omit<{
6314
6383
  clone: boolean;
6315
6384
  apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
6316
6385
  } | undefined;
6317
- sharingModel?: "full" | "read" | "private" | "read_write" | undefined;
6386
+ sharingModel?: "full" | "read" | "private" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
6318
6387
  publicSharing?: {
6319
6388
  enabled: boolean;
6320
6389
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -6346,7 +6415,7 @@ declare const SysShareLink: Omit<{
6346
6415
  } | {
6347
6416
  language: "js";
6348
6417
  source: string;
6349
- capabilities: ("api.read" | "api.write" | "crypto.uuid" | "crypto.hash" | "log")[];
6418
+ capabilities: ("api.read" | "api.write" | "api.transaction" | "crypto.uuid" | "crypto.hash" | "log")[];
6350
6419
  timeoutMs?: number | undefined;
6351
6420
  memoryMb?: number | undefined;
6352
6421
  } | undefined;
package/dist/index.d.ts CHANGED
@@ -475,6 +475,29 @@ declare const SysRecordShare: Omit<{
475
475
  titleField: string;
476
476
  progressField?: string | undefined;
477
477
  dependenciesField?: string | undefined;
478
+ colorField?: string | undefined;
479
+ parentField?: string | undefined;
480
+ typeField?: string | undefined;
481
+ baselineStartField?: string | undefined;
482
+ baselineEndField?: string | undefined;
483
+ groupByField?: string | undefined;
484
+ resourceView?: boolean | undefined;
485
+ assigneeField?: string | undefined;
486
+ effortField?: string | undefined;
487
+ capacity?: number | undefined;
488
+ tooltipFields?: (string | {
489
+ field: string;
490
+ label?: string | undefined;
491
+ })[] | undefined;
492
+ quickFilters?: {
493
+ field: string;
494
+ label?: string | undefined;
495
+ options?: (string | {
496
+ value: string | number;
497
+ label?: string | undefined;
498
+ })[] | undefined;
499
+ }[] | undefined;
500
+ autoZoomToFilter?: boolean | undefined;
478
501
  } | undefined;
479
502
  gallery?: {
480
503
  coverFit: "cover" | "contain";
@@ -638,7 +661,7 @@ declare const SysRecordShare: Omit<{
638
661
  clone: boolean;
639
662
  apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
640
663
  } | undefined;
641
- sharingModel?: "full" | "read" | "private" | "read_write" | undefined;
664
+ sharingModel?: "full" | "read" | "private" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
642
665
  publicSharing?: {
643
666
  enabled: boolean;
644
667
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -670,7 +693,7 @@ declare const SysRecordShare: Omit<{
670
693
  } | {
671
694
  language: "js";
672
695
  source: string;
673
- capabilities: ("api.read" | "api.write" | "crypto.uuid" | "crypto.hash" | "log")[];
696
+ capabilities: ("api.read" | "api.write" | "api.transaction" | "crypto.uuid" | "crypto.hash" | "log")[];
674
697
  timeoutMs?: number | undefined;
675
698
  memoryMb?: number | undefined;
676
699
  } | undefined;
@@ -3248,6 +3271,29 @@ declare const SysSharingRule: Omit<{
3248
3271
  titleField: string;
3249
3272
  progressField?: string | undefined;
3250
3273
  dependenciesField?: string | undefined;
3274
+ colorField?: string | undefined;
3275
+ parentField?: string | undefined;
3276
+ typeField?: string | undefined;
3277
+ baselineStartField?: string | undefined;
3278
+ baselineEndField?: string | undefined;
3279
+ groupByField?: string | undefined;
3280
+ resourceView?: boolean | undefined;
3281
+ assigneeField?: string | undefined;
3282
+ effortField?: string | undefined;
3283
+ capacity?: number | undefined;
3284
+ tooltipFields?: (string | {
3285
+ field: string;
3286
+ label?: string | undefined;
3287
+ })[] | undefined;
3288
+ quickFilters?: {
3289
+ field: string;
3290
+ label?: string | undefined;
3291
+ options?: (string | {
3292
+ value: string | number;
3293
+ label?: string | undefined;
3294
+ })[] | undefined;
3295
+ }[] | undefined;
3296
+ autoZoomToFilter?: boolean | undefined;
3251
3297
  } | undefined;
3252
3298
  gallery?: {
3253
3299
  coverFit: "cover" | "contain";
@@ -3411,7 +3457,7 @@ declare const SysSharingRule: Omit<{
3411
3457
  clone: boolean;
3412
3458
  apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
3413
3459
  } | undefined;
3414
- sharingModel?: "full" | "read" | "private" | "read_write" | undefined;
3460
+ sharingModel?: "full" | "read" | "private" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
3415
3461
  publicSharing?: {
3416
3462
  enabled: boolean;
3417
3463
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -3443,7 +3489,7 @@ declare const SysSharingRule: Omit<{
3443
3489
  } | {
3444
3490
  language: "js";
3445
3491
  source: string;
3446
- capabilities: ("api.read" | "api.write" | "crypto.uuid" | "crypto.hash" | "log")[];
3492
+ capabilities: ("api.read" | "api.write" | "api.transaction" | "crypto.uuid" | "crypto.hash" | "log")[];
3447
3493
  timeoutMs?: number | undefined;
3448
3494
  memoryMb?: number | undefined;
3449
3495
  } | undefined;
@@ -6151,6 +6197,29 @@ declare const SysShareLink: Omit<{
6151
6197
  titleField: string;
6152
6198
  progressField?: string | undefined;
6153
6199
  dependenciesField?: string | undefined;
6200
+ colorField?: string | undefined;
6201
+ parentField?: string | undefined;
6202
+ typeField?: string | undefined;
6203
+ baselineStartField?: string | undefined;
6204
+ baselineEndField?: string | undefined;
6205
+ groupByField?: string | undefined;
6206
+ resourceView?: boolean | undefined;
6207
+ assigneeField?: string | undefined;
6208
+ effortField?: string | undefined;
6209
+ capacity?: number | undefined;
6210
+ tooltipFields?: (string | {
6211
+ field: string;
6212
+ label?: string | undefined;
6213
+ })[] | undefined;
6214
+ quickFilters?: {
6215
+ field: string;
6216
+ label?: string | undefined;
6217
+ options?: (string | {
6218
+ value: string | number;
6219
+ label?: string | undefined;
6220
+ })[] | undefined;
6221
+ }[] | undefined;
6222
+ autoZoomToFilter?: boolean | undefined;
6154
6223
  } | undefined;
6155
6224
  gallery?: {
6156
6225
  coverFit: "cover" | "contain";
@@ -6314,7 +6383,7 @@ declare const SysShareLink: Omit<{
6314
6383
  clone: boolean;
6315
6384
  apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "bulk" | "aggregate" | "history" | "restore" | "purge" | "export")[] | undefined;
6316
6385
  } | undefined;
6317
- sharingModel?: "full" | "read" | "private" | "read_write" | undefined;
6386
+ sharingModel?: "full" | "read" | "private" | "public_read" | "public_read_write" | "controlled_by_parent" | "read_write" | undefined;
6318
6387
  publicSharing?: {
6319
6388
  enabled: boolean;
6320
6389
  allowedAudiences?: ("email" | "public" | "link_only" | "signed_in")[] | undefined;
@@ -6346,7 +6415,7 @@ declare const SysShareLink: Omit<{
6346
6415
  } | {
6347
6416
  language: "js";
6348
6417
  source: string;
6349
- capabilities: ("api.read" | "api.write" | "crypto.uuid" | "crypto.hash" | "log")[];
6418
+ capabilities: ("api.read" | "api.write" | "api.transaction" | "crypto.uuid" | "crypto.hash" | "log")[];
6350
6419
  timeoutMs?: number | undefined;
6351
6420
  memoryMb?: number | undefined;
6352
6421
  } | undefined;