@inneropen/marvin-sdk 2.0.0-next.2 → 2.0.0-next.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
- import { H as HttpClient } from './HttpClient-CLtgQGXH.js';
1
+ import { H as HttpClient } from './HttpClient-CdF3IHM1.js';
2
+ import { AuthToken } from './types/index.js';
2
3
 
3
4
  interface components {
4
5
  schemas: {
@@ -322,11 +323,6 @@ interface components {
322
323
  * @enum {string}
323
324
  */
324
325
  AuthMethod: "MARVIN" | "LDAP" | "OIDC";
325
- /** Body_debug_openai_api_admin_debug_openai_post */
326
- Body_debug_openai_api_admin_debug_openai_post: {
327
- /** Image */
328
- image?: string | null;
329
- };
330
326
  /** Body_get_token_api_auth_token_post */
331
327
  Body_get_token_api_auth_token_post: {
332
328
  /**
@@ -506,19 +502,6 @@ interface components {
506
502
  /** Entryids */
507
503
  entryIds?: string[] | null;
508
504
  };
509
- /**
510
- * DebugResponse
511
- * @description Schema for a standardized response from debugging endpoints.
512
- *
513
- * Indicates the success status of a debug operation and provides an optional
514
- * response message or data string.
515
- */
516
- DebugResponse: {
517
- /** Success */
518
- success: boolean;
519
- /** Response */
520
- response?: string | null;
521
- };
522
505
  /**
523
506
  * EmailInitationResponse
524
507
  * @description Schema for the response after attempting to send an email invitation.
@@ -560,6 +543,169 @@ interface components {
560
543
  /** Error */
561
544
  error?: string | null;
562
545
  };
546
+ /**
547
+ * EmailTemplateCreate
548
+ * @description Schema for creating a new email template.
549
+ */
550
+ EmailTemplateCreate: {
551
+ /**
552
+ * Templatetype
553
+ * @description Type of email (invitation, password_reset, notification, test)
554
+ */
555
+ templateType: string;
556
+ /**
557
+ * Groupid
558
+ * @description Workspace ID - null for system-wide templates
559
+ */
560
+ groupId?: string | null;
561
+ /**
562
+ * Name
563
+ * @description Human-readable template name
564
+ */
565
+ name: string;
566
+ /**
567
+ * Description
568
+ * @description Description of when this template is used
569
+ */
570
+ description?: string | null;
571
+ /**
572
+ * Subject
573
+ * @description Email subject line - supports Jinja2 variables
574
+ */
575
+ subject: string;
576
+ /**
577
+ * Headertext
578
+ * @description Header text (structured mode with default.html)
579
+ */
580
+ headerText?: string | null;
581
+ /**
582
+ * Messagetop
583
+ * @description Top message (structured mode with default.html)
584
+ */
585
+ messageTop?: string | null;
586
+ /**
587
+ * Messagebottom
588
+ * @description Bottom message (structured mode with default.html)
589
+ */
590
+ messageBottom?: string | null;
591
+ /**
592
+ * Buttontext
593
+ * @description Button text (structured mode with default.html)
594
+ */
595
+ buttonText?: string | null;
596
+ /**
597
+ * Customhtml
598
+ * @description Full custom HTML - if set, overrides structured fields
599
+ */
600
+ customHtml?: string | null;
601
+ /**
602
+ * Availablevariables
603
+ * @description Documentation of available variables
604
+ */
605
+ availableVariables?: {
606
+ [key: string]: unknown;
607
+ } | null;
608
+ /**
609
+ * Enabled
610
+ * @description Whether this template is active
611
+ * @default true
612
+ */
613
+ enabled: boolean;
614
+ };
615
+ /**
616
+ * EmailTemplateRead
617
+ * @description Schema for reading an email template.
618
+ */
619
+ EmailTemplateRead: {
620
+ /**
621
+ * Id
622
+ * Format: uuid4
623
+ */
624
+ id: string;
625
+ /** Templatetype */
626
+ templateType: string;
627
+ /** Groupid */
628
+ groupId: string | null;
629
+ /** Name */
630
+ name: string;
631
+ /** Description */
632
+ description: string | null;
633
+ /** Subject */
634
+ subject: string;
635
+ /** Headertext */
636
+ headerText: string | null;
637
+ /** Messagetop */
638
+ messageTop: string | null;
639
+ /** Messagebottom */
640
+ messageBottom: string | null;
641
+ /** Buttontext */
642
+ buttonText: string | null;
643
+ /** Customhtml */
644
+ customHtml: string | null;
645
+ /** Availablevariables */
646
+ availableVariables: {
647
+ [key: string]: unknown;
648
+ } | null;
649
+ /** Enabled */
650
+ enabled: boolean;
651
+ /**
652
+ * Createdat
653
+ * Format: date-time
654
+ */
655
+ createdAt: string;
656
+ /**
657
+ * Updateat
658
+ * Format: date-time
659
+ */
660
+ updateAt: string;
661
+ };
662
+ /**
663
+ * EmailTemplateSummary
664
+ * @description Summary schema for listing email templates.
665
+ */
666
+ EmailTemplateSummary: {
667
+ /**
668
+ * Id
669
+ * Format: uuid4
670
+ */
671
+ id: string;
672
+ /** Templatetype */
673
+ templateType: string;
674
+ /** Name */
675
+ name: string;
676
+ /** Description */
677
+ description: string | null;
678
+ /** Enabled */
679
+ enabled: boolean;
680
+ };
681
+ /**
682
+ * EmailTemplateUpdate
683
+ * @description Schema for updating an email template.
684
+ */
685
+ EmailTemplateUpdate: {
686
+ /** Name */
687
+ name?: string | null;
688
+ /** Description */
689
+ description?: string | null;
690
+ /** Subject */
691
+ subject?: string | null;
692
+ /** Headertext */
693
+ headerText?: string | null;
694
+ /** Messagetop */
695
+ messageTop?: string | null;
696
+ /** Messagebottom */
697
+ messageBottom?: string | null;
698
+ /** Buttontext */
699
+ buttonText?: string | null;
700
+ /** Customhtml */
701
+ customHtml?: string | null;
702
+ /** Availablevariables */
703
+ availableVariables?: {
704
+ [key: string]: unknown;
705
+ } | null;
706
+ /** Enabled */
707
+ enabled?: boolean | null;
708
+ };
563
709
  /**
564
710
  * EmailTest
565
711
  * @description Schema for the request body when sending a test email.
@@ -646,6 +792,9 @@ interface components {
646
792
  /**
647
793
  * EntryCreate
648
794
  * @description Schema for creating an entry.
795
+ *
796
+ * BREAKING CHANGE: content_markdown removed, replaced with data_json.
797
+ * Entry content is now schema-driven based on entry_type.schema_json.
649
798
  */
650
799
  EntryCreate: {
651
800
  /**
@@ -661,8 +810,13 @@ interface components {
661
810
  summary?: string | null;
662
811
  /** Description */
663
812
  description?: string | null;
664
- /** Contentmarkdown */
665
- contentMarkdown?: string | null;
813
+ /**
814
+ * Datajson
815
+ * @description Schema-driven content data (validated against entry_type.schema_json)
816
+ */
817
+ dataJson?: {
818
+ [key: string]: unknown;
819
+ };
666
820
  /**
667
821
  * Status
668
822
  * @default inbox
@@ -670,7 +824,14 @@ interface components {
670
824
  status: string;
671
825
  /** Publishedat */
672
826
  publishedAt?: string | null;
673
- /** Metadatajson */
827
+ /** Publishat */
828
+ publishAt?: string | null;
829
+ /** Expireat */
830
+ expireAt?: string | null;
831
+ /**
832
+ * Metadatajson
833
+ * @description Custom non-schema metadata (API keys, external IDs, etc.)
834
+ */
674
835
  metadataJson?: {
675
836
  [key: string]: unknown;
676
837
  } | null;
@@ -697,6 +858,9 @@ interface components {
697
858
  /**
698
859
  * EntryRead
699
860
  * @description Schema for reading an entry.
861
+ *
862
+ * BREAKING CHANGE: content_markdown removed, replaced with data_json.
863
+ * Entry content is now schema-driven based on entry_type.schema_json.
700
864
  */
701
865
  EntryRead: {
702
866
  /**
@@ -722,13 +886,25 @@ interface components {
722
886
  summary?: string | null;
723
887
  /** Description */
724
888
  description?: string | null;
725
- /** Contentmarkdown */
726
- contentMarkdown?: string | null;
889
+ /**
890
+ * Datajson
891
+ * @description Schema-driven content data
892
+ */
893
+ dataJson?: {
894
+ [key: string]: unknown;
895
+ };
727
896
  /** Status */
728
897
  status: string;
729
898
  /** Publishedat */
730
899
  publishedAt?: string | null;
731
- /** Metadatajson */
900
+ /** Publishat */
901
+ publishAt?: string | null;
902
+ /** Expireat */
903
+ expireAt?: string | null;
904
+ /**
905
+ * Metadatajson
906
+ * @description Custom non-schema metadata
907
+ */
732
908
  metadataJson?: {
733
909
  [key: string]: unknown;
734
910
  } | null;
@@ -756,6 +932,27 @@ interface components {
756
932
  /** Order */
757
933
  order?: number | null;
758
934
  };
935
+ /**
936
+ * EntryTypeCapabilities
937
+ * @description Capabilities for a published entry type.
938
+ */
939
+ EntryTypeCapabilities: {
940
+ /**
941
+ * Publishable
942
+ * @default true
943
+ */
944
+ publishable: boolean;
945
+ /**
946
+ * Submittable
947
+ * @default false
948
+ */
949
+ submittable: boolean;
950
+ /**
951
+ * Routable
952
+ * @default true
953
+ */
954
+ routable: boolean;
955
+ };
759
956
  /**
760
957
  * EntryTypeCreate
761
958
  * @description Schema for creating an entry type.
@@ -781,10 +978,39 @@ interface components {
781
978
  * @default false
782
979
  */
783
980
  isSystem: boolean;
981
+ /**
982
+ * Isrendered
983
+ * @default false
984
+ */
985
+ isRendered: boolean;
986
+ /**
987
+ * Schema Json
988
+ * @description Entry type schema definition (EntryTypeSchemaDefinition)
989
+ */
990
+ schema_json?: {
991
+ [key: string]: unknown;
992
+ } | null;
993
+ /**
994
+ * Rendering Json
995
+ * @description Rendering configuration (RenderingDefinition)
996
+ */
997
+ rendering_json?: {
998
+ [key: string]: unknown;
999
+ } | null;
1000
+ /**
1001
+ * Capabilities Json
1002
+ * @description Behavioral capabilities (CapabilitiesDefinition)
1003
+ */
1004
+ capabilities_json?: {
1005
+ [key: string]: unknown;
1006
+ } | null;
784
1007
  };
785
1008
  /**
786
1009
  * EntryTypeRead
787
1010
  * @description Schema for reading an entry type.
1011
+ *
1012
+ * System entry types have group_id=None and are globally available to all workspaces.
1013
+ * Workspace-scoped entry types have a specific group_id.
788
1014
  */
789
1015
  EntryTypeRead: {
790
1016
  /**
@@ -792,11 +1018,8 @@ interface components {
792
1018
  * Format: uuid4
793
1019
  */
794
1020
  id: string;
795
- /**
796
- * Groupid
797
- * Format: uuid4
798
- */
799
- groupId: string;
1021
+ /** Groupid */
1022
+ groupId: string | null;
800
1023
  /** Name */
801
1024
  name: string;
802
1025
  /** Slug */
@@ -811,10 +1034,54 @@ interface components {
811
1034
  sortOrder: number;
812
1035
  /** Issystem */
813
1036
  isSystem: boolean;
1037
+ /**
1038
+ * Isrendered
1039
+ * @default false
1040
+ */
1041
+ isRendered: boolean;
1042
+ /**
1043
+ * Schemajson
1044
+ * @description Entry type schema definition (EntryTypeSchemaDefinition)
1045
+ */
1046
+ schemaJson?: {
1047
+ [key: string]: unknown;
1048
+ } | null;
1049
+ /**
1050
+ * Renderingjson
1051
+ * @description Rendering configuration (RenderingDefinition)
1052
+ */
1053
+ renderingJson?: {
1054
+ [key: string]: unknown;
1055
+ } | null;
1056
+ /**
1057
+ * Capabilitiesjson
1058
+ * @description Behavioral capabilities (CapabilitiesDefinition)
1059
+ */
1060
+ capabilitiesJson?: {
1061
+ [key: string]: unknown;
1062
+ } | null;
814
1063
  /** Createdat */
815
1064
  createdAt?: string | null;
816
1065
  /** Updateat */
817
1066
  updateAt?: string | null;
1067
+ /** Warnings */
1068
+ warnings?: string[] | null;
1069
+ };
1070
+ /**
1071
+ * EntryTypeRendering
1072
+ * @description Rendering configuration for a published entry type.
1073
+ */
1074
+ EntryTypeRendering: {
1075
+ /** Renderer */
1076
+ renderer?: string | null;
1077
+ /** Package */
1078
+ package?: string | null;
1079
+ /** Version */
1080
+ version?: string | null;
1081
+ /** Config */
1082
+ config?: {
1083
+ [key: string]: unknown;
1084
+ } | null;
818
1085
  };
819
1086
  /**
820
1087
  * EntryTypeUpdate
@@ -835,10 +1102,36 @@ interface components {
835
1102
  sortOrder?: number | null;
836
1103
  /** Issystem */
837
1104
  isSystem?: boolean | null;
1105
+ /** Isrendered */
1106
+ isRendered?: boolean | null;
1107
+ /**
1108
+ * Schema Json
1109
+ * @description Entry type schema definition (EntryTypeSchemaDefinition)
1110
+ */
1111
+ schema_json?: {
1112
+ [key: string]: unknown;
1113
+ } | null;
1114
+ /**
1115
+ * Rendering Json
1116
+ * @description Rendering configuration (RenderingDefinition)
1117
+ */
1118
+ rendering_json?: {
1119
+ [key: string]: unknown;
1120
+ } | null;
1121
+ /**
1122
+ * Capabilities Json
1123
+ * @description Behavioral capabilities (CapabilitiesDefinition)
1124
+ */
1125
+ capabilities_json?: {
1126
+ [key: string]: unknown;
1127
+ } | null;
838
1128
  };
839
1129
  /**
840
1130
  * EntryUpdate
841
1131
  * @description Schema for patching an entry.
1132
+ *
1133
+ * BREAKING CHANGE: content_markdown removed, replaced with data_json.
1134
+ * Entry content is now schema-driven based on entry_type.schema_json.
842
1135
  */
843
1136
  EntryUpdate: {
844
1137
  /** Entry Type Id */
@@ -851,14 +1144,26 @@ interface components {
851
1144
  summary?: string | null;
852
1145
  /** Description */
853
1146
  description?: string | null;
854
- /** Content Markdown */
855
- content_markdown?: string | null;
1147
+ /**
1148
+ * Datajson
1149
+ * @description Schema-driven content data (validated against entry_type.schema_json)
1150
+ */
1151
+ dataJson?: {
1152
+ [key: string]: unknown;
1153
+ } | null;
856
1154
  /** Status */
857
1155
  status?: string | null;
858
- /** Published At */
859
- published_at?: string | null;
860
- /** Metadata Json */
861
- metadata_json?: {
1156
+ /** Publishedat */
1157
+ publishedAt?: string | null;
1158
+ /** Publishat */
1159
+ publishAt?: string | null;
1160
+ /** Expireat */
1161
+ expireAt?: string | null;
1162
+ /**
1163
+ * Metadatajson
1164
+ * @description Custom non-schema metadata (API keys, external IDs, etc.)
1165
+ */
1166
+ metadataJson?: {
862
1167
  [key: string]: unknown;
863
1168
  } | null;
864
1169
  /** Collection Ids */
@@ -874,7 +1179,7 @@ interface components {
874
1179
  * Helps listeners understand the nature of `EventDocumentDataBase` content.
875
1180
  * @enum {string}
876
1181
  */
877
- EventDocumentType: "generic" | "user" | "workspace" | "entry" | "collection" | "asset" | "webhook" | "member" | "invitation" | "api_token" | "api_client" | "entry_type" | "resource" | "deployment";
1182
+ EventDocumentType: "generic" | "user" | "workspace" | "entry" | "form" | "form_submission" | "collection" | "asset" | "webhook" | "member" | "invitation" | "api_token" | "api_client" | "entry_type" | "resource" | "deployment";
878
1183
  /**
879
1184
  * EventLogRead
880
1185
  * @description Schema for reading an event log entry.
@@ -1024,6 +1329,165 @@ interface components {
1024
1329
  /** Email */
1025
1330
  email: string;
1026
1331
  };
1332
+ /**
1333
+ * FormCreate
1334
+ * @description Schema for creating a form.
1335
+ */
1336
+ FormCreate: {
1337
+ /** Name */
1338
+ name: string;
1339
+ /** Slug */
1340
+ slug?: string | null;
1341
+ /** Description */
1342
+ description?: string | null;
1343
+ /**
1344
+ * Status
1345
+ * @default draft
1346
+ */
1347
+ status: string;
1348
+ /** Formschema */
1349
+ formSchema?: {
1350
+ [key: string]: unknown;
1351
+ };
1352
+ /** Settingsjson */
1353
+ settingsJson?: {
1354
+ [key: string]: unknown;
1355
+ } | null;
1356
+ /** Metadatajson */
1357
+ metadataJson?: {
1358
+ [key: string]: unknown;
1359
+ } | null;
1360
+ };
1361
+ /**
1362
+ * FormRead
1363
+ * @description Schema for reading a form.
1364
+ */
1365
+ FormRead: {
1366
+ /**
1367
+ * Id
1368
+ * Format: uuid4
1369
+ */
1370
+ id: string;
1371
+ /**
1372
+ * Groupid
1373
+ * Format: uuid4
1374
+ */
1375
+ groupId: string;
1376
+ /** Slug */
1377
+ slug: string;
1378
+ /** Name */
1379
+ name: string;
1380
+ /** Description */
1381
+ description: string | null;
1382
+ /** Schemajson */
1383
+ schemaJson: {
1384
+ [key: string]: unknown;
1385
+ };
1386
+ /** Settingsjson */
1387
+ settingsJson: {
1388
+ [key: string]: unknown;
1389
+ } | null;
1390
+ /** Metadatajson */
1391
+ metadataJson: {
1392
+ [key: string]: unknown;
1393
+ } | null;
1394
+ /** Status */
1395
+ status: string;
1396
+ /** Submissionscount */
1397
+ submissionsCount: number;
1398
+ /** Lastsubmissionat */
1399
+ lastSubmissionAt: string | null;
1400
+ /** Createdat */
1401
+ createdAt: string | null;
1402
+ /** Updateat */
1403
+ updateAt: string | null;
1404
+ };
1405
+ /**
1406
+ * FormSubmissionRead
1407
+ * @description Schema for reading a form submission.
1408
+ */
1409
+ FormSubmissionRead: {
1410
+ /**
1411
+ * Id
1412
+ * Format: uuid4
1413
+ */
1414
+ id: string;
1415
+ /**
1416
+ * Formid
1417
+ * Format: uuid4
1418
+ */
1419
+ formId: string;
1420
+ /**
1421
+ * Groupid
1422
+ * Format: uuid4
1423
+ */
1424
+ groupId: string;
1425
+ /** Datajson */
1426
+ dataJson: {
1427
+ [key: string]: unknown;
1428
+ };
1429
+ /** Metadatajson */
1430
+ metadataJson: {
1431
+ [key: string]: unknown;
1432
+ } | null;
1433
+ /** Status */
1434
+ status: string;
1435
+ /** Ipaddress */
1436
+ ipAddress: string | null;
1437
+ /** Useragent */
1438
+ userAgent: string | null;
1439
+ /** Referrer */
1440
+ referrer: string | null;
1441
+ /**
1442
+ * Submittedat
1443
+ * Format: date-time
1444
+ */
1445
+ submittedAt: string;
1446
+ /** Processedat */
1447
+ processedAt: string | null;
1448
+ };
1449
+ /**
1450
+ * FormSubmissionResponse
1451
+ * @description Response after form submission.
1452
+ *
1453
+ * Indicates success/failure and optionally provides redirect URL.
1454
+ */
1455
+ FormSubmissionResponse: {
1456
+ /** Success */
1457
+ success: boolean;
1458
+ /** Message */
1459
+ message: string;
1460
+ /** Submissionid */
1461
+ submissionId?: string | null;
1462
+ /** Redirecturl */
1463
+ redirectUrl?: string | null;
1464
+ };
1465
+ /**
1466
+ * FormUpdate
1467
+ * @description Schema for updating a form.
1468
+ */
1469
+ FormUpdate: {
1470
+ /** Name */
1471
+ name?: string | null;
1472
+ /** Slug */
1473
+ slug?: string | null;
1474
+ /** Description */
1475
+ description?: string | null;
1476
+ /** Status */
1477
+ status?: string | null;
1478
+ /** Formschema */
1479
+ formSchema?: {
1480
+ [key: string]: unknown;
1481
+ } | null;
1482
+ /** Settingsjson */
1483
+ settingsJson?: {
1484
+ [key: string]: unknown;
1485
+ } | null;
1486
+ /** Metadatajson */
1487
+ metadataJson?: {
1488
+ [key: string]: unknown;
1489
+ } | null;
1490
+ };
1027
1491
  /**
1028
1492
  * GroupAdminUpdate
1029
1493
  * @description Schema for administrators to update a group.
@@ -1618,15 +2082,10 @@ interface components {
1618
2082
  description?: string | null;
1619
2083
  /** Publicurl */
1620
2084
  publicUrl: string;
1621
- /** Metadata */
1622
- metadata?: {
2085
+ /** Metadatajson */
2086
+ metadataJson?: {
1623
2087
  [key: string]: unknown;
1624
2088
  } | null;
1625
- /**
1626
- * Entries
1627
- * @default []
1628
- */
1629
- entries: string[];
1630
2089
  };
1631
2090
  /**
1632
2091
  * PublishedAssetsResponse
@@ -1659,8 +2118,8 @@ interface components {
1659
2118
  smartRules?: {
1660
2119
  [key: string]: unknown;
1661
2120
  } | null;
1662
- /** Metadata */
1663
- metadata?: {
2121
+ /** Metadatajson */
2122
+ metadataJson?: {
1664
2123
  [key: string]: unknown;
1665
2124
  } | null;
1666
2125
  /** Entrycount */
@@ -1671,35 +2130,21 @@ interface components {
1671
2130
  /**
1672
2131
  * PublishedCollectionSummary
1673
2132
  * @description Summary schema for published collections (for listing).
2133
+ *
2134
+ * Minimal collection info for entry contexts - only includes
2135
+ * essential fields for display and ordering.
1674
2136
  */
1675
2137
  PublishedCollectionSummary: {
1676
2138
  /** Slug */
1677
2139
  slug: string;
1678
2140
  /** Name */
1679
2141
  name: string;
1680
- /** Description */
1681
- description?: string | null;
1682
- /**
1683
- * Issmart
1684
- * @default false
1685
- */
1686
- isSmart: boolean;
1687
- /** Smartrules */
1688
- smartRules?: {
1689
- [key: string]: unknown;
1690
- } | null;
1691
- /** Metadata */
1692
- metadata?: {
2142
+ /** Metadatajson */
2143
+ metadataJson?: {
1693
2144
  [key: string]: unknown;
1694
2145
  } | null;
1695
- /** Entrycount */
1696
- entryCount: number;
1697
2146
  /** Sortorder */
1698
2147
  sortOrder: number;
1699
- /** Icon */
1700
- icon?: string | null;
1701
- /** Color */
1702
- color?: string | null;
1703
2148
  };
1704
2149
  /**
1705
2150
  * PublishedCollectionsResponse
@@ -1733,27 +2178,30 @@ interface components {
1733
2178
  title: string;
1734
2179
  /** Entrytype */
1735
2180
  entryType: string;
2181
+ entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
1736
2182
  /** Summary */
1737
2183
  summary?: string | null;
1738
2184
  /** Publishedat */
1739
2185
  publishedAt?: string | null;
2186
+ /** Status */
2187
+ status: string;
1740
2188
  /**
1741
2189
  * Collections
1742
2190
  * @default []
1743
2191
  */
1744
2192
  collections: string[];
1745
2193
  /**
1746
- * Assets
2194
+ * Assetslugs
1747
2195
  * @default []
1748
2196
  */
1749
- assets: string[];
1750
- /** Order */
1751
- order?: number | null;
2197
+ assetSlugs: string[];
1752
2198
  /**
1753
- * Resources
2199
+ * Resourceslugs
1754
2200
  * @default []
1755
2201
  */
1756
- resources: string[];
2202
+ resourceSlugs: string[];
2203
+ /** Order */
2204
+ order?: number | null;
1757
2205
  };
1758
2206
  /**
1759
2207
  * PublishedEntryRead
@@ -1761,6 +2209,9 @@ interface components {
1761
2209
  *
1762
2210
  * Only includes public-facing fields. Excludes all admin metadata,
1763
2211
  * internal fields, and user information.
2212
+ *
2213
+ * BREAKING CHANGE: content_markdown removed, replaced with data.
2214
+ * Entry content is now schema-driven based on entry_type.schema_json.
1764
2215
  */
1765
2216
  PublishedEntryRead: {
1766
2217
  /** Slug */
@@ -1769,14 +2220,17 @@ interface components {
1769
2220
  title: string;
1770
2221
  /** Entrytype */
1771
2222
  entryType: string;
2223
+ entryTypeInfo?: components["schemas"]["PublishedEntryTypeInfo"] | null;
1772
2224
  /** Summary */
1773
2225
  summary?: string | null;
1774
- /** Contentmarkdown */
1775
- contentMarkdown?: string | null;
2226
+ /** Data */
2227
+ data: {
2228
+ [key: string]: unknown;
2229
+ };
1776
2230
  /** Publishedat */
1777
2231
  publishedAt?: string | null;
1778
- /** Metadata */
1779
- metadata?: {
2232
+ /** Metadatajson */
2233
+ metadataJson?: {
1780
2234
  [key: string]: unknown;
1781
2235
  } | null;
1782
2236
  /**
@@ -1797,6 +2251,79 @@ interface components {
1797
2251
  /** Order */
1798
2252
  order?: number | null;
1799
2253
  };
2254
+ /**
2255
+ * PublishedEntryTypeInfo
2256
+ * @description Flattened entry type rendering and capabilities info for published entries.
2257
+ */
2258
+ PublishedEntryTypeInfo: {
2259
+ /** Slug */
2260
+ slug: string;
2261
+ /** Renderer */
2262
+ renderer?: string | null;
2263
+ /** Package */
2264
+ package?: string | null;
2265
+ /** Version */
2266
+ version?: string | null;
2267
+ /** Config */
2268
+ config?: {
2269
+ [key: string]: unknown;
2270
+ } | null;
2271
+ /**
2272
+ * Publishable
2273
+ * @default true
2274
+ */
2275
+ publishable: boolean;
2276
+ /**
2277
+ * Submittable
2278
+ * @default false
2279
+ */
2280
+ submittable: boolean;
2281
+ /**
2282
+ * Routable
2283
+ * @default true
2284
+ */
2285
+ routable: boolean;
2286
+ };
2287
+ /**
2288
+ * PublishedEntryTypeRead
2289
+ * @description Schema for entry types in the publishing API.
2290
+ */
2291
+ PublishedEntryTypeRead: {
2292
+ /** Slug */
2293
+ slug: string;
2294
+ /** Name */
2295
+ name: string;
2296
+ /**
2297
+ * Isrendered
2298
+ * @default false
2299
+ */
2300
+ isRendered: boolean;
2301
+ rendering?: components["schemas"]["EntryTypeRendering"] | null;
2302
+ capabilities?: components["schemas"]["EntryTypeCapabilities"] | null;
2303
+ };
2304
+ /**
2305
+ * PublishedFormRead
2306
+ * @description Schema for published forms in the publishing API.
2307
+ *
2308
+ * Provides form definition for frontend to render the form.
2309
+ * Does not expose internal fields like submissions_count.
2310
+ */
2311
+ PublishedFormRead: {
2312
+ /** Slug */
2313
+ slug: string;
2314
+ /** Name */
2315
+ name: string;
2316
+ /** Description */
2317
+ description?: string | null;
2318
+ /** Formschema */
2319
+ formSchema: {
2320
+ [key: string]: unknown;
2321
+ };
2322
+ /** Metadata */
2323
+ metadata?: {
2324
+ [key: string]: unknown;
2325
+ } | null;
2326
+ };
1800
2327
  /**
1801
2328
  * PublishedResourceRead
1802
2329
  * @description Schema for published resources in entry context.
@@ -1816,8 +2343,8 @@ interface components {
1816
2343
  url?: string | null;
1817
2344
  /** Externalid */
1818
2345
  externalId?: string | null;
1819
- /** Metadata */
1820
- metadata?: {
2346
+ /** Metadatajson */
2347
+ metadataJson?: {
1821
2348
  [key: string]: unknown;
1822
2349
  } | null;
1823
2350
  /** Role */
@@ -1852,8 +2379,8 @@ interface components {
1852
2379
  url?: string | null;
1853
2380
  /** Externalid */
1854
2381
  externalId?: string | null;
1855
- /** Metadata */
1856
- metadata?: {
2382
+ /** Metadatajson */
2383
+ metadataJson?: {
1857
2384
  [key: string]: unknown;
1858
2385
  } | null;
1859
2386
  /**
@@ -2179,8 +2706,8 @@ interface components {
2179
2706
  social?: {
2180
2707
  [key: string]: unknown;
2181
2708
  } | null;
2182
- /** Metadata */
2183
- metadata?: {
2709
+ /** Metadatajson */
2710
+ metadataJson?: {
2184
2711
  [key: string]: unknown;
2185
2712
  } | null;
2186
2713
  };
@@ -2232,6 +2759,17 @@ interface components {
2232
2759
  /** Data Dir Path */
2233
2760
  data_dir_path: string;
2234
2761
  };
2762
+ /**
2763
+ * TestEmailRequest
2764
+ * @description Request to send a test email.
2765
+ */
2766
+ TestEmailRequest: {
2767
+ /**
2768
+ * Recipient Email
2769
+ * Format: email
2770
+ */
2771
+ recipient_email: string;
2772
+ };
2235
2773
  /**
2236
2774
  * TokenResponseDelete
2237
2775
  * @description Schema for the response after successfully deleting an API token.
@@ -2853,6 +3391,16 @@ type PlatformWorkspaceMemberUpdate = components['schemas']['WorkspaceMemberUpdat
2853
3391
  */
2854
3392
  type EventLogEntry = components['schemas']['EventLogRead'];
2855
3393
  type EventLogSummary = components['schemas']['EventLogSummary'];
3394
+ /**
3395
+ * Forms (Platform API - full CRUD)
3396
+ */
3397
+ type PlatformForm = components['schemas']['FormRead'];
3398
+ type PlatformFormCreate = components['schemas']['FormCreate'];
3399
+ type PlatformFormUpdate = components['schemas']['FormUpdate'];
3400
+ /**
3401
+ * Form Submissions (Platform API - read access)
3402
+ */
3403
+ type PlatformFormSubmission = components['schemas']['FormSubmissionRead'];
2856
3404
 
2857
3405
  /**
2858
3406
  * Entries Module - Platform API
@@ -2982,9 +3530,19 @@ declare class ResourcesModule {
2982
3530
  * CRUD operations and file upload for assets
2983
3531
  */
2984
3532
 
3533
+ interface FileUploadOptions {
3534
+ /** Maximum file size in bytes (default: 100MB) */
3535
+ maxFileSize?: number;
3536
+ /** Allowed MIME types (if not provided, all types allowed) */
3537
+ allowedMimeTypes?: string[];
3538
+ }
2985
3539
  declare class AssetsModule {
2986
3540
  private http;
2987
3541
  constructor(http: HttpClient);
3542
+ /**
3543
+ * Validate file before upload
3544
+ */
3545
+ private validateFile;
2988
3546
  /**
2989
3547
  * List all assets
2990
3548
  */
@@ -2998,9 +3556,22 @@ declare class AssetsModule {
2998
3556
  *
2999
3557
  * @param file - The file to upload (File or Blob)
3000
3558
  * @param metadata - Asset metadata (slug, name, altText, description, metadata)
3559
+ * @param options - Upload options (file size limits, allowed types)
3001
3560
  * @returns The created asset with extracted metadata
3561
+ *
3562
+ * @example
3563
+ * ```typescript
3564
+ * // Upload with default limits (100MB, all types)
3565
+ * const asset = await assets.upload(file, { slug: 'my-image', name: 'My Image' });
3566
+ *
3567
+ * // Upload with restrictions
3568
+ * const asset = await assets.upload(file,
3569
+ * { slug: 'avatar', name: 'Avatar' },
3570
+ * { maxFileSize: 5 * 1024 * 1024, allowedMimeTypes: ['image/*'] }
3571
+ * );
3572
+ * ```
3002
3573
  */
3003
- upload(file: File | Blob, metadata: PlatformAssetUpload): Promise<PlatformAsset>;
3574
+ upload(file: File | Blob, metadata: PlatformAssetUpload, options?: FileUploadOptions): Promise<PlatformAsset>;
3004
3575
  /**
3005
3576
  * Update an asset (editable fields only: slug, name, altText, description, metadata)
3006
3577
  */
@@ -3009,6 +3580,11 @@ declare class AssetsModule {
3009
3580
  * Delete an asset (removes file from storage and database)
3010
3581
  */
3011
3582
  delete(id: string): Promise<void>;
3583
+ /**
3584
+ * Get download URL for an asset file
3585
+ * Use this to create download links or fetch the file directly
3586
+ */
3587
+ getDownloadUrl(id: string, baseUrl?: string): string;
3012
3588
  }
3013
3589
 
3014
3590
  /**
@@ -3061,7 +3637,10 @@ interface EntryTypeCreate {
3061
3637
  icon?: string;
3062
3638
  color?: string;
3063
3639
  sortOrder?: number;
3640
+ isRendered?: boolean;
3064
3641
  schemaJson?: Record<string, unknown>;
3642
+ renderingJson?: Record<string, unknown>;
3643
+ capabilitiesJson?: Record<string, unknown>;
3065
3644
  }
3066
3645
  interface EntryTypeUpdate {
3067
3646
  name?: string;
@@ -3070,7 +3649,10 @@ interface EntryTypeUpdate {
3070
3649
  icon?: string;
3071
3650
  color?: string;
3072
3651
  sortOrder?: number;
3652
+ isRendered?: boolean;
3073
3653
  schemaJson?: Record<string, unknown>;
3654
+ renderingJson?: Record<string, unknown>;
3655
+ capabilitiesJson?: Record<string, unknown>;
3074
3656
  }
3075
3657
  declare class EntryTypesModule {
3076
3658
  private http;
@@ -3157,11 +3739,21 @@ interface WorkspaceUpdate {
3157
3739
  name?: string;
3158
3740
  description?: string | null;
3159
3741
  }
3742
+ /**
3743
+ * Workspace preferences - dynamic key-value store
3744
+ * Common keys include: theme, locale, notifications, etc.
3745
+ */
3160
3746
  interface WorkspacePreferences {
3161
- [key: string]: any;
3747
+ theme?: string;
3748
+ locale?: string;
3749
+ notifications?: boolean;
3750
+ [key: string]: unknown;
3162
3751
  }
3163
3752
  interface WorkspacePreferencesUpdate {
3164
- [key: string]: any;
3753
+ theme?: string;
3754
+ locale?: string;
3755
+ notifications?: boolean;
3756
+ [key: string]: unknown;
3165
3757
  }
3166
3758
  declare class WorkspacesModule {
3167
3759
  private http;
@@ -3195,6 +3787,13 @@ declare class WorkspacesModule {
3195
3787
  * Delete a workspace (requires SUPER_ADMIN)
3196
3788
  */
3197
3789
  delete(id: string, force?: boolean): Promise<void>;
3790
+ /**
3791
+ * Export workspace data as JSON (collections, entry types, entries, site config)
3792
+ */
3793
+ export(options?: {
3794
+ includeSystemTypes?: boolean;
3795
+ pretty?: boolean;
3796
+ }): Promise<Record<string, unknown>>;
3198
3797
  /**
3199
3798
  * Get workspace preferences
3200
3799
  */
@@ -3243,7 +3842,19 @@ declare class InvitesModule {
3243
3842
  delete(tokenId: string): Promise<void>;
3244
3843
  /**
3245
3844
  * Generate invitation URL from a token
3246
- * Uses MARVIN_FRONTEND_URL for the base URL, falls back to MARVIN_API_URL with common port mappings
3845
+ *
3846
+ * @param token - Invitation token
3847
+ * @param baseUrl - Base URL for the frontend (required in browser environments)
3848
+ * @returns Full invitation URL
3849
+ *
3850
+ * @example
3851
+ * ```typescript
3852
+ * // Node.js (can use env vars)
3853
+ * const url = invites.getInvitationUrl(token);
3854
+ *
3855
+ * // Browser (must provide baseUrl)
3856
+ * const url = invites.getInvitationUrl(token, 'https://app.example.com');
3857
+ * ```
3247
3858
  */
3248
3859
  getInvitationUrl(token: string, baseUrl?: string): string;
3249
3860
  }
@@ -3329,6 +3940,10 @@ interface WebhookUpdate {
3329
3940
  declare class WebhooksModule {
3330
3941
  private http;
3331
3942
  constructor(http: HttpClient);
3943
+ /**
3944
+ * Validate webhook URL to prevent SSRF attacks
3945
+ */
3946
+ private validateWebhookUrl;
3332
3947
  /**
3333
3948
  * List all webhooks for the current workspace
3334
3949
  */
@@ -3339,10 +3954,12 @@ declare class WebhooksModule {
3339
3954
  get(id: string): Promise<Webhook>;
3340
3955
  /**
3341
3956
  * Create a new webhook
3957
+ * Validates URL to prevent SSRF attacks
3342
3958
  */
3343
3959
  create(data: WebhookCreate): Promise<Webhook>;
3344
3960
  /**
3345
3961
  * Update a webhook
3962
+ * Validates URL if provided to prevent SSRF attacks
3346
3963
  */
3347
3964
  update(id: string, data: WebhookUpdate): Promise<Webhook>;
3348
3965
  /**
@@ -3422,7 +4039,22 @@ declare class AdminUsersModule {
3422
4039
  */
3423
4040
 
3424
4041
  type AdminAboutInfo = components['schemas']['AdminAboutInfo'];
4042
+ /**
4043
+ * Email settings returned from API (read-only)
4044
+ * Password is never returned for security reasons
4045
+ */
3425
4046
  interface EmailSettings {
4047
+ host?: string;
4048
+ port?: number;
4049
+ username?: string;
4050
+ from?: string;
4051
+ useTls?: boolean;
4052
+ }
4053
+ /**
4054
+ * Email settings for updates (write-only)
4055
+ * Password can be provided to update settings
4056
+ */
4057
+ interface EmailSettingsUpdate {
3426
4058
  host?: string;
3427
4059
  port?: number;
3428
4060
  username?: string;
@@ -3438,6 +4070,18 @@ interface SystemStatistics {
3438
4070
  resources?: number;
3439
4071
  assets?: number;
3440
4072
  }
4073
+ interface StartupInfo {
4074
+ version: string;
4075
+ api_port: number;
4076
+ api_docs: boolean;
4077
+ database_url: string;
4078
+ database_provider: string;
4079
+ default_group?: string;
4080
+ allow_signup: boolean;
4081
+ theme?: string;
4082
+ custom_middleware?: string[];
4083
+ [key: string]: unknown;
4084
+ }
3441
4085
  declare class AdminSystemModule {
3442
4086
  private http;
3443
4087
  constructor(http: HttpClient);
@@ -3454,7 +4098,7 @@ declare class AdminSystemModule {
3454
4098
  /**
3455
4099
  * Get startup information
3456
4100
  */
3457
- getStartupInfo(): Promise<any>;
4101
+ getStartupInfo(): Promise<StartupInfo>;
3458
4102
  /**
3459
4103
  * Get system statistics
3460
4104
  */
@@ -3465,8 +4109,9 @@ declare class AdminSystemModule {
3465
4109
  getEmailSettings(): Promise<EmailSettings>;
3466
4110
  /**
3467
4111
  * Update email settings
4112
+ * Note: Password field is write-only and will not be returned in response
3468
4113
  */
3469
- updateEmailSettings(data: EmailSettings): Promise<EmailSettings>;
4114
+ updateEmailSettings(data: EmailSettingsUpdate): Promise<EmailSettings>;
3470
4115
  }
3471
4116
 
3472
4117
  /**
@@ -3724,10 +4369,6 @@ declare class EventLogModule {
3724
4369
  * Authenticated session management (logout, refresh)
3725
4370
  */
3726
4371
 
3727
- interface AuthToken {
3728
- accessToken: string;
3729
- tokenType: string;
3730
- }
3731
4372
  declare class AuthModule {
3732
4373
  private http;
3733
4374
  constructor(http: HttpClient);
@@ -3784,6 +4425,216 @@ declare class ThemeModule {
3784
4425
  getTheme(): Promise<AppTheme>;
3785
4426
  }
3786
4427
 
4428
+ /**
4429
+ * Email Templates Module - Platform API
4430
+ *
4431
+ * Manage workspace email templates
4432
+ */
4433
+
4434
+ interface EmailTemplateSummary {
4435
+ id: string;
4436
+ template_type: string;
4437
+ group_id: string | null;
4438
+ name: string;
4439
+ description?: string;
4440
+ enabled: boolean;
4441
+ created_at: string;
4442
+ updated_at: string;
4443
+ }
4444
+ interface EmailTemplateRead extends EmailTemplateSummary {
4445
+ subject: string;
4446
+ header_text?: string;
4447
+ message_top?: string;
4448
+ message_bottom?: string;
4449
+ button_text?: string;
4450
+ custom_html?: string;
4451
+ available_variables?: Record<string, string>;
4452
+ }
4453
+ interface EmailTemplateCreate {
4454
+ template_type: string;
4455
+ group_id?: string;
4456
+ name: string;
4457
+ description?: string;
4458
+ subject: string;
4459
+ header_text?: string;
4460
+ message_top?: string;
4461
+ message_bottom?: string;
4462
+ button_text?: string;
4463
+ custom_html?: string;
4464
+ available_variables?: Record<string, string>;
4465
+ enabled?: boolean;
4466
+ }
4467
+ interface EmailTemplateUpdate {
4468
+ name?: string;
4469
+ description?: string;
4470
+ subject?: string;
4471
+ header_text?: string;
4472
+ message_top?: string;
4473
+ message_bottom?: string;
4474
+ button_text?: string;
4475
+ custom_html?: string;
4476
+ available_variables?: Record<string, string>;
4477
+ enabled?: boolean;
4478
+ }
4479
+ interface TestEmailRequest {
4480
+ recipient_email: string;
4481
+ }
4482
+ interface TestEmailResponse {
4483
+ message: string;
4484
+ }
4485
+ /**
4486
+ * Email Templates API client for workspace-scoped templates
4487
+ */
4488
+ declare class EmailTemplatesClient {
4489
+ private readonly http;
4490
+ constructor(http: HttpClient);
4491
+ /**
4492
+ * List all email templates for the workspace
4493
+ * @param groupId - Workspace ID
4494
+ */
4495
+ list(groupId: string): Promise<EmailTemplateSummary[]>;
4496
+ /**
4497
+ * Get a specific email template
4498
+ * @param groupId - Workspace ID
4499
+ * @param templateId - Template ID
4500
+ */
4501
+ get(groupId: string, templateId: string): Promise<EmailTemplateRead>;
4502
+ /**
4503
+ * Create a new email template
4504
+ * @param groupId - Workspace ID
4505
+ * @param data - Template data
4506
+ */
4507
+ create(groupId: string, data: EmailTemplateCreate): Promise<EmailTemplateRead>;
4508
+ /**
4509
+ * Update an email template
4510
+ * @param groupId - Workspace ID
4511
+ * @param templateId - Template ID
4512
+ * @param data - Updated template data
4513
+ */
4514
+ update(groupId: string, templateId: string, data: EmailTemplateUpdate): Promise<EmailTemplateRead>;
4515
+ /**
4516
+ * Delete an email template
4517
+ * @param groupId - Workspace ID
4518
+ * @param templateId - Template ID
4519
+ */
4520
+ delete(groupId: string, templateId: string): Promise<void>;
4521
+ /**
4522
+ * Send a test email using a template
4523
+ * @param groupId - Workspace ID
4524
+ * @param templateId - Template ID
4525
+ * @param recipientEmail - Test recipient email address
4526
+ */
4527
+ sendTest(groupId: string, templateId: string, recipientEmail: string): Promise<TestEmailResponse>;
4528
+ }
4529
+
4530
+ /**
4531
+ * Scheduled Tasks Module - Platform API
4532
+ *
4533
+ * Manage workspace scheduled task automation
4534
+ */
4535
+
4536
+ type ScheduledTask = components['schemas']['ScheduledTaskRead'];
4537
+ type ScheduledTaskCreate = components['schemas']['ScheduledTaskCreate'];
4538
+ type ScheduledTaskUpdate = components['schemas']['ScheduledTaskUpdate'];
4539
+ type ScheduledTaskExecutionLog = components['schemas']['ScheduledTaskExecutionLogRead'];
4540
+ interface TaskTypeInfo {
4541
+ task_type: string;
4542
+ name: string;
4543
+ description: string;
4544
+ config_schema?: any;
4545
+ }
4546
+ declare class ScheduledTasksModule {
4547
+ private http;
4548
+ constructor(http: HttpClient);
4549
+ /**
4550
+ * List all scheduled tasks for the current workspace
4551
+ */
4552
+ list(): Promise<ScheduledTask[]>;
4553
+ /**
4554
+ * Get a scheduled task by ID or slug
4555
+ */
4556
+ get(idOrSlug: string): Promise<ScheduledTask>;
4557
+ /**
4558
+ * Create a new scheduled task
4559
+ */
4560
+ create(data: ScheduledTaskCreate): Promise<ScheduledTask>;
4561
+ /**
4562
+ * Update a scheduled task
4563
+ */
4564
+ update(idOrSlug: string, data: ScheduledTaskUpdate): Promise<ScheduledTask>;
4565
+ /**
4566
+ * Delete a scheduled task
4567
+ */
4568
+ delete(idOrSlug: string): Promise<void>;
4569
+ /**
4570
+ * Manually trigger task execution (bypass schedule)
4571
+ */
4572
+ execute(idOrSlug: string): Promise<void>;
4573
+ /**
4574
+ * Get task execution history
4575
+ */
4576
+ history(idOrSlug: string, options?: {
4577
+ limit?: number;
4578
+ }): Promise<ScheduledTaskExecutionLog[]>;
4579
+ /**
4580
+ * Get available task types
4581
+ */
4582
+ taskTypes(options?: {
4583
+ detailed?: boolean;
4584
+ }): Promise<string[] | TaskTypeInfo[]>;
4585
+ }
4586
+
4587
+ /**
4588
+ * Forms Module - Platform API
4589
+ *
4590
+ * CRUD operations for forms and submissions
4591
+ */
4592
+
4593
+ declare class FormsModule {
4594
+ private http;
4595
+ constructor(http: HttpClient);
4596
+ /**
4597
+ * Validate form submission data
4598
+ * - Prevents XSS by checking for script tags
4599
+ * - Validates data is a proper object
4600
+ * - Checks for reasonable size limits
4601
+ */
4602
+ private validateFormData;
4603
+ /**
4604
+ * List all forms
4605
+ */
4606
+ list(): Promise<PlatformForm[]>;
4607
+ /**
4608
+ * Get a single form by ID
4609
+ */
4610
+ get(id: string): Promise<PlatformForm>;
4611
+ /**
4612
+ * Create a new form
4613
+ */
4614
+ create(data: PlatformFormCreate): Promise<PlatformForm>;
4615
+ /**
4616
+ * Update a form
4617
+ */
4618
+ update(id: string, data: PlatformFormUpdate): Promise<PlatformForm>;
4619
+ /**
4620
+ * Delete a form
4621
+ */
4622
+ delete(id: string): Promise<void>;
4623
+ /**
4624
+ * Get submissions for a form
4625
+ */
4626
+ getSubmissions(formId: string): Promise<PlatformFormSubmission[]>;
4627
+ /**
4628
+ * Get a published form by slug (Publishing API - public access)
4629
+ */
4630
+ getPublishedForm(slug: string): Promise<PlatformForm>;
4631
+ /**
4632
+ * Submit data to a published form (Publishing API - public access)
4633
+ * Validates data before submission to prevent XSS and malicious content
4634
+ */
4635
+ submitForm(slug: string, data: Record<string, unknown>): Promise<PlatformFormSubmission>;
4636
+ }
4637
+
3787
4638
  /**
3788
4639
  * Platform API Client
3789
4640
  *
@@ -3791,10 +4642,14 @@ declare class ThemeModule {
3791
4642
  */
3792
4643
 
3793
4644
  interface PlatformClientConfig {
3794
- apiUrl: string;
4645
+ apiUrl?: string;
3795
4646
  userToken?: string;
3796
4647
  credentials?: RequestCredentials;
3797
4648
  }
4649
+ /**
4650
+ * Create Platform API config from environment
4651
+ */
4652
+ declare function createPlatformConfigFromEnv(overrides?: Partial<PlatformClientConfig>): PlatformClientConfig;
3798
4653
  declare class PlatformClient extends HttpClient {
3799
4654
  entries: EntriesModule;
3800
4655
  collections: CollectionsModule;
@@ -3812,6 +4667,9 @@ declare class PlatformClient extends HttpClient {
3812
4667
  eventLog: EventLogModule;
3813
4668
  session: AuthModule;
3814
4669
  theme: ThemeModule;
4670
+ emailTemplates: EmailTemplatesClient;
4671
+ scheduledTasks: ScheduledTasksModule;
4672
+ forms: FormsModule;
3815
4673
  adminUsers: AdminUsersModule;
3816
4674
  adminSystem: AdminSystemModule;
3817
4675
  adminMaintenance: AdminMaintenanceModule;
@@ -3819,7 +4677,23 @@ declare class PlatformClient extends HttpClient {
3819
4677
  }
3820
4678
  /**
3821
4679
  * Create a Platform API client
4680
+ *
4681
+ * @example
4682
+ * ```ts
4683
+ * // From environment (MARVIN_API_URL, MARVIN_USER_TOKEN)
4684
+ * const platform = createPlatformClient();
4685
+ *
4686
+ * // With explicit user token (for programmatic admin)
4687
+ * const platform = createPlatformClient({
4688
+ * userToken: 'user-token-here'
4689
+ * });
4690
+ *
4691
+ * // Browser with session cookies (admin UI)
4692
+ * const platform = createPlatformClient({
4693
+ * credentials: 'include'
4694
+ * });
4695
+ * ```
3822
4696
  */
3823
- declare function createPlatformClient(config: PlatformClientConfig): PlatformClient;
4697
+ declare function createPlatformClient(config?: Partial<PlatformClientConfig>): PlatformClient;
3824
4698
 
3825
- export { APIClientsModule, type AdminAboutInfo, AdminMaintenanceModule, AdminSystemModule, AdminUsersModule, type ApiToken, type ApiTokenCreate, type ApiTokenWithToken, type AppTheme, AssetsModule, AuthModule, type AuthToken, CollectionsModule, type EmailInvitationRequest, type EmailSettings, EntriesModule, EntryTypesModule, type EventLogEntry, EventLogModule, type EventLogQueryParams, type EventLogSummary, type EventOption, EventsModule, type InviteTokenCreate, type InviteTokenPagination, type InviteTokenSummary, InvitesModule, type MaintenanceStorageDetails, type MaintenanceSummary, type Notification, type NotificationCreate, type NotificationUpdate, NotificationsModule, type PasswordChange, type PasswordResetTokenRequest, type PasswordResetTokenResponse, type PlatformAPIClient, type PlatformAPIClientCreate, type PlatformAPIClientUpdate, type PlatformAPIClientWithToken, type PlatformAsset, type PlatformAssetUpdate, PlatformClient, type PlatformClientConfig, type PlatformCollection, type PlatformCollectionCreate, type PlatformCollectionUpdate, type PlatformEntry, type PlatformEntryCreate, type PlatformEntryType, type PlatformEntryUpdate, type PlatformResource, type PlatformResourceCreate, type PlatformResourceUpdate, type PlatformWorkspaceMember, type PlatformWorkspaceMemberCreate, type PlatformWorkspaceMemberUpdate, ResourcesModule, type SystemStatistics, ThemeModule, type UnlockUserRequest, type User, type UserCreate, UserModule, type UserPagination, type UserProfile, type UserProfileUpdate, type UserSummary, type UserUpdate, type Webhook, type WebhookCreate, type WebhookMethod, type WebhookPagination, type WebhookUpdate, WebhooksModule, type Workspace, type WorkspaceActivationRequest, type WorkspaceCreate, WorkspaceMembersModule, type WorkspacePreferences, type WorkspacePreferencesUpdate, type WorkspaceUpdate, type WorkspaceWithMembership, WorkspacesModule, createPlatformClient };
4699
+ export { APIClientsModule, type AdminAboutInfo, AdminMaintenanceModule, AdminSystemModule, AdminUsersModule, type ApiToken, type ApiTokenCreate, type ApiTokenWithToken, type AppTheme, AssetsModule, AuthModule, CollectionsModule, type EmailInvitationRequest, type EmailSettings, type EmailSettingsUpdate, type EmailTemplateCreate, type EmailTemplateRead, type EmailTemplateSummary, type EmailTemplateUpdate, EmailTemplatesClient, EntriesModule, EntryTypesModule, type EventLogEntry, EventLogModule, type EventLogQueryParams, type EventLogSummary, type EventOption, EventsModule, FormsModule, type InviteTokenCreate, type InviteTokenPagination, type InviteTokenSummary, InvitesModule, type MaintenanceStorageDetails, type MaintenanceSummary, type Notification, type NotificationCreate, type NotificationUpdate, NotificationsModule, type PasswordChange, type PasswordResetTokenRequest, type PasswordResetTokenResponse, type PlatformAPIClient, type PlatformAPIClientCreate, type PlatformAPIClientUpdate, type PlatformAPIClientWithToken, type PlatformAsset, type PlatformAssetUpdate, PlatformClient, type PlatformClientConfig, type PlatformCollection, type PlatformCollectionCreate, type PlatformCollectionUpdate, type PlatformEntry, type PlatformEntryCreate, type PlatformEntryType, type PlatformEntryUpdate, type PlatformForm, type PlatformFormCreate, type PlatformFormSubmission, type PlatformFormUpdate, type PlatformResource, type PlatformResourceCreate, type PlatformResourceUpdate, type PlatformWorkspaceMember, type PlatformWorkspaceMemberCreate, type PlatformWorkspaceMemberUpdate, ResourcesModule, type ScheduledTask, type ScheduledTaskCreate, type ScheduledTaskExecutionLog, type ScheduledTaskUpdate, ScheduledTasksModule, type StartupInfo, type SystemStatistics, type TaskTypeInfo, type TestEmailRequest, type TestEmailResponse, ThemeModule, type UnlockUserRequest, type User, type UserCreate, UserModule, type UserPagination, type UserProfile, type UserProfileUpdate, type UserSummary, type UserUpdate, type Webhook, type WebhookCreate, type WebhookMethod, type WebhookPagination, type WebhookUpdate, WebhooksModule, type Workspace, type WorkspaceActivationRequest, type WorkspaceCreate, WorkspaceMembersModule, type WorkspacePreferences, type WorkspacePreferencesUpdate, type WorkspaceUpdate, type WorkspaceWithMembership, WorkspacesModule, createPlatformClient, createPlatformConfigFromEnv };