@objectstack/plugin-security 4.0.5 → 4.1.1

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.
package/dist/index.d.mts CHANGED
@@ -82,6 +82,17 @@ declare class SecurityPlugin implements Plugin {
82
82
  * invalidation — a kernel restart drops the cache.
83
83
  */
84
84
  private readonly fieldNamesCache;
85
+ /**
86
+ * Per-object cache of tenancy opt-out. `true` means the schema
87
+ * explicitly disabled multi-tenancy (`tenancy.enabled === false` or
88
+ * `systemFields.tenant === false`). Wildcard policies that target
89
+ * the conventional tenant column (`organization_id`) are treated as
90
+ * *not applicable* on these tables instead of triggering the
91
+ * field-missing deny sentinel — without this, every read of a
92
+ * cross-org catalog (e.g. `sys_package`, the Marketplace) returns
93
+ * zero rows.
94
+ */
95
+ private readonly tenancyDisabledCache;
85
96
  constructor(options?: SecurityPluginOptions);
86
97
  init(ctx: PluginContext): Promise<void>;
87
98
  start(ctx: PluginContext): Promise<void>;
@@ -144,7 +155,13 @@ declare class PermissionEvaluator {
144
155
  * SecurityPlugin would never resolve the defaults and all enforcement
145
156
  * would be silently disabled for authenticated requests.
146
157
  */
147
- resolvePermissionSets(identifiers: string[], metadataService: any, bootstrapPermissionSets?: PermissionSet[]): Promise<PermissionSet[]>;
158
+ resolvePermissionSets(identifiers: string[], metadataService: any, bootstrapPermissionSets?: PermissionSet[],
159
+ /**
160
+ * Optional async loader for permission set names that aren't found in
161
+ * metadata or bootstrap. Lets callers query user-defined permission
162
+ * sets persisted in `sys_permission_set`. Failures are swallowed.
163
+ */
164
+ dbLoader?: (unresolved: string[]) => Promise<PermissionSet[]>): Promise<PermissionSet[]>;
148
165
  }
149
166
 
150
167
  /**
@@ -237,6 +254,27 @@ declare class FieldMasker {
237
254
  * Strip non-editable fields from write data.
238
255
  */
239
256
  stripNonEditableFields(data: Record<string, any>, fieldPermissions: Record<string, FieldPermission>): Record<string, any>;
257
+ /**
258
+ * Detect which fields in the caller's write payload would touch a
259
+ * field they are not allowed to edit. Returns the set of offending
260
+ * field names (no duplicates, sorted for stable error messages).
261
+ *
262
+ * Used by the security middleware on insert/update to fail-closed
263
+ * with an explicit 403 rather than silently dropping fields — a
264
+ * silent drop hides the security boundary from honest clients
265
+ * (their update partially "doesn't save") and gives an attacker no
266
+ * negative signal that the field exists. Throwing makes the
267
+ * boundary observable in both directions.
268
+ *
269
+ * `data` may be a single record or an array of records (bulk insert);
270
+ * either way the returned list is the union across all rows.
271
+ *
272
+ * Fields without a permission entry pass through — permission sets
273
+ * are an allow-list at the field level only for fields they
274
+ * explicitly enumerate. Most objects do not declare per-field rules
275
+ * and remain fully editable.
276
+ */
277
+ detectForbiddenWrites(data: Record<string, any> | Record<string, any>[], fieldPermissions: Record<string, FieldPermission>): string[];
240
278
  private maskRecord;
241
279
  }
242
280
 
@@ -485,6 +523,7 @@ declare const securityObjects: ((Omit<{
485
523
  generatedBy?: string | undefined;
486
524
  } | undefined;
487
525
  } | undefined;
526
+ system?: boolean | undefined;
488
527
  inlineHelpText?: string | undefined;
489
528
  trackFeedHistory?: boolean | undefined;
490
529
  caseSensitive?: boolean | undefined;
@@ -495,7 +534,14 @@ declare const securityObjects: ((Omit<{
495
534
  description?: string | undefined;
496
535
  icon?: string | undefined;
497
536
  tags?: string[] | undefined;
498
- managedBy?: "system" | "better-auth" | "platform" | undefined;
537
+ managedBy?: "system" | "config" | "platform" | "append-only" | "better-auth" | undefined;
538
+ userActions?: {
539
+ create?: boolean | undefined;
540
+ import?: boolean | undefined;
541
+ edit?: boolean | undefined;
542
+ delete?: boolean | undefined;
543
+ exportCsv?: boolean | undefined;
544
+ } | undefined;
499
545
  systemFields?: false | {
500
546
  tenant?: boolean | undefined;
501
547
  owner?: boolean | undefined;
@@ -615,6 +661,241 @@ declare const securityObjects: ((Omit<{
615
661
  } | undefined;
616
662
  } | undefined;
617
663
  compactLayout?: string[] | undefined;
664
+ listViews?: Record<string, {
665
+ type: "kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "chart" | "map" | "grid";
666
+ columns: string[] | {
667
+ field: string;
668
+ label?: string | undefined;
669
+ width?: number | undefined;
670
+ align?: "left" | "center" | "right" | undefined;
671
+ hidden?: boolean | undefined;
672
+ sortable?: boolean | undefined;
673
+ resizable?: boolean | undefined;
674
+ wrap?: boolean | undefined;
675
+ type?: string | undefined;
676
+ pinned?: "left" | "right" | undefined;
677
+ summary?: "min" | "max" | "count" | "sum" | "avg" | "none" | "count_empty" | "count_filled" | "count_unique" | "percent_empty" | "percent_filled" | undefined;
678
+ link?: boolean | undefined;
679
+ action?: string | undefined;
680
+ }[];
681
+ name?: string | undefined;
682
+ label?: string | undefined;
683
+ data?: {
684
+ provider: "object";
685
+ object: string;
686
+ } | {
687
+ provider: "api";
688
+ read?: {
689
+ url: string;
690
+ method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
691
+ headers?: Record<string, string> | undefined;
692
+ params?: Record<string, unknown> | undefined;
693
+ body?: unknown;
694
+ } | undefined;
695
+ write?: {
696
+ url: string;
697
+ method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
698
+ headers?: Record<string, string> | undefined;
699
+ params?: Record<string, unknown> | undefined;
700
+ body?: unknown;
701
+ } | undefined;
702
+ } | {
703
+ provider: "value";
704
+ items: unknown[];
705
+ } | undefined;
706
+ filter?: {
707
+ field: string;
708
+ operator: string;
709
+ value?: string | number | boolean | (string | number)[] | null | undefined;
710
+ }[] | undefined;
711
+ sort?: string | {
712
+ field: string;
713
+ order: "asc" | "desc";
714
+ }[] | undefined;
715
+ searchableFields?: string[] | undefined;
716
+ filterableFields?: string[] | undefined;
717
+ resizable?: boolean | undefined;
718
+ striped?: boolean | undefined;
719
+ bordered?: boolean | undefined;
720
+ compactToolbar?: boolean | undefined;
721
+ selection?: {
722
+ type: "multiple" | "single" | "none";
723
+ } | undefined;
724
+ navigation?: {
725
+ mode: "none" | "split" | "page" | "modal" | "drawer" | "popover" | "new_window";
726
+ preventNavigation: boolean;
727
+ openNewTab: boolean;
728
+ view?: string | undefined;
729
+ width?: string | number | undefined;
730
+ } | undefined;
731
+ pagination?: {
732
+ pageSize: number;
733
+ pageSizeOptions?: number[] | undefined;
734
+ } | undefined;
735
+ kanban?: {
736
+ groupByField: string;
737
+ columns: string[];
738
+ summarizeField?: string | undefined;
739
+ } | undefined;
740
+ calendar?: {
741
+ startDateField: string;
742
+ titleField: string;
743
+ endDateField?: string | undefined;
744
+ colorField?: string | undefined;
745
+ } | undefined;
746
+ gantt?: {
747
+ startDateField: string;
748
+ endDateField: string;
749
+ titleField: string;
750
+ progressField?: string | undefined;
751
+ dependenciesField?: string | undefined;
752
+ } | undefined;
753
+ gallery?: {
754
+ coverFit: "cover" | "contain";
755
+ cardSize: "small" | "medium" | "large";
756
+ coverField?: string | undefined;
757
+ titleField?: string | undefined;
758
+ visibleFields?: string[] | undefined;
759
+ } | undefined;
760
+ timeline?: {
761
+ startDateField: string;
762
+ titleField: string;
763
+ scale: "hour" | "day" | "week" | "month" | "quarter" | "year";
764
+ endDateField?: string | undefined;
765
+ groupByField?: string | undefined;
766
+ colorField?: string | undefined;
767
+ } | undefined;
768
+ chart?: {
769
+ chartType: "bar" | "line" | "pie" | "area" | "scatter";
770
+ xAxisField: string;
771
+ yAxisFields: string[];
772
+ aggregation?: "min" | "max" | "count" | "sum" | "avg" | undefined;
773
+ groupByField?: string | undefined;
774
+ } | undefined;
775
+ description?: string | undefined;
776
+ sharing?: {
777
+ type: "personal" | "collaborative";
778
+ lockedBy?: string | undefined;
779
+ } | undefined;
780
+ rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
781
+ grouping?: {
782
+ fields: {
783
+ field: string;
784
+ order: "asc" | "desc";
785
+ collapsed: boolean;
786
+ }[];
787
+ } | undefined;
788
+ rowColor?: {
789
+ field: string;
790
+ colors?: Record<string, string> | undefined;
791
+ } | undefined;
792
+ hiddenFields?: string[] | undefined;
793
+ fieldOrder?: string[] | undefined;
794
+ rowActions?: string[] | undefined;
795
+ bulkActions?: string[] | undefined;
796
+ bulkActionDefs?: Record<string, any>[] | undefined;
797
+ virtualScroll?: boolean | undefined;
798
+ conditionalFormatting?: {
799
+ condition: {
800
+ dialect: "cel" | "js" | "cron" | "template";
801
+ source?: string | undefined;
802
+ ast?: unknown;
803
+ meta?: {
804
+ rationale?: string | undefined;
805
+ generatedBy?: string | undefined;
806
+ } | undefined;
807
+ } | {
808
+ dialect: "cel" | "js" | "cron" | "template";
809
+ source?: string | undefined;
810
+ ast?: unknown;
811
+ meta?: {
812
+ rationale?: string | undefined;
813
+ generatedBy?: string | undefined;
814
+ } | undefined;
815
+ };
816
+ style: Record<string, string>;
817
+ }[] | undefined;
818
+ inlineEdit?: boolean | undefined;
819
+ exportOptions?: ("json" | "csv" | "xlsx" | "pdf")[] | undefined;
820
+ userActions?: {
821
+ sort: boolean;
822
+ search: boolean;
823
+ filter: boolean;
824
+ rowHeight: boolean;
825
+ addRecordForm: boolean;
826
+ buttons?: string[] | undefined;
827
+ } | undefined;
828
+ appearance?: {
829
+ showDescription: boolean;
830
+ allowedVisualizations?: ("kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "map" | "grid")[] | undefined;
831
+ } | undefined;
832
+ tabs?: {
833
+ name: string;
834
+ pinned: boolean;
835
+ isDefault: boolean;
836
+ visible: boolean;
837
+ label?: string | undefined;
838
+ icon?: string | undefined;
839
+ view?: string | undefined;
840
+ filter?: {
841
+ field: string;
842
+ operator: string;
843
+ value?: string | number | boolean | (string | number)[] | null | undefined;
844
+ }[] | undefined;
845
+ order?: number | undefined;
846
+ }[] | undefined;
847
+ addRecord?: {
848
+ enabled: boolean;
849
+ position: "top" | "bottom" | "both";
850
+ mode: "modal" | "form" | "inline";
851
+ formView?: string | undefined;
852
+ } | undefined;
853
+ showRecordCount?: boolean | undefined;
854
+ allowPrinting?: boolean | undefined;
855
+ emptyState?: {
856
+ title?: string | undefined;
857
+ message?: string | undefined;
858
+ icon?: string | undefined;
859
+ } | undefined;
860
+ aria?: {
861
+ ariaLabel?: string | undefined;
862
+ ariaDescribedBy?: string | undefined;
863
+ role?: string | undefined;
864
+ } | undefined;
865
+ responsive?: {
866
+ breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
867
+ hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
868
+ columns?: {
869
+ xs?: number | undefined;
870
+ sm?: number | undefined;
871
+ md?: number | undefined;
872
+ lg?: number | undefined;
873
+ xl?: number | undefined;
874
+ "2xl"?: number | undefined;
875
+ } | undefined;
876
+ order?: {
877
+ xs?: number | undefined;
878
+ sm?: number | undefined;
879
+ md?: number | undefined;
880
+ lg?: number | undefined;
881
+ xl?: number | undefined;
882
+ "2xl"?: number | undefined;
883
+ } | undefined;
884
+ } | undefined;
885
+ performance?: {
886
+ lazyLoad?: boolean | undefined;
887
+ virtualScroll?: {
888
+ enabled: boolean;
889
+ itemHeight?: number | undefined;
890
+ overscan?: number | undefined;
891
+ } | undefined;
892
+ cacheStrategy?: "none" | "cache-first" | "network-first" | "stale-while-revalidate" | undefined;
893
+ prefetch?: boolean | undefined;
894
+ pageSize?: number | undefined;
895
+ debounceMs?: number | undefined;
896
+ } | undefined;
897
+ }> | undefined;
898
+ defaultDetailForm?: string | undefined;
618
899
  search?: {
619
900
  fields: string[];
620
901
  displayFields?: string[] | undefined;
@@ -630,15 +911,15 @@ declare const securityObjects: ((Omit<{
630
911
  trash: boolean;
631
912
  mru: boolean;
632
913
  clone: boolean;
633
- apiMethods?: ("search" | "list" | "get" | "delete" | "update" | "upsert" | "history" | "create" | "bulk" | "aggregate" | "restore" | "purge" | "import" | "export")[] | undefined;
914
+ apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "history" | "bulk" | "aggregate" | "restore" | "purge" | "export")[] | undefined;
634
915
  } | undefined;
635
916
  recordTypes?: string[] | undefined;
636
- sharingModel?: "full" | "private" | "read" | "read_write" | undefined;
917
+ sharingModel?: "read" | "full" | "private" | "read_write" | undefined;
637
918
  keyPrefix?: string | undefined;
638
919
  actions?: {
639
920
  name: string;
640
921
  label: string;
641
- type: "url" | "flow" | "api" | "script" | "modal";
922
+ type: "url" | "flow" | "api" | "script" | "modal" | "form";
642
923
  refreshAfter: boolean;
643
924
  objectName?: string | undefined;
644
925
  icon?: string | undefined;
@@ -657,14 +938,20 @@ declare const securityObjects: ((Omit<{
657
938
  } | undefined;
658
939
  execute?: string | undefined;
659
940
  params?: {
660
- name: string;
661
- label: string;
662
- type: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector";
663
941
  required: boolean;
942
+ name?: string | undefined;
943
+ field?: string | undefined;
944
+ objectOverride?: string | undefined;
945
+ label?: string | undefined;
946
+ type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
664
947
  options?: {
665
948
  label: string;
666
949
  value: string;
667
950
  }[] | undefined;
951
+ placeholder?: string | undefined;
952
+ helpText?: string | undefined;
953
+ defaultValue?: unknown;
954
+ defaultFromRow?: boolean | undefined;
668
955
  }[] | undefined;
669
956
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
670
957
  confirmText?: string | undefined;
@@ -689,6 +976,14 @@ declare const securityObjects: ((Omit<{
689
976
  } | undefined;
690
977
  shortcut?: string | undefined;
691
978
  bulkEnabled?: boolean | undefined;
979
+ recordIdParam?: string | undefined;
980
+ recordIdField?: string | undefined;
981
+ bodyShape?: "flat" | {
982
+ wrap: string;
983
+ } | undefined;
984
+ method?: "POST" | "PATCH" | "PUT" | "DELETE" | undefined;
985
+ bodyExtra?: Record<string, unknown> | undefined;
986
+ mode?: "custom" | "delete" | "create" | "edit" | undefined;
692
987
  timeout?: number | undefined;
693
988
  aria?: {
694
989
  ariaLabel?: string | undefined;
@@ -702,10 +997,96 @@ declare const securityObjects: ((Omit<{
702
997
  readonly pluralLabel: "Roles";
703
998
  readonly icon: "shield";
704
999
  readonly isSystem: true;
1000
+ readonly managedBy: "config";
705
1001
  readonly description: "Role definitions for RBAC access control";
706
1002
  readonly displayNameField: "label";
707
1003
  readonly titleFormat: "{label}";
708
1004
  readonly compactLayout: ["label", "name", "active", "is_default"];
1005
+ readonly listViews: {
1006
+ readonly active: {
1007
+ readonly type: "grid";
1008
+ readonly name: "active";
1009
+ readonly label: "Active";
1010
+ readonly data: {
1011
+ readonly provider: "object";
1012
+ readonly object: "sys_role";
1013
+ };
1014
+ readonly columns: ["label", "name", "is_default", "updated_at"];
1015
+ readonly filter: [{
1016
+ readonly field: "active";
1017
+ readonly operator: "equals";
1018
+ readonly value: true;
1019
+ }];
1020
+ readonly sort: [{
1021
+ readonly field: "label";
1022
+ readonly order: "asc";
1023
+ }];
1024
+ readonly pagination: {
1025
+ readonly pageSize: 50;
1026
+ };
1027
+ };
1028
+ readonly default_roles: {
1029
+ readonly type: "grid";
1030
+ readonly name: "default_roles";
1031
+ readonly label: "Default";
1032
+ readonly data: {
1033
+ readonly provider: "object";
1034
+ readonly object: "sys_role";
1035
+ };
1036
+ readonly columns: ["label", "name", "description", "active"];
1037
+ readonly filter: [{
1038
+ readonly field: "is_default";
1039
+ readonly operator: "equals";
1040
+ readonly value: true;
1041
+ }];
1042
+ readonly sort: [{
1043
+ readonly field: "label";
1044
+ readonly order: "asc";
1045
+ }];
1046
+ readonly pagination: {
1047
+ readonly pageSize: 50;
1048
+ };
1049
+ };
1050
+ readonly custom: {
1051
+ readonly type: "grid";
1052
+ readonly name: "custom";
1053
+ readonly label: "Custom";
1054
+ readonly data: {
1055
+ readonly provider: "object";
1056
+ readonly object: "sys_role";
1057
+ };
1058
+ readonly columns: ["label", "name", "active", "updated_at"];
1059
+ readonly filter: [{
1060
+ readonly field: "is_default";
1061
+ readonly operator: "equals";
1062
+ readonly value: false;
1063
+ }];
1064
+ readonly sort: [{
1065
+ readonly field: "label";
1066
+ readonly order: "asc";
1067
+ }];
1068
+ readonly pagination: {
1069
+ readonly pageSize: 50;
1070
+ };
1071
+ };
1072
+ readonly all_roles: {
1073
+ readonly type: "grid";
1074
+ readonly name: "all_roles";
1075
+ readonly label: "All";
1076
+ readonly data: {
1077
+ readonly provider: "object";
1078
+ readonly object: "sys_role";
1079
+ };
1080
+ readonly columns: ["label", "name", "active", "is_default", "updated_at"];
1081
+ readonly sort: [{
1082
+ readonly field: "label";
1083
+ readonly order: "asc";
1084
+ }];
1085
+ readonly pagination: {
1086
+ readonly pageSize: 50;
1087
+ };
1088
+ };
1089
+ };
709
1090
  readonly fields: {
710
1091
  readonly label: {
711
1092
  readonly readonly?: boolean | undefined;
@@ -725,6 +1106,7 @@ declare const securityObjects: ((Omit<{
725
1106
  readonly dependencies?: string[] | undefined;
726
1107
  readonly theme?: string | undefined;
727
1108
  readonly externalId?: boolean | undefined;
1109
+ readonly system?: boolean | undefined;
728
1110
  readonly min?: number | undefined;
729
1111
  readonly max?: number | undefined;
730
1112
  readonly group?: string | undefined;
@@ -899,6 +1281,7 @@ declare const securityObjects: ((Omit<{
899
1281
  readonly dependencies?: string[] | undefined;
900
1282
  readonly theme?: string | undefined;
901
1283
  readonly externalId?: boolean | undefined;
1284
+ readonly system?: boolean | undefined;
902
1285
  readonly min?: number | undefined;
903
1286
  readonly max?: number | undefined;
904
1287
  readonly group?: string | undefined;
@@ -1073,6 +1456,7 @@ declare const securityObjects: ((Omit<{
1073
1456
  readonly dependencies?: string[] | undefined;
1074
1457
  readonly theme?: string | undefined;
1075
1458
  readonly externalId?: boolean | undefined;
1459
+ readonly system?: boolean | undefined;
1076
1460
  readonly min?: number | undefined;
1077
1461
  readonly max?: number | undefined;
1078
1462
  readonly group?: string | undefined;
@@ -1247,6 +1631,7 @@ declare const securityObjects: ((Omit<{
1247
1631
  readonly dependencies?: string[] | undefined;
1248
1632
  readonly theme?: string | undefined;
1249
1633
  readonly externalId?: boolean | undefined;
1634
+ readonly system?: boolean | undefined;
1250
1635
  readonly min?: number | undefined;
1251
1636
  readonly max?: number | undefined;
1252
1637
  readonly group?: string | undefined;
@@ -1421,6 +1806,7 @@ declare const securityObjects: ((Omit<{
1421
1806
  readonly dependencies?: string[] | undefined;
1422
1807
  readonly theme?: string | undefined;
1423
1808
  readonly externalId?: boolean | undefined;
1809
+ readonly system?: boolean | undefined;
1424
1810
  readonly min?: number | undefined;
1425
1811
  readonly max?: number | undefined;
1426
1812
  readonly group?: string | undefined;
@@ -1595,6 +1981,7 @@ declare const securityObjects: ((Omit<{
1595
1981
  readonly dependencies?: string[] | undefined;
1596
1982
  readonly theme?: string | undefined;
1597
1983
  readonly externalId?: boolean | undefined;
1984
+ readonly system?: boolean | undefined;
1598
1985
  readonly min?: number | undefined;
1599
1986
  readonly max?: number | undefined;
1600
1987
  readonly group?: string | undefined;
@@ -1769,6 +2156,7 @@ declare const securityObjects: ((Omit<{
1769
2156
  readonly dependencies?: string[] | undefined;
1770
2157
  readonly theme?: string | undefined;
1771
2158
  readonly externalId?: boolean | undefined;
2159
+ readonly system?: boolean | undefined;
1772
2160
  readonly min?: number | undefined;
1773
2161
  readonly max?: number | undefined;
1774
2162
  readonly group?: string | undefined;
@@ -1943,6 +2331,7 @@ declare const securityObjects: ((Omit<{
1943
2331
  readonly dependencies?: string[] | undefined;
1944
2332
  readonly theme?: string | undefined;
1945
2333
  readonly externalId?: boolean | undefined;
2334
+ readonly system?: boolean | undefined;
1946
2335
  readonly min?: number | undefined;
1947
2336
  readonly max?: number | undefined;
1948
2337
  readonly group?: string | undefined;
@@ -2117,6 +2506,7 @@ declare const securityObjects: ((Omit<{
2117
2506
  readonly dependencies?: string[] | undefined;
2118
2507
  readonly theme?: string | undefined;
2119
2508
  readonly externalId?: boolean | undefined;
2509
+ readonly system?: boolean | undefined;
2120
2510
  readonly min?: number | undefined;
2121
2511
  readonly max?: number | undefined;
2122
2512
  readonly group?: string | undefined;
@@ -2479,6 +2869,7 @@ declare const securityObjects: ((Omit<{
2479
2869
  generatedBy?: string | undefined;
2480
2870
  } | undefined;
2481
2871
  } | undefined;
2872
+ system?: boolean | undefined;
2482
2873
  inlineHelpText?: string | undefined;
2483
2874
  trackFeedHistory?: boolean | undefined;
2484
2875
  caseSensitive?: boolean | undefined;
@@ -2489,7 +2880,14 @@ declare const securityObjects: ((Omit<{
2489
2880
  description?: string | undefined;
2490
2881
  icon?: string | undefined;
2491
2882
  tags?: string[] | undefined;
2492
- managedBy?: "system" | "better-auth" | "platform" | undefined;
2883
+ managedBy?: "system" | "config" | "platform" | "append-only" | "better-auth" | undefined;
2884
+ userActions?: {
2885
+ create?: boolean | undefined;
2886
+ import?: boolean | undefined;
2887
+ edit?: boolean | undefined;
2888
+ delete?: boolean | undefined;
2889
+ exportCsv?: boolean | undefined;
2890
+ } | undefined;
2493
2891
  systemFields?: false | {
2494
2892
  tenant?: boolean | undefined;
2495
2893
  owner?: boolean | undefined;
@@ -2609,6 +3007,241 @@ declare const securityObjects: ((Omit<{
2609
3007
  } | undefined;
2610
3008
  } | undefined;
2611
3009
  compactLayout?: string[] | undefined;
3010
+ listViews?: Record<string, {
3011
+ type: "kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "chart" | "map" | "grid";
3012
+ columns: string[] | {
3013
+ field: string;
3014
+ label?: string | undefined;
3015
+ width?: number | undefined;
3016
+ align?: "left" | "center" | "right" | undefined;
3017
+ hidden?: boolean | undefined;
3018
+ sortable?: boolean | undefined;
3019
+ resizable?: boolean | undefined;
3020
+ wrap?: boolean | undefined;
3021
+ type?: string | undefined;
3022
+ pinned?: "left" | "right" | undefined;
3023
+ summary?: "min" | "max" | "count" | "sum" | "avg" | "none" | "count_empty" | "count_filled" | "count_unique" | "percent_empty" | "percent_filled" | undefined;
3024
+ link?: boolean | undefined;
3025
+ action?: string | undefined;
3026
+ }[];
3027
+ name?: string | undefined;
3028
+ label?: string | undefined;
3029
+ data?: {
3030
+ provider: "object";
3031
+ object: string;
3032
+ } | {
3033
+ provider: "api";
3034
+ read?: {
3035
+ url: string;
3036
+ method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
3037
+ headers?: Record<string, string> | undefined;
3038
+ params?: Record<string, unknown> | undefined;
3039
+ body?: unknown;
3040
+ } | undefined;
3041
+ write?: {
3042
+ url: string;
3043
+ method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
3044
+ headers?: Record<string, string> | undefined;
3045
+ params?: Record<string, unknown> | undefined;
3046
+ body?: unknown;
3047
+ } | undefined;
3048
+ } | {
3049
+ provider: "value";
3050
+ items: unknown[];
3051
+ } | undefined;
3052
+ filter?: {
3053
+ field: string;
3054
+ operator: string;
3055
+ value?: string | number | boolean | (string | number)[] | null | undefined;
3056
+ }[] | undefined;
3057
+ sort?: string | {
3058
+ field: string;
3059
+ order: "asc" | "desc";
3060
+ }[] | undefined;
3061
+ searchableFields?: string[] | undefined;
3062
+ filterableFields?: string[] | undefined;
3063
+ resizable?: boolean | undefined;
3064
+ striped?: boolean | undefined;
3065
+ bordered?: boolean | undefined;
3066
+ compactToolbar?: boolean | undefined;
3067
+ selection?: {
3068
+ type: "multiple" | "single" | "none";
3069
+ } | undefined;
3070
+ navigation?: {
3071
+ mode: "none" | "split" | "page" | "modal" | "drawer" | "popover" | "new_window";
3072
+ preventNavigation: boolean;
3073
+ openNewTab: boolean;
3074
+ view?: string | undefined;
3075
+ width?: string | number | undefined;
3076
+ } | undefined;
3077
+ pagination?: {
3078
+ pageSize: number;
3079
+ pageSizeOptions?: number[] | undefined;
3080
+ } | undefined;
3081
+ kanban?: {
3082
+ groupByField: string;
3083
+ columns: string[];
3084
+ summarizeField?: string | undefined;
3085
+ } | undefined;
3086
+ calendar?: {
3087
+ startDateField: string;
3088
+ titleField: string;
3089
+ endDateField?: string | undefined;
3090
+ colorField?: string | undefined;
3091
+ } | undefined;
3092
+ gantt?: {
3093
+ startDateField: string;
3094
+ endDateField: string;
3095
+ titleField: string;
3096
+ progressField?: string | undefined;
3097
+ dependenciesField?: string | undefined;
3098
+ } | undefined;
3099
+ gallery?: {
3100
+ coverFit: "cover" | "contain";
3101
+ cardSize: "small" | "medium" | "large";
3102
+ coverField?: string | undefined;
3103
+ titleField?: string | undefined;
3104
+ visibleFields?: string[] | undefined;
3105
+ } | undefined;
3106
+ timeline?: {
3107
+ startDateField: string;
3108
+ titleField: string;
3109
+ scale: "hour" | "day" | "week" | "month" | "quarter" | "year";
3110
+ endDateField?: string | undefined;
3111
+ groupByField?: string | undefined;
3112
+ colorField?: string | undefined;
3113
+ } | undefined;
3114
+ chart?: {
3115
+ chartType: "bar" | "line" | "pie" | "area" | "scatter";
3116
+ xAxisField: string;
3117
+ yAxisFields: string[];
3118
+ aggregation?: "min" | "max" | "count" | "sum" | "avg" | undefined;
3119
+ groupByField?: string | undefined;
3120
+ } | undefined;
3121
+ description?: string | undefined;
3122
+ sharing?: {
3123
+ type: "personal" | "collaborative";
3124
+ lockedBy?: string | undefined;
3125
+ } | undefined;
3126
+ rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
3127
+ grouping?: {
3128
+ fields: {
3129
+ field: string;
3130
+ order: "asc" | "desc";
3131
+ collapsed: boolean;
3132
+ }[];
3133
+ } | undefined;
3134
+ rowColor?: {
3135
+ field: string;
3136
+ colors?: Record<string, string> | undefined;
3137
+ } | undefined;
3138
+ hiddenFields?: string[] | undefined;
3139
+ fieldOrder?: string[] | undefined;
3140
+ rowActions?: string[] | undefined;
3141
+ bulkActions?: string[] | undefined;
3142
+ bulkActionDefs?: Record<string, any>[] | undefined;
3143
+ virtualScroll?: boolean | undefined;
3144
+ conditionalFormatting?: {
3145
+ condition: {
3146
+ dialect: "cel" | "js" | "cron" | "template";
3147
+ source?: string | undefined;
3148
+ ast?: unknown;
3149
+ meta?: {
3150
+ rationale?: string | undefined;
3151
+ generatedBy?: string | undefined;
3152
+ } | undefined;
3153
+ } | {
3154
+ dialect: "cel" | "js" | "cron" | "template";
3155
+ source?: string | undefined;
3156
+ ast?: unknown;
3157
+ meta?: {
3158
+ rationale?: string | undefined;
3159
+ generatedBy?: string | undefined;
3160
+ } | undefined;
3161
+ };
3162
+ style: Record<string, string>;
3163
+ }[] | undefined;
3164
+ inlineEdit?: boolean | undefined;
3165
+ exportOptions?: ("json" | "csv" | "xlsx" | "pdf")[] | undefined;
3166
+ userActions?: {
3167
+ sort: boolean;
3168
+ search: boolean;
3169
+ filter: boolean;
3170
+ rowHeight: boolean;
3171
+ addRecordForm: boolean;
3172
+ buttons?: string[] | undefined;
3173
+ } | undefined;
3174
+ appearance?: {
3175
+ showDescription: boolean;
3176
+ allowedVisualizations?: ("kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "map" | "grid")[] | undefined;
3177
+ } | undefined;
3178
+ tabs?: {
3179
+ name: string;
3180
+ pinned: boolean;
3181
+ isDefault: boolean;
3182
+ visible: boolean;
3183
+ label?: string | undefined;
3184
+ icon?: string | undefined;
3185
+ view?: string | undefined;
3186
+ filter?: {
3187
+ field: string;
3188
+ operator: string;
3189
+ value?: string | number | boolean | (string | number)[] | null | undefined;
3190
+ }[] | undefined;
3191
+ order?: number | undefined;
3192
+ }[] | undefined;
3193
+ addRecord?: {
3194
+ enabled: boolean;
3195
+ position: "top" | "bottom" | "both";
3196
+ mode: "modal" | "form" | "inline";
3197
+ formView?: string | undefined;
3198
+ } | undefined;
3199
+ showRecordCount?: boolean | undefined;
3200
+ allowPrinting?: boolean | undefined;
3201
+ emptyState?: {
3202
+ title?: string | undefined;
3203
+ message?: string | undefined;
3204
+ icon?: string | undefined;
3205
+ } | undefined;
3206
+ aria?: {
3207
+ ariaLabel?: string | undefined;
3208
+ ariaDescribedBy?: string | undefined;
3209
+ role?: string | undefined;
3210
+ } | undefined;
3211
+ responsive?: {
3212
+ breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
3213
+ hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
3214
+ columns?: {
3215
+ xs?: number | undefined;
3216
+ sm?: number | undefined;
3217
+ md?: number | undefined;
3218
+ lg?: number | undefined;
3219
+ xl?: number | undefined;
3220
+ "2xl"?: number | undefined;
3221
+ } | undefined;
3222
+ order?: {
3223
+ xs?: number | undefined;
3224
+ sm?: number | undefined;
3225
+ md?: number | undefined;
3226
+ lg?: number | undefined;
3227
+ xl?: number | undefined;
3228
+ "2xl"?: number | undefined;
3229
+ } | undefined;
3230
+ } | undefined;
3231
+ performance?: {
3232
+ lazyLoad?: boolean | undefined;
3233
+ virtualScroll?: {
3234
+ enabled: boolean;
3235
+ itemHeight?: number | undefined;
3236
+ overscan?: number | undefined;
3237
+ } | undefined;
3238
+ cacheStrategy?: "none" | "cache-first" | "network-first" | "stale-while-revalidate" | undefined;
3239
+ prefetch?: boolean | undefined;
3240
+ pageSize?: number | undefined;
3241
+ debounceMs?: number | undefined;
3242
+ } | undefined;
3243
+ }> | undefined;
3244
+ defaultDetailForm?: string | undefined;
2612
3245
  search?: {
2613
3246
  fields: string[];
2614
3247
  displayFields?: string[] | undefined;
@@ -2624,15 +3257,15 @@ declare const securityObjects: ((Omit<{
2624
3257
  trash: boolean;
2625
3258
  mru: boolean;
2626
3259
  clone: boolean;
2627
- apiMethods?: ("search" | "list" | "get" | "delete" | "update" | "upsert" | "history" | "create" | "bulk" | "aggregate" | "restore" | "purge" | "import" | "export")[] | undefined;
3260
+ apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "history" | "bulk" | "aggregate" | "restore" | "purge" | "export")[] | undefined;
2628
3261
  } | undefined;
2629
3262
  recordTypes?: string[] | undefined;
2630
- sharingModel?: "full" | "private" | "read" | "read_write" | undefined;
3263
+ sharingModel?: "read" | "full" | "private" | "read_write" | undefined;
2631
3264
  keyPrefix?: string | undefined;
2632
3265
  actions?: {
2633
3266
  name: string;
2634
3267
  label: string;
2635
- type: "url" | "flow" | "api" | "script" | "modal";
3268
+ type: "url" | "flow" | "api" | "script" | "modal" | "form";
2636
3269
  refreshAfter: boolean;
2637
3270
  objectName?: string | undefined;
2638
3271
  icon?: string | undefined;
@@ -2651,14 +3284,20 @@ declare const securityObjects: ((Omit<{
2651
3284
  } | undefined;
2652
3285
  execute?: string | undefined;
2653
3286
  params?: {
2654
- name: string;
2655
- label: string;
2656
- type: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector";
2657
3287
  required: boolean;
3288
+ name?: string | undefined;
3289
+ field?: string | undefined;
3290
+ objectOverride?: string | undefined;
3291
+ label?: string | undefined;
3292
+ type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
2658
3293
  options?: {
2659
3294
  label: string;
2660
3295
  value: string;
2661
3296
  }[] | undefined;
3297
+ placeholder?: string | undefined;
3298
+ helpText?: string | undefined;
3299
+ defaultValue?: unknown;
3300
+ defaultFromRow?: boolean | undefined;
2662
3301
  }[] | undefined;
2663
3302
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
2664
3303
  confirmText?: string | undefined;
@@ -2683,6 +3322,14 @@ declare const securityObjects: ((Omit<{
2683
3322
  } | undefined;
2684
3323
  shortcut?: string | undefined;
2685
3324
  bulkEnabled?: boolean | undefined;
3325
+ recordIdParam?: string | undefined;
3326
+ recordIdField?: string | undefined;
3327
+ bodyShape?: "flat" | {
3328
+ wrap: string;
3329
+ } | undefined;
3330
+ method?: "POST" | "PATCH" | "PUT" | "DELETE" | undefined;
3331
+ bodyExtra?: Record<string, unknown> | undefined;
3332
+ mode?: "custom" | "delete" | "create" | "edit" | undefined;
2686
3333
  timeout?: number | undefined;
2687
3334
  aria?: {
2688
3335
  ariaLabel?: string | undefined;
@@ -2696,10 +3343,74 @@ declare const securityObjects: ((Omit<{
2696
3343
  readonly pluralLabel: "Permission Sets";
2697
3344
  readonly icon: "lock";
2698
3345
  readonly isSystem: true;
3346
+ readonly managedBy: "config";
2699
3347
  readonly description: "Named permission groupings for fine-grained access control";
2700
3348
  readonly displayNameField: "label";
2701
3349
  readonly titleFormat: "{label}";
2702
3350
  readonly compactLayout: ["label", "name", "active"];
3351
+ readonly listViews: {
3352
+ readonly active: {
3353
+ readonly type: "grid";
3354
+ readonly name: "active";
3355
+ readonly label: "Active";
3356
+ readonly data: {
3357
+ readonly provider: "object";
3358
+ readonly object: "sys_permission_set";
3359
+ };
3360
+ readonly columns: ["label", "name", "description", "updated_at"];
3361
+ readonly filter: [{
3362
+ readonly field: "active";
3363
+ readonly operator: "equals";
3364
+ readonly value: true;
3365
+ }];
3366
+ readonly sort: [{
3367
+ readonly field: "label";
3368
+ readonly order: "asc";
3369
+ }];
3370
+ readonly pagination: {
3371
+ readonly pageSize: 50;
3372
+ };
3373
+ };
3374
+ readonly inactive: {
3375
+ readonly type: "grid";
3376
+ readonly name: "inactive";
3377
+ readonly label: "Inactive";
3378
+ readonly data: {
3379
+ readonly provider: "object";
3380
+ readonly object: "sys_permission_set";
3381
+ };
3382
+ readonly columns: ["label", "name", "updated_at"];
3383
+ readonly filter: [{
3384
+ readonly field: "active";
3385
+ readonly operator: "equals";
3386
+ readonly value: false;
3387
+ }];
3388
+ readonly sort: [{
3389
+ readonly field: "label";
3390
+ readonly order: "asc";
3391
+ }];
3392
+ readonly pagination: {
3393
+ readonly pageSize: 50;
3394
+ };
3395
+ };
3396
+ readonly all_permsets: {
3397
+ readonly type: "grid";
3398
+ readonly name: "all_permsets";
3399
+ readonly label: "All";
3400
+ readonly data: {
3401
+ readonly provider: "object";
3402
+ readonly object: "sys_permission_set";
3403
+ };
3404
+ readonly columns: ["label", "name", "active", "updated_at"];
3405
+ readonly sort: [{
3406
+ readonly field: "label";
3407
+ readonly order: "asc";
3408
+ }];
3409
+ readonly pagination: {
3410
+ readonly pageSize: 50;
3411
+ };
3412
+ };
3413
+ };
2703
3414
  readonly fields: {
2704
3415
  readonly label: {
2705
3416
  readonly readonly?: boolean | undefined;
@@ -2719,6 +3430,7 @@ declare const securityObjects: ((Omit<{
2719
3430
  readonly dependencies?: string[] | undefined;
2720
3431
  readonly theme?: string | undefined;
2721
3432
  readonly externalId?: boolean | undefined;
3433
+ readonly system?: boolean | undefined;
2722
3434
  readonly min?: number | undefined;
2723
3435
  readonly max?: number | undefined;
2724
3436
  readonly group?: string | undefined;
@@ -2893,6 +3605,7 @@ declare const securityObjects: ((Omit<{
2893
3605
  readonly dependencies?: string[] | undefined;
2894
3606
  readonly theme?: string | undefined;
2895
3607
  readonly externalId?: boolean | undefined;
3608
+ readonly system?: boolean | undefined;
2896
3609
  readonly min?: number | undefined;
2897
3610
  readonly max?: number | undefined;
2898
3611
  readonly group?: string | undefined;
@@ -3067,6 +3780,7 @@ declare const securityObjects: ((Omit<{
3067
3780
  readonly dependencies?: string[] | undefined;
3068
3781
  readonly theme?: string | undefined;
3069
3782
  readonly externalId?: boolean | undefined;
3783
+ readonly system?: boolean | undefined;
3070
3784
  readonly min?: number | undefined;
3071
3785
  readonly max?: number | undefined;
3072
3786
  readonly group?: string | undefined;
@@ -3241,6 +3955,7 @@ declare const securityObjects: ((Omit<{
3241
3955
  readonly dependencies?: string[] | undefined;
3242
3956
  readonly theme?: string | undefined;
3243
3957
  readonly externalId?: boolean | undefined;
3958
+ readonly system?: boolean | undefined;
3244
3959
  readonly min?: number | undefined;
3245
3960
  readonly max?: number | undefined;
3246
3961
  readonly group?: string | undefined;
@@ -3415,6 +4130,7 @@ declare const securityObjects: ((Omit<{
3415
4130
  readonly dependencies?: string[] | undefined;
3416
4131
  readonly theme?: string | undefined;
3417
4132
  readonly externalId?: boolean | undefined;
4133
+ readonly system?: boolean | undefined;
3418
4134
  readonly min?: number | undefined;
3419
4135
  readonly max?: number | undefined;
3420
4136
  readonly group?: string | undefined;
@@ -3589,6 +4305,7 @@ declare const securityObjects: ((Omit<{
3589
4305
  readonly dependencies?: string[] | undefined;
3590
4306
  readonly theme?: string | undefined;
3591
4307
  readonly externalId?: boolean | undefined;
4308
+ readonly system?: boolean | undefined;
3592
4309
  readonly min?: number | undefined;
3593
4310
  readonly max?: number | undefined;
3594
4311
  readonly group?: string | undefined;
@@ -3763,6 +4480,7 @@ declare const securityObjects: ((Omit<{
3763
4480
  readonly dependencies?: string[] | undefined;
3764
4481
  readonly theme?: string | undefined;
3765
4482
  readonly externalId?: boolean | undefined;
4483
+ readonly system?: boolean | undefined;
3766
4484
  readonly min?: number | undefined;
3767
4485
  readonly max?: number | undefined;
3768
4486
  readonly group?: string | undefined;
@@ -3937,6 +4655,7 @@ declare const securityObjects: ((Omit<{
3937
4655
  readonly dependencies?: string[] | undefined;
3938
4656
  readonly theme?: string | undefined;
3939
4657
  readonly externalId?: boolean | undefined;
4658
+ readonly system?: boolean | undefined;
3940
4659
  readonly min?: number | undefined;
3941
4660
  readonly max?: number | undefined;
3942
4661
  readonly group?: string | undefined;
@@ -4111,6 +4830,7 @@ declare const securityObjects: ((Omit<{
4111
4830
  readonly dependencies?: string[] | undefined;
4112
4831
  readonly theme?: string | undefined;
4113
4832
  readonly externalId?: boolean | undefined;
4833
+ readonly system?: boolean | undefined;
4114
4834
  readonly min?: number | undefined;
4115
4835
  readonly max?: number | undefined;
4116
4836
  readonly group?: string | undefined;
@@ -4473,6 +5193,7 @@ declare const securityObjects: ((Omit<{
4473
5193
  generatedBy?: string | undefined;
4474
5194
  } | undefined;
4475
5195
  } | undefined;
5196
+ system?: boolean | undefined;
4476
5197
  inlineHelpText?: string | undefined;
4477
5198
  trackFeedHistory?: boolean | undefined;
4478
5199
  caseSensitive?: boolean | undefined;
@@ -4483,7 +5204,14 @@ declare const securityObjects: ((Omit<{
4483
5204
  description?: string | undefined;
4484
5205
  icon?: string | undefined;
4485
5206
  tags?: string[] | undefined;
4486
- managedBy?: "system" | "better-auth" | "platform" | undefined;
5207
+ managedBy?: "system" | "config" | "platform" | "append-only" | "better-auth" | undefined;
5208
+ userActions?: {
5209
+ create?: boolean | undefined;
5210
+ import?: boolean | undefined;
5211
+ edit?: boolean | undefined;
5212
+ delete?: boolean | undefined;
5213
+ exportCsv?: boolean | undefined;
5214
+ } | undefined;
4487
5215
  systemFields?: false | {
4488
5216
  tenant?: boolean | undefined;
4489
5217
  owner?: boolean | undefined;
@@ -4603,6 +5331,241 @@ declare const securityObjects: ((Omit<{
4603
5331
  } | undefined;
4604
5332
  } | undefined;
4605
5333
  compactLayout?: string[] | undefined;
5334
+ listViews?: Record<string, {
5335
+ type: "kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "chart" | "map" | "grid";
5336
+ columns: string[] | {
5337
+ field: string;
5338
+ label?: string | undefined;
5339
+ width?: number | undefined;
5340
+ align?: "left" | "center" | "right" | undefined;
5341
+ hidden?: boolean | undefined;
5342
+ sortable?: boolean | undefined;
5343
+ resizable?: boolean | undefined;
5344
+ wrap?: boolean | undefined;
5345
+ type?: string | undefined;
5346
+ pinned?: "left" | "right" | undefined;
5347
+ summary?: "min" | "max" | "count" | "sum" | "avg" | "none" | "count_empty" | "count_filled" | "count_unique" | "percent_empty" | "percent_filled" | undefined;
5348
+ link?: boolean | undefined;
5349
+ action?: string | undefined;
5350
+ }[];
5351
+ name?: string | undefined;
5352
+ label?: string | undefined;
5353
+ data?: {
5354
+ provider: "object";
5355
+ object: string;
5356
+ } | {
5357
+ provider: "api";
5358
+ read?: {
5359
+ url: string;
5360
+ method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
5361
+ headers?: Record<string, string> | undefined;
5362
+ params?: Record<string, unknown> | undefined;
5363
+ body?: unknown;
5364
+ } | undefined;
5365
+ write?: {
5366
+ url: string;
5367
+ method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
5368
+ headers?: Record<string, string> | undefined;
5369
+ params?: Record<string, unknown> | undefined;
5370
+ body?: unknown;
5371
+ } | undefined;
5372
+ } | {
5373
+ provider: "value";
5374
+ items: unknown[];
5375
+ } | undefined;
5376
+ filter?: {
5377
+ field: string;
5378
+ operator: string;
5379
+ value?: string | number | boolean | (string | number)[] | null | undefined;
5380
+ }[] | undefined;
5381
+ sort?: string | {
5382
+ field: string;
5383
+ order: "asc" | "desc";
5384
+ }[] | undefined;
5385
+ searchableFields?: string[] | undefined;
5386
+ filterableFields?: string[] | undefined;
5387
+ resizable?: boolean | undefined;
5388
+ striped?: boolean | undefined;
5389
+ bordered?: boolean | undefined;
5390
+ compactToolbar?: boolean | undefined;
5391
+ selection?: {
5392
+ type: "multiple" | "single" | "none";
5393
+ } | undefined;
5394
+ navigation?: {
5395
+ mode: "none" | "split" | "page" | "modal" | "drawer" | "popover" | "new_window";
5396
+ preventNavigation: boolean;
5397
+ openNewTab: boolean;
5398
+ view?: string | undefined;
5399
+ width?: string | number | undefined;
5400
+ } | undefined;
5401
+ pagination?: {
5402
+ pageSize: number;
5403
+ pageSizeOptions?: number[] | undefined;
5404
+ } | undefined;
5405
+ kanban?: {
5406
+ groupByField: string;
5407
+ columns: string[];
5408
+ summarizeField?: string | undefined;
5409
+ } | undefined;
5410
+ calendar?: {
5411
+ startDateField: string;
5412
+ titleField: string;
5413
+ endDateField?: string | undefined;
5414
+ colorField?: string | undefined;
5415
+ } | undefined;
5416
+ gantt?: {
5417
+ startDateField: string;
5418
+ endDateField: string;
5419
+ titleField: string;
5420
+ progressField?: string | undefined;
5421
+ dependenciesField?: string | undefined;
5422
+ } | undefined;
5423
+ gallery?: {
5424
+ coverFit: "cover" | "contain";
5425
+ cardSize: "small" | "medium" | "large";
5426
+ coverField?: string | undefined;
5427
+ titleField?: string | undefined;
5428
+ visibleFields?: string[] | undefined;
5429
+ } | undefined;
5430
+ timeline?: {
5431
+ startDateField: string;
5432
+ titleField: string;
5433
+ scale: "hour" | "day" | "week" | "month" | "quarter" | "year";
5434
+ endDateField?: string | undefined;
5435
+ groupByField?: string | undefined;
5436
+ colorField?: string | undefined;
5437
+ } | undefined;
5438
+ chart?: {
5439
+ chartType: "bar" | "line" | "pie" | "area" | "scatter";
5440
+ xAxisField: string;
5441
+ yAxisFields: string[];
5442
+ aggregation?: "min" | "max" | "count" | "sum" | "avg" | undefined;
5443
+ groupByField?: string | undefined;
5444
+ } | undefined;
5445
+ description?: string | undefined;
5446
+ sharing?: {
5447
+ type: "personal" | "collaborative";
5448
+ lockedBy?: string | undefined;
5449
+ } | undefined;
5450
+ rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
5451
+ grouping?: {
5452
+ fields: {
5453
+ field: string;
5454
+ order: "asc" | "desc";
5455
+ collapsed: boolean;
5456
+ }[];
5457
+ } | undefined;
5458
+ rowColor?: {
5459
+ field: string;
5460
+ colors?: Record<string, string> | undefined;
5461
+ } | undefined;
5462
+ hiddenFields?: string[] | undefined;
5463
+ fieldOrder?: string[] | undefined;
5464
+ rowActions?: string[] | undefined;
5465
+ bulkActions?: string[] | undefined;
5466
+ bulkActionDefs?: Record<string, any>[] | undefined;
5467
+ virtualScroll?: boolean | undefined;
5468
+ conditionalFormatting?: {
5469
+ condition: {
5470
+ dialect: "cel" | "js" | "cron" | "template";
5471
+ source?: string | undefined;
5472
+ ast?: unknown;
5473
+ meta?: {
5474
+ rationale?: string | undefined;
5475
+ generatedBy?: string | undefined;
5476
+ } | undefined;
5477
+ } | {
5478
+ dialect: "cel" | "js" | "cron" | "template";
5479
+ source?: string | undefined;
5480
+ ast?: unknown;
5481
+ meta?: {
5482
+ rationale?: string | undefined;
5483
+ generatedBy?: string | undefined;
5484
+ } | undefined;
5485
+ };
5486
+ style: Record<string, string>;
5487
+ }[] | undefined;
5488
+ inlineEdit?: boolean | undefined;
5489
+ exportOptions?: ("json" | "csv" | "xlsx" | "pdf")[] | undefined;
5490
+ userActions?: {
5491
+ sort: boolean;
5492
+ search: boolean;
5493
+ filter: boolean;
5494
+ rowHeight: boolean;
5495
+ addRecordForm: boolean;
5496
+ buttons?: string[] | undefined;
5497
+ } | undefined;
5498
+ appearance?: {
5499
+ showDescription: boolean;
5500
+ allowedVisualizations?: ("kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "map" | "grid")[] | undefined;
5501
+ } | undefined;
5502
+ tabs?: {
5503
+ name: string;
5504
+ pinned: boolean;
5505
+ isDefault: boolean;
5506
+ visible: boolean;
5507
+ label?: string | undefined;
5508
+ icon?: string | undefined;
5509
+ view?: string | undefined;
5510
+ filter?: {
5511
+ field: string;
5512
+ operator: string;
5513
+ value?: string | number | boolean | (string | number)[] | null | undefined;
5514
+ }[] | undefined;
5515
+ order?: number | undefined;
5516
+ }[] | undefined;
5517
+ addRecord?: {
5518
+ enabled: boolean;
5519
+ position: "top" | "bottom" | "both";
5520
+ mode: "modal" | "form" | "inline";
5521
+ formView?: string | undefined;
5522
+ } | undefined;
5523
+ showRecordCount?: boolean | undefined;
5524
+ allowPrinting?: boolean | undefined;
5525
+ emptyState?: {
5526
+ title?: string | undefined;
5527
+ message?: string | undefined;
5528
+ icon?: string | undefined;
5529
+ } | undefined;
5530
+ aria?: {
5531
+ ariaLabel?: string | undefined;
5532
+ ariaDescribedBy?: string | undefined;
5533
+ role?: string | undefined;
5534
+ } | undefined;
5535
+ responsive?: {
5536
+ breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
5537
+ hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
5538
+ columns?: {
5539
+ xs?: number | undefined;
5540
+ sm?: number | undefined;
5541
+ md?: number | undefined;
5542
+ lg?: number | undefined;
5543
+ xl?: number | undefined;
5544
+ "2xl"?: number | undefined;
5545
+ } | undefined;
5546
+ order?: {
5547
+ xs?: number | undefined;
5548
+ sm?: number | undefined;
5549
+ md?: number | undefined;
5550
+ lg?: number | undefined;
5551
+ xl?: number | undefined;
5552
+ "2xl"?: number | undefined;
5553
+ } | undefined;
5554
+ } | undefined;
5555
+ performance?: {
5556
+ lazyLoad?: boolean | undefined;
5557
+ virtualScroll?: {
5558
+ enabled: boolean;
5559
+ itemHeight?: number | undefined;
5560
+ overscan?: number | undefined;
5561
+ } | undefined;
5562
+ cacheStrategy?: "none" | "cache-first" | "network-first" | "stale-while-revalidate" | undefined;
5563
+ prefetch?: boolean | undefined;
5564
+ pageSize?: number | undefined;
5565
+ debounceMs?: number | undefined;
5566
+ } | undefined;
5567
+ }> | undefined;
5568
+ defaultDetailForm?: string | undefined;
4606
5569
  search?: {
4607
5570
  fields: string[];
4608
5571
  displayFields?: string[] | undefined;
@@ -4618,15 +5581,15 @@ declare const securityObjects: ((Omit<{
4618
5581
  trash: boolean;
4619
5582
  mru: boolean;
4620
5583
  clone: boolean;
4621
- apiMethods?: ("search" | "list" | "get" | "delete" | "update" | "upsert" | "history" | "create" | "bulk" | "aggregate" | "restore" | "purge" | "import" | "export")[] | undefined;
5584
+ apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "history" | "bulk" | "aggregate" | "restore" | "purge" | "export")[] | undefined;
4622
5585
  } | undefined;
4623
5586
  recordTypes?: string[] | undefined;
4624
- sharingModel?: "full" | "private" | "read" | "read_write" | undefined;
5587
+ sharingModel?: "read" | "full" | "private" | "read_write" | undefined;
4625
5588
  keyPrefix?: string | undefined;
4626
5589
  actions?: {
4627
5590
  name: string;
4628
5591
  label: string;
4629
- type: "url" | "flow" | "api" | "script" | "modal";
5592
+ type: "url" | "flow" | "api" | "script" | "modal" | "form";
4630
5593
  refreshAfter: boolean;
4631
5594
  objectName?: string | undefined;
4632
5595
  icon?: string | undefined;
@@ -4645,14 +5608,20 @@ declare const securityObjects: ((Omit<{
4645
5608
  } | undefined;
4646
5609
  execute?: string | undefined;
4647
5610
  params?: {
4648
- name: string;
4649
- label: string;
4650
- type: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector";
4651
5611
  required: boolean;
5612
+ name?: string | undefined;
5613
+ field?: string | undefined;
5614
+ objectOverride?: string | undefined;
5615
+ label?: string | undefined;
5616
+ type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
4652
5617
  options?: {
4653
5618
  label: string;
4654
5619
  value: string;
4655
5620
  }[] | undefined;
5621
+ placeholder?: string | undefined;
5622
+ helpText?: string | undefined;
5623
+ defaultValue?: unknown;
5624
+ defaultFromRow?: boolean | undefined;
4656
5625
  }[] | undefined;
4657
5626
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
4658
5627
  confirmText?: string | undefined;
@@ -4677,6 +5646,14 @@ declare const securityObjects: ((Omit<{
4677
5646
  } | undefined;
4678
5647
  shortcut?: string | undefined;
4679
5648
  bulkEnabled?: boolean | undefined;
5649
+ recordIdParam?: string | undefined;
5650
+ recordIdField?: string | undefined;
5651
+ bodyShape?: "flat" | {
5652
+ wrap: string;
5653
+ } | undefined;
5654
+ method?: "POST" | "PATCH" | "PUT" | "DELETE" | undefined;
5655
+ bodyExtra?: Record<string, unknown> | undefined;
5656
+ mode?: "custom" | "delete" | "create" | "edit" | undefined;
4680
5657
  timeout?: number | undefined;
4681
5658
  aria?: {
4682
5659
  ariaLabel?: string | undefined;
@@ -4690,6 +5667,7 @@ declare const securityObjects: ((Omit<{
4690
5667
  readonly pluralLabel: "User Permission Sets";
4691
5668
  readonly icon: "user-check";
4692
5669
  readonly isSystem: true;
5670
+ readonly managedBy: "system";
4693
5671
  readonly description: "Direct assignment of a permission set to a user (optionally scoped to an organization).";
4694
5672
  readonly titleFormat: "{user_id} \u2192 {permission_set_id}";
4695
5673
  readonly compactLayout: ["user_id", "permission_set_id", "organization_id"];
@@ -4712,6 +5690,7 @@ declare const securityObjects: ((Omit<{
4712
5690
  readonly dependencies?: string[] | undefined;
4713
5691
  readonly theme?: string | undefined;
4714
5692
  readonly externalId?: boolean | undefined;
5693
+ readonly system?: boolean | undefined;
4715
5694
  readonly min?: number | undefined;
4716
5695
  readonly max?: number | undefined;
4717
5696
  readonly group?: string | undefined;
@@ -4886,6 +5865,7 @@ declare const securityObjects: ((Omit<{
4886
5865
  readonly dependencies?: string[] | undefined;
4887
5866
  readonly theme?: string | undefined;
4888
5867
  readonly externalId?: boolean | undefined;
5868
+ readonly system?: boolean | undefined;
4889
5869
  readonly min?: number | undefined;
4890
5870
  readonly max?: number | undefined;
4891
5871
  readonly group?: string | undefined;
@@ -5060,6 +6040,7 @@ declare const securityObjects: ((Omit<{
5060
6040
  readonly dependencies?: string[] | undefined;
5061
6041
  readonly theme?: string | undefined;
5062
6042
  readonly externalId?: boolean | undefined;
6043
+ readonly system?: boolean | undefined;
5063
6044
  readonly min?: number | undefined;
5064
6045
  readonly max?: number | undefined;
5065
6046
  readonly group?: string | undefined;
@@ -5234,6 +6215,7 @@ declare const securityObjects: ((Omit<{
5234
6215
  readonly dependencies?: string[] | undefined;
5235
6216
  readonly theme?: string | undefined;
5236
6217
  readonly externalId?: boolean | undefined;
6218
+ readonly system?: boolean | undefined;
5237
6219
  readonly min?: number | undefined;
5238
6220
  readonly max?: number | undefined;
5239
6221
  readonly group?: string | undefined;
@@ -5408,6 +6390,7 @@ declare const securityObjects: ((Omit<{
5408
6390
  readonly dependencies?: string[] | undefined;
5409
6391
  readonly theme?: string | undefined;
5410
6392
  readonly externalId?: boolean | undefined;
6393
+ readonly system?: boolean | undefined;
5411
6394
  readonly min?: number | undefined;
5412
6395
  readonly max?: number | undefined;
5413
6396
  readonly group?: string | undefined;
@@ -5582,6 +6565,7 @@ declare const securityObjects: ((Omit<{
5582
6565
  readonly dependencies?: string[] | undefined;
5583
6566
  readonly theme?: string | undefined;
5584
6567
  readonly externalId?: boolean | undefined;
6568
+ readonly system?: boolean | undefined;
5585
6569
  readonly min?: number | undefined;
5586
6570
  readonly max?: number | undefined;
5587
6571
  readonly group?: string | undefined;
@@ -5756,6 +6740,7 @@ declare const securityObjects: ((Omit<{
5756
6740
  readonly dependencies?: string[] | undefined;
5757
6741
  readonly theme?: string | undefined;
5758
6742
  readonly externalId?: boolean | undefined;
6743
+ readonly system?: boolean | undefined;
5759
6744
  readonly min?: number | undefined;
5760
6745
  readonly max?: number | undefined;
5761
6746
  readonly group?: string | undefined;
@@ -6122,6 +7107,7 @@ declare const securityObjects: ((Omit<{
6122
7107
  generatedBy?: string | undefined;
6123
7108
  } | undefined;
6124
7109
  } | undefined;
7110
+ system?: boolean | undefined;
6125
7111
  inlineHelpText?: string | undefined;
6126
7112
  trackFeedHistory?: boolean | undefined;
6127
7113
  caseSensitive?: boolean | undefined;
@@ -6132,7 +7118,14 @@ declare const securityObjects: ((Omit<{
6132
7118
  description?: string | undefined;
6133
7119
  icon?: string | undefined;
6134
7120
  tags?: string[] | undefined;
6135
- managedBy?: "system" | "better-auth" | "platform" | undefined;
7121
+ managedBy?: "system" | "config" | "platform" | "append-only" | "better-auth" | undefined;
7122
+ userActions?: {
7123
+ create?: boolean | undefined;
7124
+ import?: boolean | undefined;
7125
+ edit?: boolean | undefined;
7126
+ delete?: boolean | undefined;
7127
+ exportCsv?: boolean | undefined;
7128
+ } | undefined;
6136
7129
  systemFields?: false | {
6137
7130
  tenant?: boolean | undefined;
6138
7131
  owner?: boolean | undefined;
@@ -6252,6 +7245,241 @@ declare const securityObjects: ((Omit<{
6252
7245
  } | undefined;
6253
7246
  } | undefined;
6254
7247
  compactLayout?: string[] | undefined;
7248
+ listViews?: Record<string, {
7249
+ type: "kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "chart" | "map" | "grid";
7250
+ columns: string[] | {
7251
+ field: string;
7252
+ label?: string | undefined;
7253
+ width?: number | undefined;
7254
+ align?: "left" | "center" | "right" | undefined;
7255
+ hidden?: boolean | undefined;
7256
+ sortable?: boolean | undefined;
7257
+ resizable?: boolean | undefined;
7258
+ wrap?: boolean | undefined;
7259
+ type?: string | undefined;
7260
+ pinned?: "left" | "right" | undefined;
7261
+ summary?: "min" | "max" | "count" | "sum" | "avg" | "none" | "count_empty" | "count_filled" | "count_unique" | "percent_empty" | "percent_filled" | undefined;
7262
+ link?: boolean | undefined;
7263
+ action?: string | undefined;
7264
+ }[];
7265
+ name?: string | undefined;
7266
+ label?: string | undefined;
7267
+ data?: {
7268
+ provider: "object";
7269
+ object: string;
7270
+ } | {
7271
+ provider: "api";
7272
+ read?: {
7273
+ url: string;
7274
+ method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
7275
+ headers?: Record<string, string> | undefined;
7276
+ params?: Record<string, unknown> | undefined;
7277
+ body?: unknown;
7278
+ } | undefined;
7279
+ write?: {
7280
+ url: string;
7281
+ method: "GET" | "POST" | "PATCH" | "PUT" | "DELETE";
7282
+ headers?: Record<string, string> | undefined;
7283
+ params?: Record<string, unknown> | undefined;
7284
+ body?: unknown;
7285
+ } | undefined;
7286
+ } | {
7287
+ provider: "value";
7288
+ items: unknown[];
7289
+ } | undefined;
7290
+ filter?: {
7291
+ field: string;
7292
+ operator: string;
7293
+ value?: string | number | boolean | (string | number)[] | null | undefined;
7294
+ }[] | undefined;
7295
+ sort?: string | {
7296
+ field: string;
7297
+ order: "asc" | "desc";
7298
+ }[] | undefined;
7299
+ searchableFields?: string[] | undefined;
7300
+ filterableFields?: string[] | undefined;
7301
+ resizable?: boolean | undefined;
7302
+ striped?: boolean | undefined;
7303
+ bordered?: boolean | undefined;
7304
+ compactToolbar?: boolean | undefined;
7305
+ selection?: {
7306
+ type: "multiple" | "single" | "none";
7307
+ } | undefined;
7308
+ navigation?: {
7309
+ mode: "none" | "split" | "page" | "modal" | "drawer" | "popover" | "new_window";
7310
+ preventNavigation: boolean;
7311
+ openNewTab: boolean;
7312
+ view?: string | undefined;
7313
+ width?: string | number | undefined;
7314
+ } | undefined;
7315
+ pagination?: {
7316
+ pageSize: number;
7317
+ pageSizeOptions?: number[] | undefined;
7318
+ } | undefined;
7319
+ kanban?: {
7320
+ groupByField: string;
7321
+ columns: string[];
7322
+ summarizeField?: string | undefined;
7323
+ } | undefined;
7324
+ calendar?: {
7325
+ startDateField: string;
7326
+ titleField: string;
7327
+ endDateField?: string | undefined;
7328
+ colorField?: string | undefined;
7329
+ } | undefined;
7330
+ gantt?: {
7331
+ startDateField: string;
7332
+ endDateField: string;
7333
+ titleField: string;
7334
+ progressField?: string | undefined;
7335
+ dependenciesField?: string | undefined;
7336
+ } | undefined;
7337
+ gallery?: {
7338
+ coverFit: "cover" | "contain";
7339
+ cardSize: "small" | "medium" | "large";
7340
+ coverField?: string | undefined;
7341
+ titleField?: string | undefined;
7342
+ visibleFields?: string[] | undefined;
7343
+ } | undefined;
7344
+ timeline?: {
7345
+ startDateField: string;
7346
+ titleField: string;
7347
+ scale: "hour" | "day" | "week" | "month" | "quarter" | "year";
7348
+ endDateField?: string | undefined;
7349
+ groupByField?: string | undefined;
7350
+ colorField?: string | undefined;
7351
+ } | undefined;
7352
+ chart?: {
7353
+ chartType: "bar" | "line" | "pie" | "area" | "scatter";
7354
+ xAxisField: string;
7355
+ yAxisFields: string[];
7356
+ aggregation?: "min" | "max" | "count" | "sum" | "avg" | undefined;
7357
+ groupByField?: string | undefined;
7358
+ } | undefined;
7359
+ description?: string | undefined;
7360
+ sharing?: {
7361
+ type: "personal" | "collaborative";
7362
+ lockedBy?: string | undefined;
7363
+ } | undefined;
7364
+ rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
7365
+ grouping?: {
7366
+ fields: {
7367
+ field: string;
7368
+ order: "asc" | "desc";
7369
+ collapsed: boolean;
7370
+ }[];
7371
+ } | undefined;
7372
+ rowColor?: {
7373
+ field: string;
7374
+ colors?: Record<string, string> | undefined;
7375
+ } | undefined;
7376
+ hiddenFields?: string[] | undefined;
7377
+ fieldOrder?: string[] | undefined;
7378
+ rowActions?: string[] | undefined;
7379
+ bulkActions?: string[] | undefined;
7380
+ bulkActionDefs?: Record<string, any>[] | undefined;
7381
+ virtualScroll?: boolean | undefined;
7382
+ conditionalFormatting?: {
7383
+ condition: {
7384
+ dialect: "cel" | "js" | "cron" | "template";
7385
+ source?: string | undefined;
7386
+ ast?: unknown;
7387
+ meta?: {
7388
+ rationale?: string | undefined;
7389
+ generatedBy?: string | undefined;
7390
+ } | undefined;
7391
+ } | {
7392
+ dialect: "cel" | "js" | "cron" | "template";
7393
+ source?: string | undefined;
7394
+ ast?: unknown;
7395
+ meta?: {
7396
+ rationale?: string | undefined;
7397
+ generatedBy?: string | undefined;
7398
+ } | undefined;
7399
+ };
7400
+ style: Record<string, string>;
7401
+ }[] | undefined;
7402
+ inlineEdit?: boolean | undefined;
7403
+ exportOptions?: ("json" | "csv" | "xlsx" | "pdf")[] | undefined;
7404
+ userActions?: {
7405
+ sort: boolean;
7406
+ search: boolean;
7407
+ filter: boolean;
7408
+ rowHeight: boolean;
7409
+ addRecordForm: boolean;
7410
+ buttons?: string[] | undefined;
7411
+ } | undefined;
7412
+ appearance?: {
7413
+ showDescription: boolean;
7414
+ allowedVisualizations?: ("kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "map" | "grid")[] | undefined;
7415
+ } | undefined;
7416
+ tabs?: {
7417
+ name: string;
7418
+ pinned: boolean;
7419
+ isDefault: boolean;
7420
+ visible: boolean;
7421
+ label?: string | undefined;
7422
+ icon?: string | undefined;
7423
+ view?: string | undefined;
7424
+ filter?: {
7425
+ field: string;
7426
+ operator: string;
7427
+ value?: string | number | boolean | (string | number)[] | null | undefined;
7428
+ }[] | undefined;
7429
+ order?: number | undefined;
7430
+ }[] | undefined;
7431
+ addRecord?: {
7432
+ enabled: boolean;
7433
+ position: "top" | "bottom" | "both";
7434
+ mode: "modal" | "form" | "inline";
7435
+ formView?: string | undefined;
7436
+ } | undefined;
7437
+ showRecordCount?: boolean | undefined;
7438
+ allowPrinting?: boolean | undefined;
7439
+ emptyState?: {
7440
+ title?: string | undefined;
7441
+ message?: string | undefined;
7442
+ icon?: string | undefined;
7443
+ } | undefined;
7444
+ aria?: {
7445
+ ariaLabel?: string | undefined;
7446
+ ariaDescribedBy?: string | undefined;
7447
+ role?: string | undefined;
7448
+ } | undefined;
7449
+ responsive?: {
7450
+ breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
7451
+ hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
7452
+ columns?: {
7453
+ xs?: number | undefined;
7454
+ sm?: number | undefined;
7455
+ md?: number | undefined;
7456
+ lg?: number | undefined;
7457
+ xl?: number | undefined;
7458
+ "2xl"?: number | undefined;
7459
+ } | undefined;
7460
+ order?: {
7461
+ xs?: number | undefined;
7462
+ sm?: number | undefined;
7463
+ md?: number | undefined;
7464
+ lg?: number | undefined;
7465
+ xl?: number | undefined;
7466
+ "2xl"?: number | undefined;
7467
+ } | undefined;
7468
+ } | undefined;
7469
+ performance?: {
7470
+ lazyLoad?: boolean | undefined;
7471
+ virtualScroll?: {
7472
+ enabled: boolean;
7473
+ itemHeight?: number | undefined;
7474
+ overscan?: number | undefined;
7475
+ } | undefined;
7476
+ cacheStrategy?: "none" | "cache-first" | "network-first" | "stale-while-revalidate" | undefined;
7477
+ prefetch?: boolean | undefined;
7478
+ pageSize?: number | undefined;
7479
+ debounceMs?: number | undefined;
7480
+ } | undefined;
7481
+ }> | undefined;
7482
+ defaultDetailForm?: string | undefined;
6255
7483
  search?: {
6256
7484
  fields: string[];
6257
7485
  displayFields?: string[] | undefined;
@@ -6267,15 +7495,15 @@ declare const securityObjects: ((Omit<{
6267
7495
  trash: boolean;
6268
7496
  mru: boolean;
6269
7497
  clone: boolean;
6270
- apiMethods?: ("search" | "list" | "get" | "delete" | "update" | "upsert" | "history" | "create" | "bulk" | "aggregate" | "restore" | "purge" | "import" | "export")[] | undefined;
7498
+ apiMethods?: ("search" | "create" | "import" | "delete" | "list" | "get" | "update" | "upsert" | "history" | "bulk" | "aggregate" | "restore" | "purge" | "export")[] | undefined;
6271
7499
  } | undefined;
6272
7500
  recordTypes?: string[] | undefined;
6273
- sharingModel?: "full" | "private" | "read" | "read_write" | undefined;
7501
+ sharingModel?: "read" | "full" | "private" | "read_write" | undefined;
6274
7502
  keyPrefix?: string | undefined;
6275
7503
  actions?: {
6276
7504
  name: string;
6277
7505
  label: string;
6278
- type: "url" | "flow" | "api" | "script" | "modal";
7506
+ type: "url" | "flow" | "api" | "script" | "modal" | "form";
6279
7507
  refreshAfter: boolean;
6280
7508
  objectName?: string | undefined;
6281
7509
  icon?: string | undefined;
@@ -6294,14 +7522,20 @@ declare const securityObjects: ((Omit<{
6294
7522
  } | undefined;
6295
7523
  execute?: string | undefined;
6296
7524
  params?: {
6297
- name: string;
6298
- label: string;
6299
- type: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector";
6300
7525
  required: boolean;
7526
+ name?: string | undefined;
7527
+ field?: string | undefined;
7528
+ objectOverride?: string | undefined;
7529
+ label?: string | undefined;
7530
+ type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
6301
7531
  options?: {
6302
7532
  label: string;
6303
7533
  value: string;
6304
7534
  }[] | undefined;
7535
+ placeholder?: string | undefined;
7536
+ helpText?: string | undefined;
7537
+ defaultValue?: unknown;
7538
+ defaultFromRow?: boolean | undefined;
6305
7539
  }[] | undefined;
6306
7540
  variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
6307
7541
  confirmText?: string | undefined;
@@ -6326,6 +7560,14 @@ declare const securityObjects: ((Omit<{
6326
7560
  } | undefined;
6327
7561
  shortcut?: string | undefined;
6328
7562
  bulkEnabled?: boolean | undefined;
7563
+ recordIdParam?: string | undefined;
7564
+ recordIdField?: string | undefined;
7565
+ bodyShape?: "flat" | {
7566
+ wrap: string;
7567
+ } | undefined;
7568
+ method?: "POST" | "PATCH" | "PUT" | "DELETE" | undefined;
7569
+ bodyExtra?: Record<string, unknown> | undefined;
7570
+ mode?: "custom" | "delete" | "create" | "edit" | undefined;
6329
7571
  timeout?: number | undefined;
6330
7572
  aria?: {
6331
7573
  ariaLabel?: string | undefined;
@@ -6339,6 +7581,7 @@ declare const securityObjects: ((Omit<{
6339
7581
  readonly pluralLabel: "Role Permission Sets";
6340
7582
  readonly icon: "shield-plus";
6341
7583
  readonly isSystem: true;
7584
+ readonly managedBy: "system";
6342
7585
  readonly description: "Binds a permission set to a role.";
6343
7586
  readonly titleFormat: "{role_id} \u2192 {permission_set_id}";
6344
7587
  readonly compactLayout: ["role_id", "permission_set_id"];
@@ -6361,6 +7604,7 @@ declare const securityObjects: ((Omit<{
6361
7604
  readonly dependencies?: string[] | undefined;
6362
7605
  readonly theme?: string | undefined;
6363
7606
  readonly externalId?: boolean | undefined;
7607
+ readonly system?: boolean | undefined;
6364
7608
  readonly min?: number | undefined;
6365
7609
  readonly max?: number | undefined;
6366
7610
  readonly group?: string | undefined;
@@ -6535,6 +7779,7 @@ declare const securityObjects: ((Omit<{
6535
7779
  readonly dependencies?: string[] | undefined;
6536
7780
  readonly theme?: string | undefined;
6537
7781
  readonly externalId?: boolean | undefined;
7782
+ readonly system?: boolean | undefined;
6538
7783
  readonly min?: number | undefined;
6539
7784
  readonly max?: number | undefined;
6540
7785
  readonly group?: string | undefined;
@@ -6709,6 +7954,7 @@ declare const securityObjects: ((Omit<{
6709
7954
  readonly dependencies?: string[] | undefined;
6710
7955
  readonly theme?: string | undefined;
6711
7956
  readonly externalId?: boolean | undefined;
7957
+ readonly system?: boolean | undefined;
6712
7958
  readonly min?: number | undefined;
6713
7959
  readonly max?: number | undefined;
6714
7960
  readonly group?: string | undefined;
@@ -6883,6 +8129,7 @@ declare const securityObjects: ((Omit<{
6883
8129
  readonly dependencies?: string[] | undefined;
6884
8130
  readonly theme?: string | undefined;
6885
8131
  readonly externalId?: boolean | undefined;
8132
+ readonly system?: boolean | undefined;
6886
8133
  readonly min?: number | undefined;
6887
8134
  readonly max?: number | undefined;
6888
8135
  readonly group?: string | undefined;
@@ -7057,6 +8304,7 @@ declare const securityObjects: ((Omit<{
7057
8304
  readonly dependencies?: string[] | undefined;
7058
8305
  readonly theme?: string | undefined;
7059
8306
  readonly externalId?: boolean | undefined;
8307
+ readonly system?: boolean | undefined;
7060
8308
  readonly min?: number | undefined;
7061
8309
  readonly max?: number | undefined;
7062
8310
  readonly group?: string | undefined;