@objectstack/platform-objects 6.9.0 → 7.0.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.
Files changed (51) hide show
  1. package/dist/apps/index.d.mts +30 -1
  2. package/dist/apps/index.d.ts +30 -1
  3. package/dist/apps/index.js +994 -37
  4. package/dist/apps/index.js.map +1 -1
  5. package/dist/apps/index.mjs +994 -38
  6. package/dist/apps/index.mjs.map +1 -1
  7. package/dist/audit/index.d.mts +192 -16
  8. package/dist/audit/index.d.ts +192 -16
  9. package/dist/identity/index.d.mts +840 -22
  10. package/dist/identity/index.d.ts +840 -22
  11. package/dist/identity/index.js +384 -8
  12. package/dist/identity/index.js.map +1 -1
  13. package/dist/identity/index.mjs +384 -8
  14. package/dist/identity/index.mjs.map +1 -1
  15. package/dist/index.d.mts +4 -1
  16. package/dist/index.d.ts +4 -1
  17. package/dist/index.js +6815 -104
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +6810 -105
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/integration/index.d.mts +12 -1
  22. package/dist/integration/index.d.ts +12 -1
  23. package/dist/metadata/index.d.mts +24 -2
  24. package/dist/metadata/index.d.ts +24 -2
  25. package/dist/metadata-translations/index.d.mts +20 -0
  26. package/dist/metadata-translations/index.d.ts +20 -0
  27. package/dist/metadata-translations/index.js +4777 -0
  28. package/dist/metadata-translations/index.js.map +1 -0
  29. package/dist/metadata-translations/index.mjs +4775 -0
  30. package/dist/metadata-translations/index.mjs.map +1 -0
  31. package/dist/pages/index.d.mts +68 -0
  32. package/dist/pages/index.d.ts +68 -0
  33. package/dist/pages/index.js +371 -0
  34. package/dist/pages/index.js.map +1 -0
  35. package/dist/pages/index.mjs +368 -0
  36. package/dist/pages/index.mjs.map +1 -0
  37. package/dist/plugin.d.mts +35 -0
  38. package/dist/plugin.d.ts +35 -0
  39. package/dist/plugin.js +17566 -0
  40. package/dist/plugin.js.map +1 -0
  41. package/dist/plugin.mjs +17563 -0
  42. package/dist/plugin.mjs.map +1 -0
  43. package/dist/security/index.d.mts +785 -183
  44. package/dist/security/index.d.ts +785 -183
  45. package/dist/security/index.js +188 -1
  46. package/dist/security/index.js.map +1 -1
  47. package/dist/security/index.mjs +188 -1
  48. package/dist/security/index.mjs.map +1 -1
  49. package/dist/system/index.d.mts +36 -3
  50. package/dist/system/index.d.ts +36 -3
  51. package/package.json +17 -2
@@ -622,7 +622,7 @@ declare const SysUser: Omit<{
622
622
  refreshAfter: boolean;
623
623
  objectName?: string | undefined;
624
624
  icon?: string | undefined;
625
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
625
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
626
626
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
627
627
  target?: string | undefined;
628
628
  body?: {
@@ -655,6 +655,17 @@ declare const SysUser: Omit<{
655
655
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
656
656
  confirmText?: string | undefined;
657
657
  successMessage?: string | undefined;
658
+ resultDialog?: {
659
+ title?: string | undefined;
660
+ description?: string | undefined;
661
+ acknowledge?: string | undefined;
662
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
663
+ fields?: {
664
+ path: string;
665
+ label?: string | undefined;
666
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
667
+ }[] | undefined;
668
+ } | undefined;
658
669
  visible?: {
659
670
  dialect: "cel" | "js" | "cron" | "template";
660
671
  source?: string | undefined;
@@ -795,8 +806,180 @@ declare const SysUser: Omit<{
795
806
  readonly successMessage: "Now impersonating user";
796
807
  readonly refreshAfter: true;
797
808
  readonly confirmText: "Start an impersonation session for this user? Use only for legitimate support cases — actions will be logged.";
809
+ }, {
810
+ readonly name: "update_my_profile";
811
+ readonly label: "Update Profile";
812
+ readonly icon: "user-pen";
813
+ readonly variant: "primary";
814
+ readonly mode: "edit";
815
+ readonly locations: ["record_header"];
816
+ readonly type: "api";
817
+ readonly target: "/api/v1/auth/update-user";
818
+ readonly visible: "record.id == ctx.user.id";
819
+ readonly successMessage: "Profile updated";
820
+ readonly refreshAfter: true;
821
+ readonly params: [{
822
+ readonly field: "name";
823
+ readonly required: false;
824
+ readonly defaultFromRow: true;
825
+ }, {
826
+ readonly field: "image";
827
+ readonly required: false;
828
+ readonly defaultFromRow: true;
829
+ }];
830
+ }, {
831
+ readonly name: "change_my_password";
832
+ readonly label: "Change Password";
833
+ readonly icon: "key";
834
+ readonly variant: "secondary";
835
+ readonly locations: ["record_header", "record_more", "record_section"];
836
+ readonly type: "api";
837
+ readonly target: "/api/v1/auth/change-password";
838
+ readonly visible: "record.id == ctx.user.id";
839
+ readonly successMessage: "Password changed";
840
+ readonly refreshAfter: false;
841
+ readonly params: [{
842
+ readonly name: "currentPassword";
843
+ readonly label: "Current Password";
844
+ readonly type: "text";
845
+ readonly required: true;
846
+ }, {
847
+ readonly name: "newPassword";
848
+ readonly label: "New Password";
849
+ readonly type: "text";
850
+ readonly required: true;
851
+ }, {
852
+ readonly name: "revokeOtherSessions";
853
+ readonly label: "Sign out other devices";
854
+ readonly type: "boolean";
855
+ readonly required: false;
856
+ readonly defaultValue: true;
857
+ }];
858
+ }, {
859
+ readonly name: "change_my_email";
860
+ readonly label: "Change Email";
861
+ readonly icon: "mail";
862
+ readonly variant: "secondary";
863
+ readonly locations: ["record_header", "record_more", "record_section"];
864
+ readonly type: "api";
865
+ readonly target: "/api/v1/auth/change-email";
866
+ readonly visible: "record.id == ctx.user.id";
867
+ readonly successMessage: "Verification email sent — check the new address to confirm.";
868
+ readonly refreshAfter: false;
869
+ readonly params: [{
870
+ readonly name: "newEmail";
871
+ readonly label: "New Email";
872
+ readonly type: "email";
873
+ readonly required: true;
874
+ }];
875
+ }, {
876
+ readonly name: "resend_verification_email";
877
+ readonly label: "Resend Verification Email";
878
+ readonly icon: "mail-check";
879
+ readonly variant: "secondary";
880
+ readonly locations: ["record_header", "record_more", "record_section"];
881
+ readonly type: "api";
882
+ readonly target: "/api/v1/auth/send-verification-email";
883
+ readonly visible: "record.id == ctx.user.id && record.email_verified == false";
884
+ readonly successMessage: "Verification email sent — check your inbox.";
885
+ readonly refreshAfter: false;
886
+ readonly params: [];
887
+ }, {
888
+ readonly name: "delete_my_account";
889
+ readonly label: "Delete My Account";
890
+ readonly icon: "user-x";
891
+ readonly variant: "danger";
892
+ readonly mode: "delete";
893
+ readonly locations: ["record_more", "record_section"];
894
+ readonly type: "api";
895
+ readonly target: "/api/v1/auth/delete-user";
896
+ readonly visible: "record.id == ctx.user.id";
897
+ readonly confirmText: "Permanently delete your account? This cannot be undone — all your sessions will be terminated and all data you own will be removed per the configured retention policy.";
898
+ readonly successMessage: "Account deleted";
899
+ readonly refreshAfter: false;
900
+ readonly params: [{
901
+ readonly name: "password";
902
+ readonly label: "Current Password";
903
+ readonly type: "text";
904
+ readonly required: true;
905
+ }];
906
+ }, {
907
+ readonly name: "enable_two_factor";
908
+ readonly label: "Enable Two-Factor Auth";
909
+ readonly icon: "shield-plus";
910
+ readonly variant: "primary";
911
+ readonly locations: ["record_section"];
912
+ readonly type: "api";
913
+ readonly target: "/api/v1/auth/two-factor/enable";
914
+ readonly visible: "record.id == ctx.user.id && record.two_factor_enabled != true";
915
+ readonly successMessage: "Two-factor authentication enabled. Scan the QR code or paste the otpauth URI into your authenticator app, then verify a code to complete setup.";
916
+ readonly refreshAfter: true;
917
+ readonly params: [{
918
+ readonly name: "password";
919
+ readonly label: "Current Password";
920
+ readonly type: "text";
921
+ readonly required: true;
922
+ }];
923
+ }, {
924
+ readonly name: "disable_two_factor";
925
+ readonly label: "Disable Two-Factor Auth";
926
+ readonly icon: "shield-off";
927
+ readonly variant: "danger";
928
+ readonly locations: ["record_section"];
929
+ readonly type: "api";
930
+ readonly target: "/api/v1/auth/two-factor/disable";
931
+ readonly visible: "record.id == ctx.user.id && record.two_factor_enabled == true";
932
+ readonly confirmText: "Turn off two-factor authentication? Your account will be less secure.";
933
+ readonly successMessage: "Two-factor authentication disabled.";
934
+ readonly refreshAfter: true;
935
+ readonly params: [{
936
+ readonly name: "password";
937
+ readonly label: "Current Password";
938
+ readonly type: "text";
939
+ readonly required: true;
940
+ }];
941
+ }, {
942
+ readonly name: "generate_backup_codes";
943
+ readonly label: "Regenerate Backup Codes";
944
+ readonly icon: "list-restart";
945
+ readonly variant: "secondary";
946
+ readonly locations: ["record_section"];
947
+ readonly type: "api";
948
+ readonly target: "/api/v1/auth/two-factor/generate-backup-codes";
949
+ readonly visible: "record.id == ctx.user.id && record.two_factor_enabled == true";
950
+ readonly confirmText: "Generate a new set of backup codes? Any previously generated codes will stop working.";
951
+ readonly successMessage: "New backup codes generated — save them somewhere safe.";
952
+ readonly refreshAfter: false;
953
+ readonly params: [{
954
+ readonly name: "password";
955
+ readonly label: "Current Password";
956
+ readonly type: "text";
957
+ readonly required: true;
958
+ }];
798
959
  }];
799
960
  readonly listViews: {
961
+ readonly me: {
962
+ readonly type: "grid";
963
+ readonly name: "me";
964
+ readonly label: "My Profile";
965
+ readonly data: {
966
+ readonly provider: "object";
967
+ readonly object: "sys_user";
968
+ };
969
+ readonly columns: ["name", "email", "email_verified", "two_factor_enabled", "updated_at"];
970
+ readonly filter: [{
971
+ readonly field: "id";
972
+ readonly operator: "equals";
973
+ readonly value: "{current_user_id}";
974
+ }];
975
+ readonly sort: [{
976
+ readonly field: "name";
977
+ readonly order: "asc";
978
+ }];
979
+ readonly pagination: {
980
+ readonly pageSize: 1;
981
+ };
982
+ };
800
983
  readonly all_users: {
801
984
  readonly type: "grid";
802
985
  readonly name: "all_users";
@@ -3629,7 +3812,7 @@ declare const SysSession: Omit<{
3629
3812
  refreshAfter: boolean;
3630
3813
  objectName?: string | undefined;
3631
3814
  icon?: string | undefined;
3632
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
3815
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
3633
3816
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
3634
3817
  target?: string | undefined;
3635
3818
  body?: {
@@ -3662,6 +3845,17 @@ declare const SysSession: Omit<{
3662
3845
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
3663
3846
  confirmText?: string | undefined;
3664
3847
  successMessage?: string | undefined;
3848
+ resultDialog?: {
3849
+ title?: string | undefined;
3850
+ description?: string | undefined;
3851
+ acknowledge?: string | undefined;
3852
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
3853
+ fields?: {
3854
+ path: string;
3855
+ label?: string | undefined;
3856
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
3857
+ }[] | undefined;
3858
+ } | undefined;
3665
3859
  visible?: {
3666
3860
  dialect: "cel" | "js" | "cron" | "template";
3667
3861
  source?: string | undefined;
@@ -6341,7 +6535,7 @@ declare const SysAccount: Omit<{
6341
6535
  refreshAfter: boolean;
6342
6536
  objectName?: string | undefined;
6343
6537
  icon?: string | undefined;
6344
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
6538
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
6345
6539
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
6346
6540
  target?: string | undefined;
6347
6541
  body?: {
@@ -6374,6 +6568,17 @@ declare const SysAccount: Omit<{
6374
6568
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
6375
6569
  confirmText?: string | undefined;
6376
6570
  successMessage?: string | undefined;
6571
+ resultDialog?: {
6572
+ title?: string | undefined;
6573
+ description?: string | undefined;
6574
+ acknowledge?: string | undefined;
6575
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
6576
+ fields?: {
6577
+ path: string;
6578
+ label?: string | undefined;
6579
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
6580
+ }[] | undefined;
6581
+ } | undefined;
6377
6582
  visible?: {
6378
6583
  dialect: "cel" | "js" | "cron" | "template";
6379
6584
  source?: string | undefined;
@@ -6421,6 +6626,43 @@ declare const SysAccount: Omit<{
6421
6626
  readonly titleFormat: "{provider_id} - {account_id}";
6422
6627
  readonly compactLayout: ["provider_id", "user_id", "account_id"];
6423
6628
  readonly actions: [{
6629
+ readonly name: "link_social";
6630
+ readonly label: "Link Social Account";
6631
+ readonly icon: "link-2";
6632
+ readonly variant: "primary";
6633
+ readonly mode: "create";
6634
+ readonly locations: ["list_toolbar"];
6635
+ readonly type: "url";
6636
+ readonly target: "/api/v1/auth/sign-in/social?provider=${param.provider}&callbackURL=${ctx.origin}/apps/account/sys_account";
6637
+ readonly params: [{
6638
+ readonly name: "provider";
6639
+ readonly label: "Provider";
6640
+ readonly type: "select";
6641
+ readonly required: true;
6642
+ readonly options: [{
6643
+ readonly label: "Google";
6644
+ readonly value: "google";
6645
+ }, {
6646
+ readonly label: "GitHub";
6647
+ readonly value: "github";
6648
+ }, {
6649
+ readonly label: "Microsoft";
6650
+ readonly value: "microsoft";
6651
+ }, {
6652
+ readonly label: "Apple";
6653
+ readonly value: "apple";
6654
+ }, {
6655
+ readonly label: "Facebook";
6656
+ readonly value: "facebook";
6657
+ }, {
6658
+ readonly label: "GitLab";
6659
+ readonly value: "gitlab";
6660
+ }, {
6661
+ readonly label: "Discord";
6662
+ readonly value: "discord";
6663
+ }];
6664
+ }];
6665
+ }, {
6424
6666
  readonly name: "unlink_account";
6425
6667
  readonly label: "Unlink Account";
6426
6668
  readonly icon: "unlink";
@@ -9423,7 +9665,7 @@ declare const SysVerification: Omit<{
9423
9665
  refreshAfter: boolean;
9424
9666
  objectName?: string | undefined;
9425
9667
  icon?: string | undefined;
9426
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
9668
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
9427
9669
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
9428
9670
  target?: string | undefined;
9429
9671
  body?: {
@@ -9456,6 +9698,17 @@ declare const SysVerification: Omit<{
9456
9698
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
9457
9699
  confirmText?: string | undefined;
9458
9700
  successMessage?: string | undefined;
9701
+ resultDialog?: {
9702
+ title?: string | undefined;
9703
+ description?: string | undefined;
9704
+ acknowledge?: string | undefined;
9705
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
9706
+ fields?: {
9707
+ path: string;
9708
+ label?: string | undefined;
9709
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
9710
+ }[] | undefined;
9711
+ } | undefined;
9459
9712
  visible?: {
9460
9713
  dialect: "cel" | "js" | "cron" | "template";
9461
9714
  source?: string | undefined;
@@ -11191,7 +11444,7 @@ declare const SysOrganization: Omit<{
11191
11444
  refreshAfter: boolean;
11192
11445
  objectName?: string | undefined;
11193
11446
  icon?: string | undefined;
11194
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
11447
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
11195
11448
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
11196
11449
  target?: string | undefined;
11197
11450
  body?: {
@@ -11224,6 +11477,17 @@ declare const SysOrganization: Omit<{
11224
11477
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
11225
11478
  confirmText?: string | undefined;
11226
11479
  successMessage?: string | undefined;
11480
+ resultDialog?: {
11481
+ title?: string | undefined;
11482
+ description?: string | undefined;
11483
+ acknowledge?: string | undefined;
11484
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
11485
+ fields?: {
11486
+ path: string;
11487
+ label?: string | undefined;
11488
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
11489
+ }[] | undefined;
11490
+ } | undefined;
11227
11491
  visible?: {
11228
11492
  dialect: "cel" | "js" | "cron" | "template";
11229
11493
  source?: string | undefined;
@@ -11355,6 +11619,24 @@ declare const SysOrganization: Omit<{
11355
11619
  readonly confirmText: "Leave this organization? You will lose access to all of its resources.";
11356
11620
  readonly successMessage: "You have left the organization";
11357
11621
  readonly refreshAfter: true;
11622
+ }, {
11623
+ readonly name: "change_slug";
11624
+ readonly label: "Change Slug";
11625
+ readonly icon: "edit-3";
11626
+ readonly variant: "secondary";
11627
+ readonly mode: "custom";
11628
+ readonly locations: ["record_header"];
11629
+ readonly type: "api";
11630
+ readonly target: "/api/v1/cloud/organizations/{id}/change-slug";
11631
+ readonly method: "POST";
11632
+ readonly confirmText: "Renaming the slug rewrites every platform subdomain for this org and parks the old slug for 90 days. Continue?";
11633
+ readonly successMessage: "Organization slug changed";
11634
+ readonly refreshAfter: true;
11635
+ readonly params: [{
11636
+ readonly field: "slug";
11637
+ readonly required: true;
11638
+ readonly defaultFromRow: true;
11639
+ }];
11358
11640
  }];
11359
11641
  readonly listViews: {
11360
11642
  readonly all_orgs: {
@@ -13235,7 +13517,7 @@ declare const SysMember: Omit<{
13235
13517
  refreshAfter: boolean;
13236
13518
  objectName?: string | undefined;
13237
13519
  icon?: string | undefined;
13238
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
13520
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
13239
13521
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
13240
13522
  target?: string | undefined;
13241
13523
  body?: {
@@ -13268,6 +13550,17 @@ declare const SysMember: Omit<{
13268
13550
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
13269
13551
  confirmText?: string | undefined;
13270
13552
  successMessage?: string | undefined;
13553
+ resultDialog?: {
13554
+ title?: string | undefined;
13555
+ description?: string | undefined;
13556
+ acknowledge?: string | undefined;
13557
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
13558
+ fields?: {
13559
+ path: string;
13560
+ label?: string | undefined;
13561
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
13562
+ }[] | undefined;
13563
+ } | undefined;
13271
13564
  visible?: {
13272
13565
  dialect: "cel" | "js" | "cron" | "template";
13273
13566
  source?: string | undefined;
@@ -13364,7 +13657,52 @@ declare const SysMember: Omit<{
13364
13657
  readonly confirmText: "Remove this member from the organization? They will lose access to all org resources.";
13365
13658
  readonly successMessage: "Member removed";
13366
13659
  readonly refreshAfter: true;
13660
+ }, {
13661
+ readonly name: "transfer_ownership";
13662
+ readonly label: "Transfer Ownership";
13663
+ readonly icon: "crown";
13664
+ readonly variant: "danger";
13665
+ readonly mode: "custom";
13666
+ readonly locations: ["list_item"];
13667
+ readonly type: "api";
13668
+ readonly target: "/api/v1/auth/organization/update-member-role";
13669
+ readonly recordIdParam: "memberId";
13670
+ readonly bodyExtra: {
13671
+ readonly role: "owner";
13672
+ };
13673
+ readonly visible: "record.role != 'owner'";
13674
+ readonly confirmText: "Transfer ownership of this organization to the selected member? You will be demoted to admin and lose owner-only privileges.";
13675
+ readonly successMessage: "Ownership transferred";
13676
+ readonly refreshAfter: true;
13367
13677
  }];
13678
+ readonly listViews: {
13679
+ readonly mine: {
13680
+ readonly type: "grid";
13681
+ readonly name: "mine";
13682
+ readonly label: "My Memberships";
13683
+ readonly data: {
13684
+ readonly provider: "object";
13685
+ readonly object: "sys_member";
13686
+ };
13687
+ readonly columns: ["organization_id", "role", "created_at"];
13688
+ readonly filter: [{
13689
+ readonly field: "user_id";
13690
+ readonly operator: "equals";
13691
+ readonly value: "{current_user_id}";
13692
+ }];
13693
+ readonly sort: [{
13694
+ readonly field: "created_at";
13695
+ readonly order: "desc";
13696
+ }];
13697
+ readonly pagination: {
13698
+ readonly pageSize: 50;
13699
+ };
13700
+ readonly emptyState: {
13701
+ readonly title: "No organizations yet";
13702
+ readonly message: "You haven't joined any organizations.";
13703
+ };
13704
+ };
13705
+ };
13368
13706
  readonly fields: {
13369
13707
  readonly id: {
13370
13708
  readonly readonly?: boolean | undefined;
@@ -14875,7 +15213,7 @@ declare const SysInvitation: Omit<{
14875
15213
  refreshAfter: boolean;
14876
15214
  objectName?: string | undefined;
14877
15215
  icon?: string | undefined;
14878
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
15216
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
14879
15217
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
14880
15218
  target?: string | undefined;
14881
15219
  body?: {
@@ -14908,6 +15246,17 @@ declare const SysInvitation: Omit<{
14908
15246
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
14909
15247
  confirmText?: string | undefined;
14910
15248
  successMessage?: string | undefined;
15249
+ resultDialog?: {
15250
+ title?: string | undefined;
15251
+ description?: string | undefined;
15252
+ acknowledge?: string | undefined;
15253
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
15254
+ fields?: {
15255
+ path: string;
15256
+ label?: string | undefined;
15257
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
15258
+ }[] | undefined;
15259
+ } | undefined;
14911
15260
  visible?: {
14912
15261
  dialect: "cel" | "js" | "cron" | "template";
14913
15262
  source?: string | undefined;
@@ -15006,6 +15355,31 @@ declare const SysInvitation: Omit<{
15006
15355
  readonly required: true;
15007
15356
  readonly defaultFromRow: true;
15008
15357
  }];
15358
+ }, {
15359
+ readonly name: "accept_invitation";
15360
+ readonly label: "Accept Invitation";
15361
+ readonly icon: "check";
15362
+ readonly variant: "primary";
15363
+ readonly locations: ["list_item", "record_header"];
15364
+ readonly type: "api";
15365
+ readonly target: "/api/v1/auth/organization/accept-invitation";
15366
+ readonly recordIdParam: "invitationId";
15367
+ readonly visible: "record.email == ctx.user.email && record.status == 'pending'";
15368
+ readonly successMessage: "Invitation accepted";
15369
+ readonly refreshAfter: true;
15370
+ }, {
15371
+ readonly name: "reject_invitation";
15372
+ readonly label: "Decline Invitation";
15373
+ readonly icon: "x";
15374
+ readonly variant: "ghost";
15375
+ readonly locations: ["list_item", "record_header"];
15376
+ readonly type: "api";
15377
+ readonly target: "/api/v1/auth/organization/reject-invitation";
15378
+ readonly recordIdParam: "invitationId";
15379
+ readonly visible: "record.email == ctx.user.email && record.status == 'pending'";
15380
+ readonly confirmText: "Decline this invitation? The inviter will be notified and you will need a new invitation to join.";
15381
+ readonly successMessage: "Invitation declined";
15382
+ readonly refreshAfter: true;
15009
15383
  }];
15010
15384
  readonly listViews: {
15011
15385
  readonly pending: {
@@ -17303,7 +17677,7 @@ declare const SysTeam: Omit<{
17303
17677
  refreshAfter: boolean;
17304
17678
  objectName?: string | undefined;
17305
17679
  icon?: string | undefined;
17306
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
17680
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
17307
17681
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
17308
17682
  target?: string | undefined;
17309
17683
  body?: {
@@ -17336,6 +17710,17 @@ declare const SysTeam: Omit<{
17336
17710
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
17337
17711
  confirmText?: string | undefined;
17338
17712
  successMessage?: string | undefined;
17713
+ resultDialog?: {
17714
+ title?: string | undefined;
17715
+ description?: string | undefined;
17716
+ acknowledge?: string | undefined;
17717
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
17718
+ fields?: {
17719
+ path: string;
17720
+ label?: string | undefined;
17721
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
17722
+ }[] | undefined;
17723
+ } | undefined;
17339
17724
  visible?: {
17340
17725
  dialect: "cel" | "js" | "cron" | "template";
17341
17726
  source?: string | undefined;
@@ -18989,7 +19374,7 @@ declare const SysTeamMember: Omit<{
18989
19374
  refreshAfter: boolean;
18990
19375
  objectName?: string | undefined;
18991
19376
  icon?: string | undefined;
18992
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
19377
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
18993
19378
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
18994
19379
  target?: string | undefined;
18995
19380
  body?: {
@@ -19022,6 +19407,17 @@ declare const SysTeamMember: Omit<{
19022
19407
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
19023
19408
  confirmText?: string | undefined;
19024
19409
  successMessage?: string | undefined;
19410
+ resultDialog?: {
19411
+ title?: string | undefined;
19412
+ description?: string | undefined;
19413
+ acknowledge?: string | undefined;
19414
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
19415
+ fields?: {
19416
+ path: string;
19417
+ label?: string | undefined;
19418
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
19419
+ }[] | undefined;
19420
+ } | undefined;
19025
19421
  visible?: {
19026
19422
  dialect: "cel" | "js" | "cron" | "template";
19027
19423
  source?: string | undefined;
@@ -20456,7 +20852,7 @@ declare const SysDepartment: Omit<{
20456
20852
  refreshAfter: boolean;
20457
20853
  objectName?: string | undefined;
20458
20854
  icon?: string | undefined;
20459
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
20855
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
20460
20856
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
20461
20857
  target?: string | undefined;
20462
20858
  body?: {
@@ -20489,6 +20885,17 @@ declare const SysDepartment: Omit<{
20489
20885
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
20490
20886
  confirmText?: string | undefined;
20491
20887
  successMessage?: string | undefined;
20888
+ resultDialog?: {
20889
+ title?: string | undefined;
20890
+ description?: string | undefined;
20891
+ acknowledge?: string | undefined;
20892
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
20893
+ fields?: {
20894
+ path: string;
20895
+ label?: string | undefined;
20896
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
20897
+ }[] | undefined;
20898
+ } | undefined;
20492
20899
  visible?: {
20493
20900
  dialect: "cel" | "js" | "cron" | "template";
20494
20901
  source?: string | undefined;
@@ -23544,7 +23951,7 @@ declare const SysDepartmentMember: Omit<{
23544
23951
  refreshAfter: boolean;
23545
23952
  objectName?: string | undefined;
23546
23953
  icon?: string | undefined;
23547
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
23954
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
23548
23955
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
23549
23956
  target?: string | undefined;
23550
23957
  body?: {
@@ -23577,6 +23984,17 @@ declare const SysDepartmentMember: Omit<{
23577
23984
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
23578
23985
  confirmText?: string | undefined;
23579
23986
  successMessage?: string | undefined;
23987
+ resultDialog?: {
23988
+ title?: string | undefined;
23989
+ description?: string | undefined;
23990
+ acknowledge?: string | undefined;
23991
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
23992
+ fields?: {
23993
+ path: string;
23994
+ label?: string | undefined;
23995
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
23996
+ }[] | undefined;
23997
+ } | undefined;
23580
23998
  visible?: {
23581
23999
  dialect: "cel" | "js" | "cron" | "template";
23582
24000
  source?: string | undefined;
@@ -25838,7 +26256,7 @@ declare const SysApiKey: Omit<{
25838
26256
  refreshAfter: boolean;
25839
26257
  objectName?: string | undefined;
25840
26258
  icon?: string | undefined;
25841
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
26259
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
25842
26260
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
25843
26261
  target?: string | undefined;
25844
26262
  body?: {
@@ -25871,6 +26289,17 @@ declare const SysApiKey: Omit<{
25871
26289
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
25872
26290
  confirmText?: string | undefined;
25873
26291
  successMessage?: string | undefined;
26292
+ resultDialog?: {
26293
+ title?: string | undefined;
26294
+ description?: string | undefined;
26295
+ acknowledge?: string | undefined;
26296
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
26297
+ fields?: {
26298
+ path: string;
26299
+ label?: string | undefined;
26300
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
26301
+ }[] | undefined;
26302
+ } | undefined;
25874
26303
  visible?: {
25875
26304
  dialect: "cel" | "js" | "cron" | "template";
25876
26305
  source?: string | undefined;
@@ -28600,7 +29029,7 @@ declare const SysTwoFactor: Omit<{
28600
29029
  refreshAfter: boolean;
28601
29030
  objectName?: string | undefined;
28602
29031
  icon?: string | undefined;
28603
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
29032
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
28604
29033
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
28605
29034
  target?: string | undefined;
28606
29035
  body?: {
@@ -28633,6 +29062,17 @@ declare const SysTwoFactor: Omit<{
28633
29062
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
28634
29063
  confirmText?: string | undefined;
28635
29064
  successMessage?: string | undefined;
29065
+ resultDialog?: {
29066
+ title?: string | undefined;
29067
+ description?: string | undefined;
29068
+ acknowledge?: string | undefined;
29069
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
29070
+ fields?: {
29071
+ path: string;
29072
+ label?: string | undefined;
29073
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
29074
+ }[] | undefined;
29075
+ } | undefined;
28636
29076
  visible?: {
28637
29077
  dialect: "cel" | "js" | "cron" | "template";
28638
29078
  source?: string | undefined;
@@ -28728,7 +29168,6 @@ declare const SysTwoFactor: Omit<{
28728
29168
  readonly locations: ["list_toolbar"];
28729
29169
  readonly type: "api";
28730
29170
  readonly target: "/api/v1/auth/two-factor/enable";
28731
- readonly successMessage: "2FA enrollment started — check response for TOTP URI and backup codes";
28732
29171
  readonly refreshAfter: true;
28733
29172
  readonly params: [{
28734
29173
  readonly name: "password";
@@ -28736,6 +29175,20 @@ declare const SysTwoFactor: Omit<{
28736
29175
  readonly type: "text";
28737
29176
  readonly required: true;
28738
29177
  }];
29178
+ readonly resultDialog: {
29179
+ readonly title: "Two-factor authentication enabled";
29180
+ readonly description: "Scan the QR code with your authenticator app, then save the backup codes somewhere safe. The backup codes are shown only once.";
29181
+ readonly acknowledge: "I have saved my backup codes";
29182
+ readonly fields: [{
29183
+ readonly path: "totpURI";
29184
+ readonly label: "Authenticator URI";
29185
+ readonly format: "qrcode";
29186
+ }, {
29187
+ readonly path: "backupCodes";
29188
+ readonly label: "Backup Codes";
29189
+ readonly format: "code-list";
29190
+ }];
29191
+ };
28739
29192
  }, {
28740
29193
  readonly name: "disable_two_factor";
28741
29194
  readonly label: "Disable 2FA";
@@ -28753,6 +29206,32 @@ declare const SysTwoFactor: Omit<{
28753
29206
  readonly type: "text";
28754
29207
  readonly required: true;
28755
29208
  }];
29209
+ }, {
29210
+ readonly name: "regenerate_backup_codes";
29211
+ readonly label: "Regenerate Backup Codes";
29212
+ readonly icon: "refresh-cw";
29213
+ readonly variant: "secondary";
29214
+ readonly locations: ["list_toolbar", "list_item"];
29215
+ readonly type: "api";
29216
+ readonly target: "/api/v1/auth/two-factor/generate-backup-codes";
29217
+ readonly confirmText: "Regenerate backup codes? All previous backup codes will stop working immediately.";
29218
+ readonly refreshAfter: true;
29219
+ readonly params: [{
29220
+ readonly name: "password";
29221
+ readonly label: "Current Password";
29222
+ readonly type: "text";
29223
+ readonly required: true;
29224
+ }];
29225
+ readonly resultDialog: {
29226
+ readonly title: "New backup codes generated";
29227
+ readonly description: "Previous backup codes are now invalid. Save these new codes somewhere safe — they are shown only once.";
29228
+ readonly acknowledge: "I have saved the new codes";
29229
+ readonly fields: [{
29230
+ readonly path: "backupCodes";
29231
+ readonly label: "Backup Codes";
29232
+ readonly format: "code-list";
29233
+ }];
29234
+ };
28756
29235
  }];
28757
29236
  readonly fields: {
28758
29237
  readonly id: {
@@ -29805,6 +30284,181 @@ declare const SysTwoFactor: Omit<{
29805
30284
  readonly index?: boolean | undefined;
29806
30285
  readonly type: "textarea";
29807
30286
  };
30287
+ readonly verified: {
30288
+ readonly readonly?: boolean | undefined;
30289
+ readonly format?: string | undefined;
30290
+ readonly options?: {
30291
+ label: string;
30292
+ value: string;
30293
+ color?: string | undefined;
30294
+ default?: boolean | undefined;
30295
+ }[] | undefined;
30296
+ readonly description?: string | undefined;
30297
+ readonly label?: string | undefined;
30298
+ readonly name?: string | undefined;
30299
+ readonly precision?: number | undefined;
30300
+ readonly required?: boolean | undefined;
30301
+ readonly multiple?: boolean | undefined;
30302
+ readonly dependencies?: string[] | undefined;
30303
+ readonly theme?: string | undefined;
30304
+ readonly externalId?: boolean | undefined;
30305
+ readonly system?: boolean | undefined;
30306
+ readonly min?: number | undefined;
30307
+ readonly max?: number | undefined;
30308
+ readonly group?: string | undefined;
30309
+ readonly encryptionConfig?: {
30310
+ enabled: boolean;
30311
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
30312
+ keyManagement: {
30313
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
30314
+ keyId?: string | undefined;
30315
+ rotationPolicy?: {
30316
+ enabled: boolean;
30317
+ frequencyDays: number;
30318
+ retainOldVersions: number;
30319
+ autoRotate: boolean;
30320
+ } | undefined;
30321
+ };
30322
+ scope: "record" | "field" | "table" | "database";
30323
+ deterministicEncryption: boolean;
30324
+ searchableEncryption: boolean;
30325
+ } | undefined;
30326
+ readonly columnName?: string | undefined;
30327
+ readonly searchable?: boolean | undefined;
30328
+ readonly unique?: boolean | undefined;
30329
+ readonly defaultValue?: unknown;
30330
+ readonly maxLength?: number | undefined;
30331
+ readonly minLength?: number | undefined;
30332
+ readonly scale?: number | undefined;
30333
+ readonly reference?: string | undefined;
30334
+ readonly referenceFilters?: string[] | undefined;
30335
+ readonly writeRequiresMasterRead?: boolean | undefined;
30336
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
30337
+ readonly expression?: {
30338
+ dialect: "cel" | "js" | "cron" | "template";
30339
+ source?: string | undefined;
30340
+ ast?: unknown;
30341
+ meta?: {
30342
+ rationale?: string | undefined;
30343
+ generatedBy?: string | undefined;
30344
+ } | undefined;
30345
+ } | undefined;
30346
+ readonly summaryOperations?: {
30347
+ object: string;
30348
+ field: string;
30349
+ function: "min" | "max" | "count" | "sum" | "avg";
30350
+ } | undefined;
30351
+ readonly language?: string | undefined;
30352
+ readonly lineNumbers?: boolean | undefined;
30353
+ readonly maxRating?: number | undefined;
30354
+ readonly allowHalf?: boolean | undefined;
30355
+ readonly displayMap?: boolean | undefined;
30356
+ readonly allowGeocoding?: boolean | undefined;
30357
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
30358
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
30359
+ readonly allowAlpha?: boolean | undefined;
30360
+ readonly presetColors?: string[] | undefined;
30361
+ readonly step?: number | undefined;
30362
+ readonly showValue?: boolean | undefined;
30363
+ readonly marks?: Record<string, string> | undefined;
30364
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
30365
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
30366
+ readonly displayValue?: boolean | undefined;
30367
+ readonly allowScanning?: boolean | undefined;
30368
+ readonly currencyConfig?: {
30369
+ precision: number;
30370
+ currencyMode: "fixed" | "dynamic";
30371
+ defaultCurrency: string;
30372
+ } | undefined;
30373
+ readonly vectorConfig?: {
30374
+ dimensions: number;
30375
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
30376
+ normalized: boolean;
30377
+ indexed: boolean;
30378
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
30379
+ } | undefined;
30380
+ readonly fileAttachmentConfig?: {
30381
+ virusScan: boolean;
30382
+ virusScanOnUpload: boolean;
30383
+ quarantineOnThreat: boolean;
30384
+ allowMultiple: boolean;
30385
+ allowReplace: boolean;
30386
+ allowDelete: boolean;
30387
+ requireUpload: boolean;
30388
+ extractMetadata: boolean;
30389
+ extractText: boolean;
30390
+ versioningEnabled: boolean;
30391
+ publicRead: boolean;
30392
+ presignedUrlExpiry: number;
30393
+ minSize?: number | undefined;
30394
+ maxSize?: number | undefined;
30395
+ allowedTypes?: string[] | undefined;
30396
+ blockedTypes?: string[] | undefined;
30397
+ allowedMimeTypes?: string[] | undefined;
30398
+ blockedMimeTypes?: string[] | undefined;
30399
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
30400
+ storageProvider?: string | undefined;
30401
+ storageBucket?: string | undefined;
30402
+ storagePrefix?: string | undefined;
30403
+ imageValidation?: {
30404
+ generateThumbnails: boolean;
30405
+ preserveMetadata: boolean;
30406
+ autoRotate: boolean;
30407
+ minWidth?: number | undefined;
30408
+ maxWidth?: number | undefined;
30409
+ minHeight?: number | undefined;
30410
+ maxHeight?: number | undefined;
30411
+ aspectRatio?: string | undefined;
30412
+ thumbnailSizes?: {
30413
+ name: string;
30414
+ width: number;
30415
+ height: number;
30416
+ crop: boolean;
30417
+ }[] | undefined;
30418
+ } | undefined;
30419
+ maxVersions?: number | undefined;
30420
+ } | undefined;
30421
+ readonly maskingRule?: {
30422
+ field: string;
30423
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
30424
+ preserveFormat: boolean;
30425
+ preserveLength: boolean;
30426
+ pattern?: string | undefined;
30427
+ roles?: string[] | undefined;
30428
+ exemptRoles?: string[] | undefined;
30429
+ } | undefined;
30430
+ readonly auditTrail?: boolean | undefined;
30431
+ readonly cached?: {
30432
+ enabled: boolean;
30433
+ ttl: number;
30434
+ invalidateOn: string[];
30435
+ } | undefined;
30436
+ readonly dataQuality?: {
30437
+ uniqueness: boolean;
30438
+ completeness: number;
30439
+ accuracy?: {
30440
+ source: string;
30441
+ threshold: number;
30442
+ } | undefined;
30443
+ } | undefined;
30444
+ readonly conditionalRequired?: {
30445
+ dialect: "cel" | "js" | "cron" | "template";
30446
+ source?: string | undefined;
30447
+ ast?: unknown;
30448
+ meta?: {
30449
+ rationale?: string | undefined;
30450
+ generatedBy?: string | undefined;
30451
+ } | undefined;
30452
+ } | undefined;
30453
+ readonly hidden?: boolean | undefined;
30454
+ readonly sortable?: boolean | undefined;
30455
+ readonly inlineHelpText?: string | undefined;
30456
+ readonly trackFeedHistory?: boolean | undefined;
30457
+ readonly caseSensitive?: boolean | undefined;
30458
+ readonly autonumberFormat?: string | undefined;
30459
+ readonly index?: boolean | undefined;
30460
+ readonly type: "boolean";
30461
+ };
29808
30462
  };
29809
30463
  readonly indexes: [{
29810
30464
  readonly fields: ["user_id"];
@@ -30446,7 +31100,7 @@ declare const SysDeviceCode: Omit<{
30446
31100
  refreshAfter: boolean;
30447
31101
  objectName?: string | undefined;
30448
31102
  icon?: string | undefined;
30449
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
31103
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
30450
31104
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
30451
31105
  target?: string | undefined;
30452
31106
  body?: {
@@ -30479,6 +31133,17 @@ declare const SysDeviceCode: Omit<{
30479
31133
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
30480
31134
  confirmText?: string | undefined;
30481
31135
  successMessage?: string | undefined;
31136
+ resultDialog?: {
31137
+ title?: string | undefined;
31138
+ description?: string | undefined;
31139
+ acknowledge?: string | undefined;
31140
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
31141
+ fields?: {
31142
+ path: string;
31143
+ label?: string | undefined;
31144
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
31145
+ }[] | undefined;
31146
+ } | undefined;
30482
31147
  visible?: {
30483
31148
  dialect: "cel" | "js" | "cron" | "template";
30484
31149
  source?: string | undefined;
@@ -33274,7 +33939,7 @@ declare const SysUserPreference: Omit<{
33274
33939
  refreshAfter: boolean;
33275
33940
  objectName?: string | undefined;
33276
33941
  icon?: string | undefined;
33277
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
33942
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
33278
33943
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
33279
33944
  target?: string | undefined;
33280
33945
  body?: {
@@ -33307,6 +33972,17 @@ declare const SysUserPreference: Omit<{
33307
33972
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
33308
33973
  confirmText?: string | undefined;
33309
33974
  successMessage?: string | undefined;
33975
+ resultDialog?: {
33976
+ title?: string | undefined;
33977
+ description?: string | undefined;
33978
+ acknowledge?: string | undefined;
33979
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
33980
+ fields?: {
33981
+ path: string;
33982
+ label?: string | undefined;
33983
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
33984
+ }[] | undefined;
33985
+ } | undefined;
33310
33986
  visible?: {
33311
33987
  dialect: "cel" | "js" | "cron" | "template";
33312
33988
  source?: string | undefined;
@@ -35114,7 +35790,7 @@ declare const SysOauthApplication: Omit<{
35114
35790
  refreshAfter: boolean;
35115
35791
  objectName?: string | undefined;
35116
35792
  icon?: string | undefined;
35117
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
35793
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
35118
35794
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
35119
35795
  target?: string | undefined;
35120
35796
  body?: {
@@ -35147,6 +35823,17 @@ declare const SysOauthApplication: Omit<{
35147
35823
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
35148
35824
  confirmText?: string | undefined;
35149
35825
  successMessage?: string | undefined;
35826
+ resultDialog?: {
35827
+ title?: string | undefined;
35828
+ description?: string | undefined;
35829
+ acknowledge?: string | undefined;
35830
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
35831
+ fields?: {
35832
+ path: string;
35833
+ label?: string | undefined;
35834
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
35835
+ }[] | undefined;
35836
+ } | undefined;
35150
35837
  visible?: {
35151
35838
  dialect: "cel" | "js" | "cron" | "template";
35152
35839
  source?: string | undefined;
@@ -35240,6 +35927,62 @@ declare const SysOauthApplication: Omit<{
35240
35927
  readonly defaultFromRow: true;
35241
35928
  readonly required: true;
35242
35929
  }];
35930
+ }, {
35931
+ readonly name: "create_oauth_application";
35932
+ readonly label: "Register OAuth Application";
35933
+ readonly icon: "plus-circle";
35934
+ readonly variant: "primary";
35935
+ readonly mode: "create";
35936
+ readonly locations: ["list_toolbar"];
35937
+ readonly type: "api";
35938
+ readonly method: "POST";
35939
+ readonly target: "/api/v1/auth/oauth2/register";
35940
+ readonly refreshAfter: true;
35941
+ readonly params: [{
35942
+ readonly name: "name";
35943
+ readonly label: "Application Name";
35944
+ readonly type: "text";
35945
+ readonly required: true;
35946
+ }, {
35947
+ readonly name: "redirectURLs";
35948
+ readonly label: "Redirect URLs";
35949
+ readonly type: "textarea";
35950
+ readonly required: true;
35951
+ readonly helpText: "One URL per line. Must use https:// in production.";
35952
+ }, {
35953
+ readonly name: "type";
35954
+ readonly label: "Application Type";
35955
+ readonly type: "select";
35956
+ readonly required: true;
35957
+ readonly defaultValue: "web";
35958
+ readonly options: [{
35959
+ readonly label: "Web";
35960
+ readonly value: "web";
35961
+ }, {
35962
+ readonly label: "Native";
35963
+ readonly value: "native";
35964
+ }, {
35965
+ readonly label: "User-agent based";
35966
+ readonly value: "user-agent-based";
35967
+ }, {
35968
+ readonly label: "Public";
35969
+ readonly value: "public";
35970
+ }];
35971
+ }];
35972
+ readonly resultDialog: {
35973
+ readonly title: "OAuth application registered";
35974
+ readonly description: "Save the client_secret now — it is shown only once and cannot be recovered. You can rotate it later if it leaks.";
35975
+ readonly acknowledge: "I have saved the client secret";
35976
+ readonly fields: [{
35977
+ readonly path: "client.client_id";
35978
+ readonly label: "Client ID";
35979
+ readonly format: "text";
35980
+ }, {
35981
+ readonly path: "client.client_secret";
35982
+ readonly label: "Client Secret";
35983
+ readonly format: "secret";
35984
+ }];
35985
+ };
35243
35986
  }, {
35244
35987
  readonly name: "rotate_client_secret";
35245
35988
  readonly label: "Rotate Client Secret";
@@ -35251,7 +35994,6 @@ declare const SysOauthApplication: Omit<{
35251
35994
  readonly method: "POST";
35252
35995
  readonly target: "/api/v1/auth/oauth2/client/rotate-secret";
35253
35996
  readonly confirmText: "Rotate this OAuth client's secret? The previous secret will stop working immediately and any integrations using it will break until they are updated with the new secret. The new secret is shown only once.";
35254
- readonly successMessage: "Client secret rotated — copy the new value from the response now.";
35255
35997
  readonly refreshAfter: true;
35256
35998
  readonly params: [{
35257
35999
  readonly name: "client_id";
@@ -35259,6 +36001,16 @@ declare const SysOauthApplication: Omit<{
35259
36001
  readonly defaultFromRow: true;
35260
36002
  readonly required: true;
35261
36003
  }];
36004
+ readonly resultDialog: {
36005
+ readonly title: "Client secret rotated";
36006
+ readonly description: "Save the new secret now — it is shown only once. Update every integration before the previous secret's grace period ends.";
36007
+ readonly acknowledge: "I have updated my integrations";
36008
+ readonly fields: [{
36009
+ readonly path: "client_secret";
36010
+ readonly label: "New Client Secret";
36011
+ readonly format: "secret";
36012
+ }];
36013
+ };
35262
36014
  }, {
35263
36015
  readonly name: "delete_oauth_application";
35264
36016
  readonly label: "Delete OAuth Application";
@@ -35280,6 +36032,28 @@ declare const SysOauthApplication: Omit<{
35280
36032
  }];
35281
36033
  }];
35282
36034
  readonly listViews: {
36035
+ readonly mine: {
36036
+ readonly type: "grid";
36037
+ readonly name: "mine";
36038
+ readonly label: "My Applications";
36039
+ readonly data: {
36040
+ readonly provider: "object";
36041
+ readonly object: "sys_oauth_application";
36042
+ };
36043
+ readonly columns: ["name", "client_id", "type", "disabled", "created_at"];
36044
+ readonly filter: [{
36045
+ readonly field: "user_id";
36046
+ readonly operator: "equals";
36047
+ readonly value: "{current_user_id}";
36048
+ }];
36049
+ readonly sort: [{
36050
+ readonly field: "created_at";
36051
+ readonly order: "desc";
36052
+ }];
36053
+ readonly pagination: {
36054
+ readonly pageSize: 50;
36055
+ };
36056
+ };
35283
36057
  readonly active: {
35284
36058
  readonly type: "grid";
35285
36059
  readonly name: "active";
@@ -41234,7 +42008,7 @@ declare const SysOauthAccessToken: Omit<{
41234
42008
  refreshAfter: boolean;
41235
42009
  objectName?: string | undefined;
41236
42010
  icon?: string | undefined;
41237
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
42011
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
41238
42012
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
41239
42013
  target?: string | undefined;
41240
42014
  body?: {
@@ -41267,6 +42041,17 @@ declare const SysOauthAccessToken: Omit<{
41267
42041
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
41268
42042
  confirmText?: string | undefined;
41269
42043
  successMessage?: string | undefined;
42044
+ resultDialog?: {
42045
+ title?: string | undefined;
42046
+ description?: string | undefined;
42047
+ acknowledge?: string | undefined;
42048
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
42049
+ fields?: {
42050
+ path: string;
42051
+ label?: string | undefined;
42052
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
42053
+ }[] | undefined;
42054
+ } | undefined;
41270
42055
  visible?: {
41271
42056
  dialect: "cel" | "js" | "cron" | "template";
41272
42057
  source?: string | undefined;
@@ -43707,7 +44492,7 @@ declare const SysOauthRefreshToken: Omit<{
43707
44492
  refreshAfter: boolean;
43708
44493
  objectName?: string | undefined;
43709
44494
  icon?: string | undefined;
43710
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
44495
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
43711
44496
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
43712
44497
  target?: string | undefined;
43713
44498
  body?: {
@@ -43740,6 +44525,17 @@ declare const SysOauthRefreshToken: Omit<{
43740
44525
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
43741
44526
  confirmText?: string | undefined;
43742
44527
  successMessage?: string | undefined;
44528
+ resultDialog?: {
44529
+ title?: string | undefined;
44530
+ description?: string | undefined;
44531
+ acknowledge?: string | undefined;
44532
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
44533
+ fields?: {
44534
+ path: string;
44535
+ label?: string | undefined;
44536
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
44537
+ }[] | undefined;
44538
+ } | undefined;
43743
44539
  visible?: {
43744
44540
  dialect: "cel" | "js" | "cron" | "template";
43745
44541
  source?: string | undefined;
@@ -46355,7 +47151,7 @@ declare const SysOauthConsent: Omit<{
46355
47151
  refreshAfter: boolean;
46356
47152
  objectName?: string | undefined;
46357
47153
  icon?: string | undefined;
46358
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
47154
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
46359
47155
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
46360
47156
  target?: string | undefined;
46361
47157
  body?: {
@@ -46388,6 +47184,17 @@ declare const SysOauthConsent: Omit<{
46388
47184
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
46389
47185
  confirmText?: string | undefined;
46390
47186
  successMessage?: string | undefined;
47187
+ resultDialog?: {
47188
+ title?: string | undefined;
47189
+ description?: string | undefined;
47190
+ acknowledge?: string | undefined;
47191
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
47192
+ fields?: {
47193
+ path: string;
47194
+ label?: string | undefined;
47195
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
47196
+ }[] | undefined;
47197
+ } | undefined;
46391
47198
  visible?: {
46392
47199
  dialect: "cel" | "js" | "cron" | "template";
46393
47200
  source?: string | undefined;
@@ -48296,7 +49103,7 @@ declare const SysJwks: Omit<{
48296
49103
  refreshAfter: boolean;
48297
49104
  objectName?: string | undefined;
48298
49105
  icon?: string | undefined;
48299
- locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
49106
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "record_section" | "global_nav")[] | undefined;
48300
49107
  component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
48301
49108
  target?: string | undefined;
48302
49109
  body?: {
@@ -48329,6 +49136,17 @@ declare const SysJwks: Omit<{
48329
49136
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
48330
49137
  confirmText?: string | undefined;
48331
49138
  successMessage?: string | undefined;
49139
+ resultDialog?: {
49140
+ title?: string | undefined;
49141
+ description?: string | undefined;
49142
+ acknowledge?: string | undefined;
49143
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
49144
+ fields?: {
49145
+ path: string;
49146
+ label?: string | undefined;
49147
+ format?: "secret" | "text" | "json" | "qrcode" | "code-list" | undefined;
49148
+ }[] | undefined;
49149
+ } | undefined;
48332
49150
  visible?: {
48333
49151
  dialect: "cel" | "js" | "cron" | "template";
48334
49152
  source?: string | undefined;