@cynodia/axiom-server 0.15.0-alpha.1 → 0.15.0-alpha.3

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 (112) hide show
  1. package/conformance/authenticated-client-rejects-system-only-action.json +1 -1
  2. package/conformance/authorization/action-allow-deny-anonymous.json +337 -1
  3. package/conformance/authorization/constant-deny-policy.json +337 -1
  4. package/conformance/authorization/legacy-action-constant-public.json +1020 -0
  5. package/conformance/authorization/legacy-action-neq-absent-deny.json +1049 -0
  6. package/conformance/authorization/legacy-action-not-eq-absent-deny.json +1049 -0
  7. package/conformance/authorization/legacy-action-positive-role.json +1049 -0
  8. package/conformance/authorization/legacy-plus-policy-absent-conjunction.json +1040 -0
  9. package/conformance/authorization/live-query-resume.json +337 -1
  10. package/conformance/authorization/manifest.json +66 -1
  11. package/conformance/authorization/operation-scope.json +337 -1
  12. package/conformance/authorization/pt2-deny-list-absent-value.json +1048 -0
  13. package/conformance/authorization/pt2-owner-both-absent.json +1039 -0
  14. package/conformance/authorization/query-public-preserved.json +337 -1
  15. package/conformance/authorization/query-tenant-isolation.json +337 -1
  16. package/conformance/authorization/workflow-cancellation-owner.json +337 -1
  17. package/conformance/authorization/workflow-cancellation-policy.json +337 -1
  18. package/conformance/authorization/workflow-inspection.json +337 -1
  19. package/conformance/authorization/workflow-start.json +337 -1
  20. package/conformance/effect-retry-sequence.json +1 -1
  21. package/conformance/effect-success-event.json +1 -1
  22. package/conformance/event-payload-invalid.json +1 -1
  23. package/conformance/failed-effect-structured-outcome.json +1 -1
  24. package/conformance/integration-query-success.json +1 -1
  25. package/conformance/integration-query-timeout.json +1 -1
  26. package/conformance/late-query-rejection-after-timeout.json +1 -1
  27. package/conformance/late-query-result-after-timeout.json +1 -1
  28. package/conformance/live/aggregate-reset.json +1 -1
  29. package/conformance/live/dependency-commit-no-change.json +1 -1
  30. package/conformance/live/f2-state-ref-refused.json +1 -1
  31. package/conformance/live/initial-result.json +1 -1
  32. package/conformance/live/insert-on-filter-entry.json +1 -1
  33. package/conformance/live/limit-boundary.json +1 -1
  34. package/conformance/live/manifest.json +1 -1
  35. package/conformance/live/not-live-capable.json +1 -1
  36. package/conformance/live/provider-only-sequence.json +1 -1
  37. package/conformance/live/provider-record-remove.json +1 -1
  38. package/conformance/live/remove-on-filter-exit.json +1 -1
  39. package/conformance/live/update-with-move.json +1 -1
  40. package/conformance/live/update-without-move.json +1 -1
  41. package/conformance/manifest.json +1 -1
  42. package/conformance/migrations/add-optional-field.json +1 -1
  43. package/conformance/migrations/add-required-field-with-default.json +1 -1
  44. package/conformance/migrations/crash-and-resume.json +1 -1
  45. package/conformance/migrations/destructive-removal-approved.json +1 -1
  46. package/conformance/migrations/destructive-removal-refused.json +1 -1
  47. package/conformance/migrations/idempotent-rerun.json +1 -1
  48. package/conformance/migrations/invalid-target-record.json +1 -1
  49. package/conformance/migrations/large-batched-transformation.json +1 -1
  50. package/conformance/migrations/manifest.json +1 -1
  51. package/conformance/migrations/metadata-only-change.json +1 -1
  52. package/conformance/migrations/migration-lock.json +1 -1
  53. package/conformance/migrations/missing-migration-path.json +1 -1
  54. package/conformance/migrations/record-transformation.json +1 -1
  55. package/conformance/migrations/relationship-addition.json +1 -1
  56. package/conformance/migrations/remove-empty-field.json +1 -1
  57. package/conformance/migrations/schema-fingerprint-mismatch.json +1 -1
  58. package/conformance/migrations/transform-field.json +1 -1
  59. package/conformance/queries/aggregate-under-policy.json +1 -1
  60. package/conformance/queries/count-aggregate.json +1 -1
  61. package/conformance/queries/cursor-page-1.json +1 -1
  62. package/conformance/queries/cursor-page-2.json +1 -1
  63. package/conformance/queries/filter-compound.json +1 -1
  64. package/conformance/queries/filter-equality.json +1 -1
  65. package/conformance/queries/grouped-sum.json +1 -1
  66. package/conformance/queries/invalid-cursor.json +1 -1
  67. package/conformance/queries/manifest.json +1 -1
  68. package/conformance/queries/multi-key-sort.json +1 -1
  69. package/conformance/queries/null-ordering.json +1 -1
  70. package/conformance/queries/projection-shape.json +1 -1
  71. package/conformance/queries/query-inside-transaction.json +1 -1
  72. package/conformance/queries/relationship-under-policy.json +1 -1
  73. package/conformance/queries/row-read-policy.json +1 -1
  74. package/conformance/queries/stable-ordering.json +1 -1
  75. package/conformance/queries/to-one-relationship.json +1 -1
  76. package/conformance/rolled-back-action-produces-no-effect.json +1 -1
  77. package/conformance/simultaneous-same-instant-triggers-both-commit.json +1 -1
  78. package/conformance/system-only-action-rejects-client.json +1 -1
  79. package/conformance/timed-trigger-polling.json +1 -1
  80. package/conformance/verified-external-event-invokes-system-only-action.json +1 -1
  81. package/conformance/workflow/manifest.json +1 -1
  82. package/conformance/workflow/workflow-action-on-error.json +1 -1
  83. package/conformance/workflow/workflow-action-retry.json +1 -1
  84. package/conformance/workflow/workflow-action-success.json +1 -1
  85. package/conformance/workflow/workflow-action-terminal-failure.json +1 -1
  86. package/conformance/workflow/workflow-branch-false.json +1 -1
  87. package/conformance/workflow/workflow-branch-true.json +1 -1
  88. package/conformance/workflow/workflow-cancel-waiting.json +1 -1
  89. package/conformance/workflow/workflow-event-match.json +1 -1
  90. package/conformance/workflow/workflow-event-nonmatch.json +1 -1
  91. package/conformance/workflow/workflow-event-timeout.json +1 -1
  92. package/conformance/workflow/workflow-start-complete.json +1 -1
  93. package/conformance/workflow/workflow-start-idempotency.json +1 -1
  94. package/conformance/workflow/workflow-timer.json +1 -1
  95. package/dist/authority-identity.d.ts +18 -0
  96. package/dist/authority-identity.js +26 -1
  97. package/dist/deps.d.ts +1 -1
  98. package/dist/deps.js +1 -1
  99. package/dist/server.js +103 -37
  100. package/dist/workflows.d.ts +7 -0
  101. package/dist/workflows.js +11 -3
  102. package/package.json +3 -3
  103. package/schema/protocol.v1.schema.json +1 -1
  104. package/schema/server-ir.v1.schema.json +1 -1
  105. package/schema/server-ir.v2.schema.json +1 -1
  106. package/schema/server-ir.v3.schema.json +1 -1
  107. package/schema/server-ir.v4.schema.json +1 -1
  108. package/schema/server-ir.v5.schema.json +1 -1
  109. package/schema/server-ir.v6.schema.json +1 -1
  110. package/schema/server-ir.v7.schema.json +1 -1
  111. package/schema/server-ir.v8.schema.json +1 -1
  112. package/schema/server-ir.v9.schema.json +1 -1
@@ -13,7 +13,7 @@
13
13
  "contract": "axiom.server.v4",
14
14
  "id": "conformance-integrations",
15
15
  "name": "Conformance integrations",
16
- "version": "0.8.2",
16
+ "version": "0.15.0",
17
17
  "entities": [
18
18
  {
19
19
  "id": "entity_effect_outcome",
@@ -58,6 +58,15 @@
58
58
  "field_user_id": "u-nob",
59
59
  "field_user_role": "viewer",
60
60
  "field_user_tenant": "t1"
61
+ },
62
+ "banned": {
63
+ "field_user_id": "u-ban",
64
+ "field_user_role": "banned",
65
+ "field_user_tenant": "t1"
66
+ },
67
+ "norole": {
68
+ "field_user_id": "u-nr",
69
+ "field_user_tenant": "t1"
61
70
  }
62
71
  },
63
72
  "steps": [
@@ -94,7 +103,7 @@
94
103
  "contract": "axiom.server.v9",
95
104
  "id": "authz-conformance",
96
105
  "name": "Authorization Conformance",
97
- "version": "0.15.0-alpha.1",
106
+ "version": "0.15.0-alpha.3",
98
107
  "entities": [
99
108
  {
100
109
  "id": "entity_user",
@@ -147,6 +156,14 @@
147
156
  "primitive": "string"
148
157
  },
149
158
  "required": true
159
+ },
160
+ {
161
+ "id": "field_doc_owner",
162
+ "valueType": {
163
+ "kind": "primitive",
164
+ "primitive": "string"
165
+ },
166
+ "required": false
150
167
  }
151
168
  ]
152
169
  },
@@ -236,6 +253,17 @@
236
253
  "required": true
237
254
  }
238
255
  },
256
+ "field_doc_owner": {
257
+ "entityId": "entity_doc",
258
+ "field": {
259
+ "id": "field_doc_owner",
260
+ "valueType": {
261
+ "kind": "primitive",
262
+ "primitive": "string"
263
+ },
264
+ "required": false
265
+ }
266
+ },
239
267
  "field_note_id": {
240
268
  "entityId": "entity_note",
241
269
  "field": {
@@ -383,6 +411,62 @@
383
411
  "preconditions": [],
384
412
  "failureModes": []
385
413
  },
414
+ "action_denylist": {
415
+ "id": "action_denylist",
416
+ "kind": "action",
417
+ "authorizationPolicy": "policy_denylist",
418
+ "operations": [
419
+ {
420
+ "kind": "set",
421
+ "target": {
422
+ "kind": "state",
423
+ "stateId": "state_count"
424
+ },
425
+ "value": {
426
+ "kind": "binary",
427
+ "operator": "add",
428
+ "left": {
429
+ "kind": "ref",
430
+ "targetId": "state_count"
431
+ },
432
+ "right": {
433
+ "kind": "literal",
434
+ "value": 1
435
+ }
436
+ }
437
+ }
438
+ ],
439
+ "preconditions": [],
440
+ "failureModes": []
441
+ },
442
+ "action_owner": {
443
+ "id": "action_owner",
444
+ "kind": "action",
445
+ "authorizationPolicy": "policy_owner",
446
+ "operations": [
447
+ {
448
+ "kind": "set",
449
+ "target": {
450
+ "kind": "state",
451
+ "stateId": "state_count"
452
+ },
453
+ "value": {
454
+ "kind": "binary",
455
+ "operator": "add",
456
+ "left": {
457
+ "kind": "ref",
458
+ "targetId": "state_count"
459
+ },
460
+ "right": {
461
+ "kind": "literal",
462
+ "value": 1
463
+ }
464
+ }
465
+ }
466
+ ],
467
+ "preconditions": [],
468
+ "failureModes": []
469
+ },
386
470
  "action_step": {
387
471
  "id": "action_step",
388
472
  "kind": "action",
@@ -414,6 +498,214 @@
414
498
  ],
415
499
  "preconditions": [],
416
500
  "failureModes": []
501
+ },
502
+ "action_legacy_neq": {
503
+ "id": "action_legacy_neq",
504
+ "kind": "action",
505
+ "authorization": {
506
+ "kind": "binary",
507
+ "operator": "neq",
508
+ "left": {
509
+ "kind": "field",
510
+ "source": {
511
+ "kind": "ref",
512
+ "targetId": "axiom_principal"
513
+ },
514
+ "fieldId": "field_user_role"
515
+ },
516
+ "right": {
517
+ "kind": "literal",
518
+ "value": "banned"
519
+ }
520
+ },
521
+ "operations": [
522
+ {
523
+ "kind": "set",
524
+ "target": {
525
+ "kind": "state",
526
+ "stateId": "state_count"
527
+ },
528
+ "value": {
529
+ "kind": "binary",
530
+ "operator": "add",
531
+ "left": {
532
+ "kind": "ref",
533
+ "targetId": "state_count"
534
+ },
535
+ "right": {
536
+ "kind": "literal",
537
+ "value": 1
538
+ }
539
+ }
540
+ }
541
+ ],
542
+ "preconditions": [],
543
+ "failureModes": []
544
+ },
545
+ "action_legacy_noteq": {
546
+ "id": "action_legacy_noteq",
547
+ "kind": "action",
548
+ "authorization": {
549
+ "kind": "unary",
550
+ "operator": "not",
551
+ "operand": {
552
+ "kind": "binary",
553
+ "operator": "eq",
554
+ "left": {
555
+ "kind": "field",
556
+ "source": {
557
+ "kind": "ref",
558
+ "targetId": "axiom_principal"
559
+ },
560
+ "fieldId": "field_user_role"
561
+ },
562
+ "right": {
563
+ "kind": "literal",
564
+ "value": "banned"
565
+ }
566
+ }
567
+ },
568
+ "operations": [
569
+ {
570
+ "kind": "set",
571
+ "target": {
572
+ "kind": "state",
573
+ "stateId": "state_count"
574
+ },
575
+ "value": {
576
+ "kind": "binary",
577
+ "operator": "add",
578
+ "left": {
579
+ "kind": "ref",
580
+ "targetId": "state_count"
581
+ },
582
+ "right": {
583
+ "kind": "literal",
584
+ "value": 1
585
+ }
586
+ }
587
+ }
588
+ ],
589
+ "preconditions": [],
590
+ "failureModes": []
591
+ },
592
+ "action_legacy_true": {
593
+ "id": "action_legacy_true",
594
+ "kind": "action",
595
+ "authorization": {
596
+ "kind": "literal",
597
+ "value": true
598
+ },
599
+ "operations": [
600
+ {
601
+ "kind": "set",
602
+ "target": {
603
+ "kind": "state",
604
+ "stateId": "state_count"
605
+ },
606
+ "value": {
607
+ "kind": "binary",
608
+ "operator": "add",
609
+ "left": {
610
+ "kind": "ref",
611
+ "targetId": "state_count"
612
+ },
613
+ "right": {
614
+ "kind": "literal",
615
+ "value": 1
616
+ }
617
+ }
618
+ }
619
+ ],
620
+ "preconditions": [],
621
+ "failureModes": []
622
+ },
623
+ "action_legacy_admin": {
624
+ "id": "action_legacy_admin",
625
+ "kind": "action",
626
+ "authorization": {
627
+ "kind": "binary",
628
+ "operator": "eq",
629
+ "left": {
630
+ "kind": "field",
631
+ "source": {
632
+ "kind": "ref",
633
+ "targetId": "axiom_principal"
634
+ },
635
+ "fieldId": "field_user_role"
636
+ },
637
+ "right": {
638
+ "kind": "literal",
639
+ "value": "admin"
640
+ }
641
+ },
642
+ "operations": [
643
+ {
644
+ "kind": "set",
645
+ "target": {
646
+ "kind": "state",
647
+ "stateId": "state_count"
648
+ },
649
+ "value": {
650
+ "kind": "binary",
651
+ "operator": "add",
652
+ "left": {
653
+ "kind": "ref",
654
+ "targetId": "state_count"
655
+ },
656
+ "right": {
657
+ "kind": "literal",
658
+ "value": 1
659
+ }
660
+ }
661
+ }
662
+ ],
663
+ "preconditions": [],
664
+ "failureModes": []
665
+ },
666
+ "action_legacy_plus_policy": {
667
+ "id": "action_legacy_plus_policy",
668
+ "kind": "action",
669
+ "authorization": {
670
+ "kind": "binary",
671
+ "operator": "neq",
672
+ "left": {
673
+ "kind": "field",
674
+ "source": {
675
+ "kind": "ref",
676
+ "targetId": "axiom_principal"
677
+ },
678
+ "fieldId": "field_user_role"
679
+ },
680
+ "right": {
681
+ "kind": "literal",
682
+ "value": "banned"
683
+ }
684
+ },
685
+ "authorizationPolicy": "policy_op",
686
+ "operations": [
687
+ {
688
+ "kind": "set",
689
+ "target": {
690
+ "kind": "state",
691
+ "stateId": "state_count"
692
+ },
693
+ "value": {
694
+ "kind": "binary",
695
+ "operator": "add",
696
+ "left": {
697
+ "kind": "ref",
698
+ "targetId": "state_count"
699
+ },
700
+ "right": {
701
+ "kind": "literal",
702
+ "value": 1
703
+ }
704
+ }
705
+ }
706
+ ],
707
+ "preconditions": [],
708
+ "failureModes": []
417
709
  }
418
710
  },
419
711
  "constraints": [],
@@ -594,6 +886,50 @@
594
886
  "kind": "literal",
595
887
  "value": false
596
888
  }
889
+ },
890
+ {
891
+ "id": "policy_denylist",
892
+ "kind": "authorization-policy",
893
+ "allow": {
894
+ "kind": "binary",
895
+ "operator": "neq",
896
+ "left": {
897
+ "kind": "field",
898
+ "source": {
899
+ "kind": "ref",
900
+ "targetId": "axiom_principal"
901
+ },
902
+ "fieldId": "field_user_role"
903
+ },
904
+ "right": {
905
+ "kind": "literal",
906
+ "value": "banned"
907
+ }
908
+ }
909
+ },
910
+ {
911
+ "id": "policy_owner",
912
+ "kind": "authorization-policy",
913
+ "allow": {
914
+ "kind": "binary",
915
+ "operator": "eq",
916
+ "left": {
917
+ "kind": "field",
918
+ "source": {
919
+ "kind": "ref",
920
+ "targetId": "axiom_resource"
921
+ },
922
+ "fieldId": "field_doc_owner"
923
+ },
924
+ "right": {
925
+ "kind": "field",
926
+ "source": {
927
+ "kind": "ref",
928
+ "targetId": "axiom_principal"
929
+ },
930
+ "fieldId": "field_user_id"
931
+ }
932
+ }
597
933
  }
598
934
  ],
599
935
  "workflows": [