@epilot/sdk 2.20.20 → 2.20.21
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/definitions/customer-portal-runtime.json +1 -1
- package/definitions/customer-portal.json +1102 -106
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +8 -8
- package/dist/apis/customer-portal.d.cts +2 -2
- package/dist/apis/customer-portal.d.ts +2 -2
- package/dist/apis/customer-portal.js +2 -2
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/integration-toolkit.cjs +6 -6
- package/dist/apis/integration-toolkit.js +1 -1
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/{chunk-N4SIVR5Y.js → chunk-6LUOXPO4.js} +2 -2
- package/dist/chunk-766NNARL.cjs +14 -0
- package/dist/{chunk-23SGQN24.cjs → chunk-CKLXVVGF.cjs} +2 -2
- package/dist/chunk-I67RRULD.js +14 -0
- package/dist/customer-portal-2K3FXGI4.cjs +7 -0
- package/dist/customer-portal-QU3C24B4.js +7 -0
- package/dist/{customer-portal-runtime-UVMYBCJL.cjs → customer-portal-runtime-5YBPM5TU.cjs} +2 -2
- package/dist/{customer-portal-runtime-PIBTR7QG.js → customer-portal-runtime-5Z5NO6FH.js} +1 -1
- package/dist/{customer-portal.d-gb6dOHv3.d.cts → customer-portal.d-DF4g7c3i.d.cts} +7812 -5245
- package/dist/{customer-portal.d-gb6dOHv3.d.ts → customer-portal.d-DF4g7c3i.d.ts} +7812 -5245
- package/dist/index.cjs +10 -10
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/docs/customer-portal.md +1443 -127
- package/package.json +1 -1
- package/dist/chunk-GB2OJK7Z.js +0 -14
- package/dist/chunk-Q35SXSWS.cjs +0 -14
- package/dist/customer-portal-FDB3TGS7.cjs +0 -7
- package/dist/customer-portal-NELL7GRO.js +0 -7
package/docs/customer-portal.md
CHANGED
|
@@ -72,6 +72,10 @@ const { data } = await customerPortalClient.upsertPortal(...)
|
|
|
72
72
|
- [`getPortalConfigV3`](#getportalconfigv3)
|
|
73
73
|
- [`putPortalConfig`](#putportalconfig)
|
|
74
74
|
- [`deletePortalConfig`](#deleteportalconfig)
|
|
75
|
+
- [`createPortalRevision`](#createportalrevision)
|
|
76
|
+
- [`listPortalRevisions`](#listportalrevisions)
|
|
77
|
+
- [`getPortalRevision`](#getportalrevision)
|
|
78
|
+
- [`publishPortalRevision`](#publishportalrevision)
|
|
75
79
|
- [`listAllPortalConfigs`](#listallportalconfigs)
|
|
76
80
|
- [`swapPortalConfig`](#swapportalconfig)
|
|
77
81
|
- [`clonePortalConfig`](#cloneportalconfig)
|
|
@@ -92,12 +96,14 @@ const { data } = await customerPortalClient.upsertPortal(...)
|
|
|
92
96
|
- [`getOrganizationSettingsByDomain`](#getorganizationsettingsbydomain)
|
|
93
97
|
- [`checkContactExists`](#checkcontactexists)
|
|
94
98
|
- [`checkContactExistsV3`](#checkcontactexistsv3)
|
|
99
|
+
- [`identifyContact`](#identifycontact)
|
|
95
100
|
- [`checkAccountExists`](#checkaccountexists)
|
|
96
101
|
- [`confirmUser`](#confirmuser)
|
|
97
102
|
- [`confirmUserWithUserId`](#confirmuserwithuserid)
|
|
98
103
|
- [`userExists`](#userexists)
|
|
99
104
|
- [`userExistsV3`](#userexistsv3)
|
|
100
105
|
- [`getSSOProvider`](#getssoprovider)
|
|
106
|
+
- [`getPublicSSOProviderV3`](#getpublicssoproviderv3)
|
|
101
107
|
- [`ssoRedirect`](#ssoredirect)
|
|
102
108
|
- [`ssoCallback`](#ssocallback)
|
|
103
109
|
- [`getPublicPages`](#getpublicpages)
|
|
@@ -221,6 +227,8 @@ const { data } = await customerPortalClient.upsertPortal(...)
|
|
|
221
227
|
- [`PortalWidget`](#portalwidget)
|
|
222
228
|
- [`ContactCountRequest`](#contactcountrequest)
|
|
223
229
|
- [`ContactExistsRequest`](#contactexistsrequest)
|
|
230
|
+
- [`ContactIdentifyRequest`](#contactidentifyrequest)
|
|
231
|
+
- [`ContactIdentifyResponse`](#contactidentifyresponse)
|
|
224
232
|
- [`AccountExistsRequest`](#accountexistsrequest)
|
|
225
233
|
- [`UserRequest`](#userrequest)
|
|
226
234
|
- [`CreateUserRequest`](#createuserrequest)
|
|
@@ -258,6 +266,9 @@ const { data } = await customerPortalClient.upsertPortal(...)
|
|
|
258
266
|
- [`FilePreviewResult`](#filepreviewresult)
|
|
259
267
|
- [`EntityFileCount`](#entityfilecount)
|
|
260
268
|
- [`AdminUser`](#adminuser)
|
|
269
|
+
- [`PortalSurface`](#portalsurface)
|
|
270
|
+
- [`PortalSurfaceDataAccess`](#portalsurfacedataaccess)
|
|
271
|
+
- [`PortalSurfaceEntityAccess`](#portalsurfaceentityaccess)
|
|
261
272
|
- [`Grant`](#grant)
|
|
262
273
|
- [`ActionLabel`](#actionlabel)
|
|
263
274
|
- [`Rule`](#rule)
|
|
@@ -267,6 +278,7 @@ const { data } = await customerPortalClient.upsertPortal(...)
|
|
|
267
278
|
- [`WorkflowExecution`](#workflowexecution)
|
|
268
279
|
- [`WorkflowStep`](#workflowstep)
|
|
269
280
|
- [`PortalWorkflow`](#portalworkflow)
|
|
281
|
+
- [`PortalWorkflowStage`](#portalworkflowstage)
|
|
270
282
|
- [`PortalWorkflowTask`](#portalworkflowtask)
|
|
271
283
|
- [`EntityPortalWorkflows`](#entityportalworkflows)
|
|
272
284
|
- [`PortalTaskConfig`](#portaltaskconfig)
|
|
@@ -331,6 +343,8 @@ const { data } = await customerPortalClient.upsertPortal(...)
|
|
|
331
343
|
- [`ProviderDisplayName`](#providerdisplayname)
|
|
332
344
|
- [`ProviderConfig`](#providerconfig)
|
|
333
345
|
- [`ProviderPublicConfig`](#providerpublicconfig)
|
|
346
|
+
- [`ProviderPublicConfigV3`](#providerpublicconfigv3)
|
|
347
|
+
- [`PublicIdentityProvider`](#publicidentityprovider)
|
|
334
348
|
- [`AttributeMappingConfig`](#attributemappingconfig)
|
|
335
349
|
- [`EntityMatchingConfig`](#entitymatchingconfig)
|
|
336
350
|
- [`OIDCProviderConfig`](#oidcproviderconfig)
|
|
@@ -352,6 +366,15 @@ const { data } = await customerPortalClient.upsertPortal(...)
|
|
|
352
366
|
- [`UpsertPortalConfigV3`](#upsertportalconfigv3)
|
|
353
367
|
- [`PortalConfigV3`](#portalconfigv3)
|
|
354
368
|
- [`JuiceSettings`](#juicesettings)
|
|
369
|
+
- [`RevisionPageRequest`](#revisionpagerequest)
|
|
370
|
+
- [`PortalRevisionRequest`](#portalrevisionrequest)
|
|
371
|
+
- [`PublishRevisionRequest`](#publishrevisionrequest)
|
|
372
|
+
- [`PortalRevisionSummary`](#portalrevisionsummary)
|
|
373
|
+
- [`PortalRevisionList`](#portalrevisionlist)
|
|
374
|
+
- [`PortalRevisionCreated`](#portalrevisioncreated)
|
|
375
|
+
- [`RevisionPage`](#revisionpage)
|
|
376
|
+
- [`PortalRevision`](#portalrevision)
|
|
377
|
+
- [`PublishResult`](#publishresult)
|
|
355
378
|
- [`SwappableConfig`](#swappableconfig)
|
|
356
379
|
- [`PortalUserRegistrationStatus`](#portaluserregistrationstatus)
|
|
357
380
|
- [`BusinessPartnerItem`](#businesspartneritem)
|
|
@@ -564,6 +587,16 @@ const { data } = await client.upsertPortal(
|
|
|
564
587
|
schema: 'contract'
|
|
565
588
|
}
|
|
566
589
|
],
|
|
590
|
+
surfaces: [
|
|
591
|
+
{
|
|
592
|
+
id: 'website-journeys',
|
|
593
|
+
name: 'Website journeys',
|
|
594
|
+
description: 'string',
|
|
595
|
+
authentication: 'login',
|
|
596
|
+
token_ttl_seconds: 300,
|
|
597
|
+
data_access: { /* ... */ }
|
|
598
|
+
}
|
|
599
|
+
],
|
|
567
600
|
contact_identifiers_for_account: [
|
|
568
601
|
{
|
|
569
602
|
name: 'first_name',
|
|
@@ -622,6 +655,7 @@ const { data } = await client.upsertPortal(
|
|
|
622
655
|
inactive_contract_cutoff_years: 0,
|
|
623
656
|
is_dummy: true,
|
|
624
657
|
is_v3_item: true,
|
|
658
|
+
published_revision_id: '2026-08-25T14:03:11.482Z-a7f3c1d9',
|
|
625
659
|
portal_id: '453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
626
660
|
portal_sk_v3: 'PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
627
661
|
origin: 'string',
|
|
@@ -802,6 +836,16 @@ const { data } = await client.upsertPortal(
|
|
|
802
836
|
"schema": "contract"
|
|
803
837
|
}
|
|
804
838
|
],
|
|
839
|
+
"surfaces": [
|
|
840
|
+
{
|
|
841
|
+
"id": "website-journeys",
|
|
842
|
+
"name": "Website journeys",
|
|
843
|
+
"description": "string",
|
|
844
|
+
"authentication": "login",
|
|
845
|
+
"token_ttl_seconds": 300,
|
|
846
|
+
"data_access": {}
|
|
847
|
+
}
|
|
848
|
+
],
|
|
805
849
|
"contact_identifiers_for_account": [
|
|
806
850
|
{
|
|
807
851
|
"name": "first_name",
|
|
@@ -860,6 +904,7 @@ const { data } = await client.upsertPortal(
|
|
|
860
904
|
"inactive_contract_cutoff_years": 0,
|
|
861
905
|
"is_dummy": true,
|
|
862
906
|
"is_v3_item": true,
|
|
907
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
863
908
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
864
909
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
865
910
|
"origin": "string",
|
|
@@ -1178,6 +1223,16 @@ const { data } = await client.getPortalConfigByDomain({
|
|
|
1178
1223
|
"schema": "contract"
|
|
1179
1224
|
}
|
|
1180
1225
|
],
|
|
1226
|
+
"surfaces": [
|
|
1227
|
+
{
|
|
1228
|
+
"id": "website-journeys",
|
|
1229
|
+
"name": "Website journeys",
|
|
1230
|
+
"description": "string",
|
|
1231
|
+
"authentication": "login",
|
|
1232
|
+
"token_ttl_seconds": 300,
|
|
1233
|
+
"data_access": {}
|
|
1234
|
+
}
|
|
1235
|
+
],
|
|
1181
1236
|
"contact_identifiers_for_account": [
|
|
1182
1237
|
{
|
|
1183
1238
|
"name": "first_name",
|
|
@@ -1236,6 +1291,7 @@ const { data } = await client.getPortalConfigByDomain({
|
|
|
1236
1291
|
"inactive_contract_cutoff_years": 0,
|
|
1237
1292
|
"is_dummy": true,
|
|
1238
1293
|
"is_v3_item": true,
|
|
1294
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
1239
1295
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
1240
1296
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
1241
1297
|
"origin": "string",
|
|
@@ -1457,6 +1513,16 @@ const { data } = await client.getPortalConfig({
|
|
|
1457
1513
|
"schema": "contract"
|
|
1458
1514
|
}
|
|
1459
1515
|
],
|
|
1516
|
+
"surfaces": [
|
|
1517
|
+
{
|
|
1518
|
+
"id": "website-journeys",
|
|
1519
|
+
"name": "Website journeys",
|
|
1520
|
+
"description": "string",
|
|
1521
|
+
"authentication": "login",
|
|
1522
|
+
"token_ttl_seconds": 300,
|
|
1523
|
+
"data_access": {}
|
|
1524
|
+
}
|
|
1525
|
+
],
|
|
1460
1526
|
"contact_identifiers_for_account": [
|
|
1461
1527
|
{
|
|
1462
1528
|
"name": "first_name",
|
|
@@ -1515,6 +1581,7 @@ const { data } = await client.getPortalConfig({
|
|
|
1515
1581
|
"inactive_contract_cutoff_years": 0,
|
|
1516
1582
|
"is_dummy": true,
|
|
1517
1583
|
"is_v3_item": true,
|
|
1584
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
1518
1585
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
1519
1586
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
1520
1587
|
"origin": "string",
|
|
@@ -2629,6 +2696,16 @@ const { data } = await client.getPublicPortalConfig({
|
|
|
2629
2696
|
"schema": "contract"
|
|
2630
2697
|
}
|
|
2631
2698
|
],
|
|
2699
|
+
"surfaces": [
|
|
2700
|
+
{
|
|
2701
|
+
"id": "website-journeys",
|
|
2702
|
+
"name": "Website journeys",
|
|
2703
|
+
"description": "string",
|
|
2704
|
+
"authentication": "login",
|
|
2705
|
+
"token_ttl_seconds": 300,
|
|
2706
|
+
"data_access": {}
|
|
2707
|
+
}
|
|
2708
|
+
],
|
|
2632
2709
|
"contact_identifiers_for_account": [
|
|
2633
2710
|
{
|
|
2634
2711
|
"name": "first_name",
|
|
@@ -2687,6 +2764,7 @@ const { data } = await client.getPublicPortalConfig({
|
|
|
2687
2764
|
"inactive_contract_cutoff_years": 0,
|
|
2688
2765
|
"is_dummy": true,
|
|
2689
2766
|
"is_v3_item": true,
|
|
2767
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
2690
2768
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
2691
2769
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
2692
2770
|
"origin": "string",
|
|
@@ -2908,6 +2986,16 @@ const { data } = await client.getOrgPortalConfig({
|
|
|
2908
2986
|
"schema": "contract"
|
|
2909
2987
|
}
|
|
2910
2988
|
],
|
|
2989
|
+
"surfaces": [
|
|
2990
|
+
{
|
|
2991
|
+
"id": "website-journeys",
|
|
2992
|
+
"name": "Website journeys",
|
|
2993
|
+
"description": "string",
|
|
2994
|
+
"authentication": "login",
|
|
2995
|
+
"token_ttl_seconds": 300,
|
|
2996
|
+
"data_access": {}
|
|
2997
|
+
}
|
|
2998
|
+
],
|
|
2911
2999
|
"contact_identifiers_for_account": [
|
|
2912
3000
|
{
|
|
2913
3001
|
"name": "first_name",
|
|
@@ -2966,6 +3054,7 @@ const { data } = await client.getOrgPortalConfig({
|
|
|
2966
3054
|
"inactive_contract_cutoff_years": 0,
|
|
2967
3055
|
"is_dummy": true,
|
|
2968
3056
|
"is_v3_item": true,
|
|
3057
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
2969
3058
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
2970
3059
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
2971
3060
|
"origin": "string",
|
|
@@ -3196,6 +3285,16 @@ const { data } = await client.getPublicPortalConfigV3({
|
|
|
3196
3285
|
"schema": "contract"
|
|
3197
3286
|
}
|
|
3198
3287
|
],
|
|
3288
|
+
"surfaces": [
|
|
3289
|
+
{
|
|
3290
|
+
"id": "website-journeys",
|
|
3291
|
+
"name": "Website journeys",
|
|
3292
|
+
"description": "string",
|
|
3293
|
+
"authentication": "login",
|
|
3294
|
+
"token_ttl_seconds": 300,
|
|
3295
|
+
"data_access": {}
|
|
3296
|
+
}
|
|
3297
|
+
],
|
|
3199
3298
|
"contact_identifiers_for_account": [
|
|
3200
3299
|
{
|
|
3201
3300
|
"name": "first_name",
|
|
@@ -3254,6 +3353,7 @@ const { data } = await client.getPublicPortalConfigV3({
|
|
|
3254
3353
|
"inactive_contract_cutoff_years": 0,
|
|
3255
3354
|
"is_dummy": true,
|
|
3256
3355
|
"is_v3_item": true,
|
|
3356
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
3257
3357
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
3258
3358
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
3259
3359
|
"origin": "string",
|
|
@@ -3475,6 +3575,16 @@ const { data } = await client.getOrgPortalConfigV3({
|
|
|
3475
3575
|
"schema": "contract"
|
|
3476
3576
|
}
|
|
3477
3577
|
],
|
|
3578
|
+
"surfaces": [
|
|
3579
|
+
{
|
|
3580
|
+
"id": "website-journeys",
|
|
3581
|
+
"name": "Website journeys",
|
|
3582
|
+
"description": "string",
|
|
3583
|
+
"authentication": "login",
|
|
3584
|
+
"token_ttl_seconds": 300,
|
|
3585
|
+
"data_access": {}
|
|
3586
|
+
}
|
|
3587
|
+
],
|
|
3478
3588
|
"contact_identifiers_for_account": [
|
|
3479
3589
|
{
|
|
3480
3590
|
"name": "first_name",
|
|
@@ -3533,6 +3643,7 @@ const { data } = await client.getOrgPortalConfigV3({
|
|
|
3533
3643
|
"inactive_contract_cutoff_years": 0,
|
|
3534
3644
|
"is_dummy": true,
|
|
3535
3645
|
"is_v3_item": true,
|
|
3646
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
3536
3647
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
3537
3648
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
3538
3649
|
"origin": "string",
|
|
@@ -3633,6 +3744,7 @@ const { data } = await client.getAllPortalConfigs()
|
|
|
3633
3744
|
"contract_identifiers": [],
|
|
3634
3745
|
"contract_selector_config": {},
|
|
3635
3746
|
"registration_identifiers": [],
|
|
3747
|
+
"surfaces": [],
|
|
3636
3748
|
"contact_identifiers_for_account": [],
|
|
3637
3749
|
"additional_contact_attributes": [],
|
|
3638
3750
|
"triggered_journeys": [],
|
|
@@ -3643,6 +3755,7 @@ const { data } = await client.getAllPortalConfigs()
|
|
|
3643
3755
|
"inactive_contract_cutoff_years": 0,
|
|
3644
3756
|
"is_dummy": true,
|
|
3645
3757
|
"is_v3_item": true,
|
|
3758
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
3646
3759
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
3647
3760
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
3648
3761
|
"origin": "string",
|
|
@@ -4768,6 +4881,55 @@ const { data } = await client.checkContactExistsV3(
|
|
|
4768
4881
|
|
|
4769
4882
|
---
|
|
4770
4883
|
|
|
4884
|
+
### `identifyContact`
|
|
4885
|
+
|
|
4886
|
+
Identify a contact by the portal's configured registration identifiers and, on a match,
|
|
4887
|
+
issue a short-lived bearer token that acts as that contact.
|
|
4888
|
+
|
|
4889
|
+
`POST /v3/portal/public/contact/identify`
|
|
4890
|
+
|
|
4891
|
+
```ts
|
|
4892
|
+
const { data } = await client.identifyContact(
|
|
4893
|
+
{
|
|
4894
|
+
portal_id: 'example',
|
|
4895
|
+
domain: 'example',
|
|
4896
|
+
},
|
|
4897
|
+
{
|
|
4898
|
+
org_id: 728,
|
|
4899
|
+
registration_identifiers: {
|
|
4900
|
+
contact: {
|
|
4901
|
+
email: 'john.doe@example.com'
|
|
4902
|
+
},
|
|
4903
|
+
contract: {
|
|
4904
|
+
contract_number: '123456'
|
|
4905
|
+
}
|
|
4906
|
+
},
|
|
4907
|
+
trigger_identifiers_check: true,
|
|
4908
|
+
surface_id: 'website-journeys'
|
|
4909
|
+
},
|
|
4910
|
+
)
|
|
4911
|
+
```
|
|
4912
|
+
|
|
4913
|
+
<details>
|
|
4914
|
+
<summary>Response</summary>
|
|
4915
|
+
|
|
4916
|
+
```json
|
|
4917
|
+
{
|
|
4918
|
+
"contact_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
4919
|
+
"account_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
4920
|
+
"token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
|
|
4921
|
+
"token_type": "contact_identification",
|
|
4922
|
+
"surface_id": "website-journeys",
|
|
4923
|
+
"expires_at": "2026-08-11T10:35:00.000Z",
|
|
4924
|
+
"allowed_operations": [],
|
|
4925
|
+
"reason": "TIMEOUT"
|
|
4926
|
+
}
|
|
4927
|
+
```
|
|
4928
|
+
|
|
4929
|
+
</details>
|
|
4930
|
+
|
|
4931
|
+
---
|
|
4932
|
+
|
|
4771
4933
|
### `checkAccountExists`
|
|
4772
4934
|
|
|
4773
4935
|
True if account with given identifiers exists.
|
|
@@ -6722,9 +6884,19 @@ const { data } = await client.getEntityPortalWorkflows({
|
|
|
6722
6884
|
"assigned_to": ["string"],
|
|
6723
6885
|
"phase_id": "string",
|
|
6724
6886
|
"phase_name": "string",
|
|
6887
|
+
"stage_id": "string",
|
|
6725
6888
|
"completed_at": "string",
|
|
6726
6889
|
"updated_at": "string"
|
|
6727
6890
|
}
|
|
6891
|
+
],
|
|
6892
|
+
"stages": [
|
|
6893
|
+
{
|
|
6894
|
+
"id": "string",
|
|
6895
|
+
"name": "string",
|
|
6896
|
+
"description": "string",
|
|
6897
|
+
"status": "COMPLETED",
|
|
6898
|
+
"completed_at": "string"
|
|
6899
|
+
}
|
|
6728
6900
|
]
|
|
6729
6901
|
}
|
|
6730
6902
|
]
|
|
@@ -6823,9 +6995,19 @@ const { data } = await client.getEntityPortalWorkflowsBatch(
|
|
|
6823
6995
|
"assigned_to": ["string"],
|
|
6824
6996
|
"phase_id": "string",
|
|
6825
6997
|
"phase_name": "string",
|
|
6998
|
+
"stage_id": "string",
|
|
6826
6999
|
"completed_at": "string",
|
|
6827
7000
|
"updated_at": "string"
|
|
6828
7001
|
}
|
|
7002
|
+
],
|
|
7003
|
+
"stages": [
|
|
7004
|
+
{
|
|
7005
|
+
"id": "string",
|
|
7006
|
+
"name": "string",
|
|
7007
|
+
"description": "string",
|
|
7008
|
+
"status": "COMPLETED",
|
|
7009
|
+
"completed_at": "string"
|
|
7010
|
+
}
|
|
6829
7011
|
]
|
|
6830
7012
|
}
|
|
6831
7013
|
]
|
|
@@ -7079,6 +7261,57 @@ const { data } = await client.getSSOProvider({
|
|
|
7079
7261
|
|
|
7080
7262
|
---
|
|
7081
7263
|
|
|
7264
|
+
### `getPublicSSOProviderV3`
|
|
7265
|
+
|
|
7266
|
+
Returns the public configuration of a single SSO identity provider with env var
|
|
7267
|
+
placeholders (incl. secrets) already resolved against the organization's environment.
|
|
7268
|
+
|
|
7269
|
+
`GET /v3/portal/public/sso/providers/{provider_slug}`
|
|
7270
|
+
|
|
7271
|
+
```ts
|
|
7272
|
+
const { data } = await client.getPublicSSOProviderV3({
|
|
7273
|
+
provider_slug: 'example',
|
|
7274
|
+
org_id: 'example',
|
|
7275
|
+
portal_id: 'example',
|
|
7276
|
+
})
|
|
7277
|
+
```
|
|
7278
|
+
|
|
7279
|
+
<details>
|
|
7280
|
+
<summary>Response</summary>
|
|
7281
|
+
|
|
7282
|
+
```json
|
|
7283
|
+
{
|
|
7284
|
+
"slug": "office-365-login",
|
|
7285
|
+
"display_name": "Office 365 Login",
|
|
7286
|
+
"oidc_config": {
|
|
7287
|
+
"type": "implicit",
|
|
7288
|
+
"oidc_issuer": "https://login.microsoftonline.com/33d4f3e5-3df2-421e-b92e-a63cfa680a88/v2.0",
|
|
7289
|
+
"redirect_uri": "https://customer-portal.com/login",
|
|
7290
|
+
"client_id": "ab81daf8-8b1f-42d6-94ca-c51621054c75",
|
|
7291
|
+
"client_secret": "7BIUnn~6shh.7fNtXb..3k1Mp3s6k6WK3B",
|
|
7292
|
+
"has_client_secret": true,
|
|
7293
|
+
"scope": "openid email",
|
|
7294
|
+
"metadata": {
|
|
7295
|
+
"response_modes_supported": ["form_post"],
|
|
7296
|
+
"authorization_endpoint": "https://www.facebook.com/v12.0/dialog/oauth",
|
|
7297
|
+
"token_endpoint": "https://graph.facebook.com/v12.0/oauth/access_token",
|
|
7298
|
+
"userinfo_endpoint": "https://graph.facebook.com/me",
|
|
7299
|
+
"logout_uri": "https://login.microsoftonline.com/common/oauth2/v2.0/logout",
|
|
7300
|
+
"logout_redirect_uri": "https://customer-portal.com/login",
|
|
7301
|
+
"skip_login_as_logout": false,
|
|
7302
|
+
"mobile_redirect_uri": "msauth.io.epilot.ecp://auth",
|
|
7303
|
+
"test_auth_username": "test@epilot.io",
|
|
7304
|
+
"test_auth_password": "string"
|
|
7305
|
+
},
|
|
7306
|
+
"prompt": "login"
|
|
7307
|
+
}
|
|
7308
|
+
}
|
|
7309
|
+
```
|
|
7310
|
+
|
|
7311
|
+
</details>
|
|
7312
|
+
|
|
7313
|
+
---
|
|
7314
|
+
|
|
7082
7315
|
### `ssoLogin`
|
|
7083
7316
|
|
|
7084
7317
|
Initiate login using external SSO identity.
|
|
@@ -7127,7 +7360,8 @@ const { data } = await client.ssoLoginV3(
|
|
|
7127
7360
|
contact_id: 'example',
|
|
7128
7361
|
},
|
|
7129
7362
|
{
|
|
7130
|
-
provider_slug: 'office-365-login'
|
|
7363
|
+
provider_slug: 'office-365-login',
|
|
7364
|
+
login_only: false
|
|
7131
7365
|
},
|
|
7132
7366
|
)
|
|
7133
7367
|
```
|
|
@@ -8416,6 +8650,16 @@ const { data } = await client.createPortalConfig(
|
|
|
8416
8650
|
schema: 'contract'
|
|
8417
8651
|
}
|
|
8418
8652
|
],
|
|
8653
|
+
surfaces: [
|
|
8654
|
+
{
|
|
8655
|
+
id: 'website-journeys',
|
|
8656
|
+
name: 'Website journeys',
|
|
8657
|
+
description: 'string',
|
|
8658
|
+
authentication: 'login',
|
|
8659
|
+
token_ttl_seconds: 300,
|
|
8660
|
+
data_access: { /* ... */ }
|
|
8661
|
+
}
|
|
8662
|
+
],
|
|
8419
8663
|
contact_identifiers_for_account: [
|
|
8420
8664
|
{
|
|
8421
8665
|
name: 'first_name',
|
|
@@ -8474,6 +8718,7 @@ const { data } = await client.createPortalConfig(
|
|
|
8474
8718
|
inactive_contract_cutoff_years: 0,
|
|
8475
8719
|
is_dummy: true,
|
|
8476
8720
|
is_v3_item: true,
|
|
8721
|
+
published_revision_id: '2026-08-25T14:03:11.482Z-a7f3c1d9',
|
|
8477
8722
|
portal_id: '453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
8478
8723
|
portal_sk_v3: 'PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
8479
8724
|
origin: 'string',
|
|
@@ -8696,6 +8941,16 @@ const { data } = await client.createPortalConfig(
|
|
|
8696
8941
|
"schema": "contract"
|
|
8697
8942
|
}
|
|
8698
8943
|
],
|
|
8944
|
+
"surfaces": [
|
|
8945
|
+
{
|
|
8946
|
+
"id": "website-journeys",
|
|
8947
|
+
"name": "Website journeys",
|
|
8948
|
+
"description": "string",
|
|
8949
|
+
"authentication": "login",
|
|
8950
|
+
"token_ttl_seconds": 300,
|
|
8951
|
+
"data_access": {}
|
|
8952
|
+
}
|
|
8953
|
+
],
|
|
8699
8954
|
"contact_identifiers_for_account": [
|
|
8700
8955
|
{
|
|
8701
8956
|
"name": "first_name",
|
|
@@ -8754,6 +9009,7 @@ const { data } = await client.createPortalConfig(
|
|
|
8754
9009
|
"inactive_contract_cutoff_years": 0,
|
|
8755
9010
|
"is_dummy": true,
|
|
8756
9011
|
"is_v3_item": true,
|
|
9012
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
8757
9013
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
8758
9014
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
8759
9015
|
"origin": "string",
|
|
@@ -9012,6 +9268,16 @@ const { data } = await client.getPortalConfigV3({
|
|
|
9012
9268
|
"schema": "contract"
|
|
9013
9269
|
}
|
|
9014
9270
|
],
|
|
9271
|
+
"surfaces": [
|
|
9272
|
+
{
|
|
9273
|
+
"id": "website-journeys",
|
|
9274
|
+
"name": "Website journeys",
|
|
9275
|
+
"description": "string",
|
|
9276
|
+
"authentication": "login",
|
|
9277
|
+
"token_ttl_seconds": 300,
|
|
9278
|
+
"data_access": {}
|
|
9279
|
+
}
|
|
9280
|
+
],
|
|
9015
9281
|
"contact_identifiers_for_account": [
|
|
9016
9282
|
{
|
|
9017
9283
|
"name": "first_name",
|
|
@@ -9070,6 +9336,7 @@ const { data } = await client.getPortalConfigV3({
|
|
|
9070
9336
|
"inactive_contract_cutoff_years": 0,
|
|
9071
9337
|
"is_dummy": true,
|
|
9072
9338
|
"is_v3_item": true,
|
|
9339
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
9073
9340
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
9074
9341
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
9075
9342
|
"origin": "string",
|
|
@@ -9325,6 +9592,16 @@ const { data } = await client.putPortalConfig(
|
|
|
9325
9592
|
schema: 'contract'
|
|
9326
9593
|
}
|
|
9327
9594
|
],
|
|
9595
|
+
surfaces: [
|
|
9596
|
+
{
|
|
9597
|
+
id: 'website-journeys',
|
|
9598
|
+
name: 'Website journeys',
|
|
9599
|
+
description: 'string',
|
|
9600
|
+
authentication: 'login',
|
|
9601
|
+
token_ttl_seconds: 300,
|
|
9602
|
+
data_access: { /* ... */ }
|
|
9603
|
+
}
|
|
9604
|
+
],
|
|
9328
9605
|
contact_identifiers_for_account: [
|
|
9329
9606
|
{
|
|
9330
9607
|
name: 'first_name',
|
|
@@ -9383,6 +9660,7 @@ const { data } = await client.putPortalConfig(
|
|
|
9383
9660
|
inactive_contract_cutoff_years: 0,
|
|
9384
9661
|
is_dummy: true,
|
|
9385
9662
|
is_v3_item: true,
|
|
9663
|
+
published_revision_id: '2026-08-25T14:03:11.482Z-a7f3c1d9',
|
|
9386
9664
|
portal_id: '453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
9387
9665
|
portal_sk_v3: 'PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
9388
9666
|
origin: 'string',
|
|
@@ -9626,6 +9904,16 @@ const { data } = await client.putPortalConfig(
|
|
|
9626
9904
|
"schema": "contract"
|
|
9627
9905
|
}
|
|
9628
9906
|
],
|
|
9907
|
+
"surfaces": [
|
|
9908
|
+
{
|
|
9909
|
+
"id": "website-journeys",
|
|
9910
|
+
"name": "Website journeys",
|
|
9911
|
+
"description": "string",
|
|
9912
|
+
"authentication": "login",
|
|
9913
|
+
"token_ttl_seconds": 300,
|
|
9914
|
+
"data_access": {}
|
|
9915
|
+
}
|
|
9916
|
+
],
|
|
9629
9917
|
"contact_identifiers_for_account": [
|
|
9630
9918
|
{
|
|
9631
9919
|
"name": "first_name",
|
|
@@ -9684,6 +9972,7 @@ const { data } = await client.putPortalConfig(
|
|
|
9684
9972
|
"inactive_contract_cutoff_years": 0,
|
|
9685
9973
|
"is_dummy": true,
|
|
9686
9974
|
"is_v3_item": true,
|
|
9975
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
9687
9976
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
9688
9977
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
9689
9978
|
"origin": "string",
|
|
@@ -9750,132 +10039,680 @@ const { data } = await client.deletePortalConfig({
|
|
|
9750
10039
|
|
|
9751
10040
|
---
|
|
9752
10041
|
|
|
9753
|
-
### `
|
|
9754
|
-
|
|
9755
|
-
Retrieves all portal configurations.
|
|
9756
|
-
|
|
9757
|
-
`GET /v3/portal/configs`
|
|
9758
|
-
|
|
9759
|
-
```ts
|
|
9760
|
-
const { data } = await client.listAllPortalConfigs()
|
|
9761
|
-
```
|
|
9762
|
-
|
|
9763
|
-
<details>
|
|
9764
|
-
<summary>Response</summary>
|
|
9765
|
-
|
|
9766
|
-
```json
|
|
9767
|
-
{
|
|
9768
|
-
"data": [
|
|
9769
|
-
{
|
|
9770
|
-
"entity_actions": [],
|
|
9771
|
-
"extensions": [],
|
|
9772
|
-
"extension_hooks": {},
|
|
9773
|
-
"default_user_to_notify": {},
|
|
9774
|
-
"identity_providers": [],
|
|
9775
|
-
"mobile_config": {},
|
|
9776
|
-
"enabled": true,
|
|
9777
|
-
"name": "Installer Portal",
|
|
9778
|
-
"domain": "abc.com",
|
|
9779
|
-
"is_epilot_domain": true,
|
|
9780
|
-
"epilot_domain": "example-portal-1.ecp.epilot.io",
|
|
9781
|
-
"domain_settings": {},
|
|
9782
|
-
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
9783
|
-
"allowed_portal_entities": ["contact", "contract"],
|
|
9784
|
-
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
|
|
9785
|
-
"self_registration_account_setting": "ALLOW_WITH_CREATION",
|
|
9786
|
-
"block_registration_if_portal_user_exists": true,
|
|
9787
|
-
"self_registration_entity": "contact",
|
|
9788
|
-
"user_account_self_management": false,
|
|
9789
|
-
"feature_settings": {},
|
|
9790
|
-
"accessToken": "string",
|
|
9791
|
-
"advanced_mfa": {},
|
|
9792
|
-
"auth_settings": {},
|
|
9793
|
-
"cognito_details": {},
|
|
9794
|
-
"config": "string",
|
|
9795
|
-
"contact_identifiers": ["email", "last_name"],
|
|
9796
|
-
"approval_state_attributes": {},
|
|
9797
|
-
"email_templates": {},
|
|
9798
|
-
"images": {},
|
|
9799
|
-
"entity_identifiers": {},
|
|
9800
|
-
"contract_identifiers": [],
|
|
9801
|
-
"contract_selector_config": {},
|
|
9802
|
-
"registration_identifiers": [],
|
|
9803
|
-
"contact_identifiers_for_account": [],
|
|
9804
|
-
"additional_contact_attributes": [],
|
|
9805
|
-
"triggered_journeys": [],
|
|
9806
|
-
"entity_edit_rules": [],
|
|
9807
|
-
"allowed_file_extensions": {},
|
|
9808
|
-
"prevent_search_engine_indexing": true,
|
|
9809
|
-
"meter_reading_grace_period": 0,
|
|
9810
|
-
"inactive_contract_cutoff_years": 0,
|
|
9811
|
-
"is_dummy": true,
|
|
9812
|
-
"is_v3_item": true,
|
|
9813
|
-
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
9814
|
-
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
9815
|
-
"origin": "string",
|
|
9816
|
-
"global_blocks": {},
|
|
9817
|
-
"organization_id": 12345,
|
|
9818
|
-
"org_settings": {},
|
|
9819
|
-
"feature_flags": {},
|
|
9820
|
-
"grants": [],
|
|
9821
|
-
"pages": []
|
|
9822
|
-
}
|
|
9823
|
-
]
|
|
9824
|
-
}
|
|
9825
|
-
```
|
|
9826
|
-
|
|
9827
|
-
</details>
|
|
9828
|
-
|
|
9829
|
-
---
|
|
9830
|
-
|
|
9831
|
-
### `swapPortalConfig`
|
|
10042
|
+
### `createPortalRevision`
|
|
9832
10043
|
|
|
9833
|
-
|
|
10044
|
+
Creates a new revision — a complete, immutable snapshot of the portal's configuration, pages and email templates. Nothing about the live portal changes; the snapshot only becomes live when it is publi
|
|
9834
10045
|
|
|
9835
|
-
`POST /v3/portal/config/
|
|
10046
|
+
`POST /v3/portal/config/{portal_id}/revisions`
|
|
9836
10047
|
|
|
9837
10048
|
```ts
|
|
9838
|
-
const { data } = await client.
|
|
9839
|
-
null,
|
|
10049
|
+
const { data } = await client.createPortalRevision(
|
|
9840
10050
|
{
|
|
9841
|
-
|
|
9842
|
-
target_portal_id: '453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
9843
|
-
items_to_swap: ['email_templates']
|
|
10051
|
+
portal_id: 'example',
|
|
9844
10052
|
},
|
|
9845
|
-
)
|
|
9846
|
-
```
|
|
9847
|
-
|
|
9848
|
-
<details>
|
|
9849
|
-
<summary>Response</summary>
|
|
9850
|
-
|
|
9851
|
-
```json
|
|
9852
|
-
{
|
|
9853
|
-
"message": "Domain and users swapped successfully."
|
|
9854
|
-
}
|
|
9855
|
-
```
|
|
9856
|
-
|
|
9857
|
-
</details>
|
|
9858
|
-
|
|
9859
|
-
---
|
|
9860
|
-
|
|
9861
|
-
### `clonePortalConfig`
|
|
9862
|
-
|
|
9863
|
-
Creates a new portal by cloning configuration and pages from an existing portal. The new portal gets its own domain, users, email templates, and authentication settings.
|
|
9864
|
-
|
|
9865
|
-
`POST /v3/portal/config/clone`
|
|
9866
|
-
|
|
9867
|
-
```ts
|
|
9868
|
-
const { data } = await client.clonePortalConfig(
|
|
9869
|
-
null,
|
|
9870
10053
|
{
|
|
9871
|
-
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
|
|
9875
|
-
|
|
9876
|
-
|
|
9877
|
-
|
|
9878
|
-
|
|
10054
|
+
entity_actions: [
|
|
10055
|
+
{
|
|
10056
|
+
journey_id: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10057
|
+
slug: 'contact',
|
|
10058
|
+
action_Label: { /* ... */ }
|
|
10059
|
+
}
|
|
10060
|
+
],
|
|
10061
|
+
extensions: [
|
|
10062
|
+
{
|
|
10063
|
+
id: 'string',
|
|
10064
|
+
status: 'installed',
|
|
10065
|
+
options: {}
|
|
10066
|
+
}
|
|
10067
|
+
],
|
|
10068
|
+
extension_hooks: {},
|
|
10069
|
+
default_user_to_notify: {
|
|
10070
|
+
onPendingUser: [
|
|
10071
|
+
{ /* ... */ }
|
|
10072
|
+
]
|
|
10073
|
+
},
|
|
10074
|
+
identity_providers: [
|
|
10075
|
+
{
|
|
10076
|
+
slug: 'office-365-login',
|
|
10077
|
+
display_name: 'Office 365 Login',
|
|
10078
|
+
provider_type: 'OIDC',
|
|
10079
|
+
attribute_mappings: { /* ... */ },
|
|
10080
|
+
entity_matching: { /* ... */ },
|
|
10081
|
+
oidc_config: { /* ... */ },
|
|
10082
|
+
mobile_oidc_config: { /* ... */ },
|
|
10083
|
+
expose_client_secret: false
|
|
10084
|
+
}
|
|
10085
|
+
],
|
|
10086
|
+
mobile_config: {
|
|
10087
|
+
portal_id: 'string',
|
|
10088
|
+
enabled: true,
|
|
10089
|
+
display_name: 'string',
|
|
10090
|
+
app_host: 'string',
|
|
10091
|
+
environment: 'prod',
|
|
10092
|
+
branding: {
|
|
10093
|
+
app_icon: 'string',
|
|
10094
|
+
splash: 'string',
|
|
10095
|
+
splash_dark: 'string',
|
|
10096
|
+
icon_background_color: 'string',
|
|
10097
|
+
splash_background_color: 'string',
|
|
10098
|
+
splash_background_color_dark: 'string'
|
|
10099
|
+
},
|
|
10100
|
+
ios: {
|
|
10101
|
+
bundle_id: 'string',
|
|
10102
|
+
team_id: 'string',
|
|
10103
|
+
credentials_status: 'not_configured',
|
|
10104
|
+
app_store_id: 'string',
|
|
10105
|
+
store_url: 'string',
|
|
10106
|
+
last_build: { /* ... */ }
|
|
10107
|
+
},
|
|
10108
|
+
android: {
|
|
10109
|
+
package_name: 'string',
|
|
10110
|
+
credentials_status: 'not_configured',
|
|
10111
|
+
upload_key_status: 'not_configured',
|
|
10112
|
+
store_url: 'string',
|
|
10113
|
+
last_build: { /* ... */ }
|
|
10114
|
+
},
|
|
10115
|
+
ota: {
|
|
10116
|
+
enabled: true,
|
|
10117
|
+
channel: 'canary',
|
|
10118
|
+
auto_update: true,
|
|
10119
|
+
update_strategy: 'next-launch',
|
|
10120
|
+
min_native_version: 'string'
|
|
10121
|
+
}
|
|
10122
|
+
},
|
|
10123
|
+
enabled: true,
|
|
10124
|
+
name: 'Installer Portal',
|
|
10125
|
+
domain: 'abc.com',
|
|
10126
|
+
is_epilot_domain: true,
|
|
10127
|
+
epilot_domain: 'example-portal-1.ecp.epilot.io',
|
|
10128
|
+
domain_settings: {
|
|
10129
|
+
is_custom_domain_enabled: true,
|
|
10130
|
+
is_epilot_domain_enabled: true,
|
|
10131
|
+
is_redirection_enabled: true
|
|
10132
|
+
},
|
|
10133
|
+
design_id: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10134
|
+
allowed_portal_entities: ['contact', 'contract'],
|
|
10135
|
+
self_registration_setting: 'ALLOW_WITH_CONTACT_CREATION',
|
|
10136
|
+
self_registration_account_setting: 'ALLOW_WITH_CREATION',
|
|
10137
|
+
block_registration_if_portal_user_exists: true,
|
|
10138
|
+
self_registration_entity: 'contact',
|
|
10139
|
+
user_account_self_management: false,
|
|
10140
|
+
feature_settings: {
|
|
10141
|
+
start_page: true,
|
|
10142
|
+
billing: true,
|
|
10143
|
+
change_due_date: true,
|
|
10144
|
+
new_design: true,
|
|
10145
|
+
mcp_enabled: true,
|
|
10146
|
+
mcp_grant_version: 0
|
|
10147
|
+
},
|
|
10148
|
+
accessToken: 'string',
|
|
10149
|
+
advanced_mfa: {
|
|
10150
|
+
enabled: true
|
|
10151
|
+
},
|
|
10152
|
+
auth_settings: {
|
|
10153
|
+
passwordless_login: {
|
|
10154
|
+
enabled: true
|
|
10155
|
+
},
|
|
10156
|
+
entry_point: 'PASSWORD',
|
|
10157
|
+
preferred_sso_providers: ['office-365-login'],
|
|
10158
|
+
auto_redirect_to_sso: true,
|
|
10159
|
+
prevent_user_enumeration: true
|
|
10160
|
+
},
|
|
10161
|
+
cognito_details: {
|
|
10162
|
+
cognito_user_pool_client_id: '6bsd0jkgoie74k2i8mrhc1vest',
|
|
10163
|
+
cognito_user_pool_arn: 'arn:aws:cognito-idp:us-east-1:123412341234:userpool/us-east-1_123412341',
|
|
10164
|
+
cognito_user_pool_id: 'eu-central-1_CUEQRNbUb',
|
|
10165
|
+
timeouts: {
|
|
10166
|
+
refresh_token: 300,
|
|
10167
|
+
access_token: 300,
|
|
10168
|
+
id_token: 300
|
|
10169
|
+
},
|
|
10170
|
+
advanced_authentication: {
|
|
10171
|
+
user_activity_logging: true,
|
|
10172
|
+
adaptive_authentication: true,
|
|
10173
|
+
compromised_credentials_detection: true
|
|
10174
|
+
},
|
|
10175
|
+
password_policy: {
|
|
10176
|
+
minimum_length: 8,
|
|
10177
|
+
maximum_length: 256,
|
|
10178
|
+
require_lowercase: true,
|
|
10179
|
+
require_uppercase: true,
|
|
10180
|
+
require_numbers: true,
|
|
10181
|
+
require_symbols: true,
|
|
10182
|
+
password_history_size: 3
|
|
10183
|
+
}
|
|
10184
|
+
},
|
|
10185
|
+
config: 'string',
|
|
10186
|
+
contact_identifiers: ['email', 'last_name'],
|
|
10187
|
+
approval_state_attributes: {
|
|
10188
|
+
contact: ['name', 'address'],
|
|
10189
|
+
contract: ['installment_amount']
|
|
10190
|
+
},
|
|
10191
|
+
email_templates: {
|
|
10192
|
+
confirmAccount: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10193
|
+
advancedAuth: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10194
|
+
advancedMFA: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10195
|
+
journeySignUp: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10196
|
+
journeySignInOneTimePassword: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10197
|
+
journeyLoginOTP: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10198
|
+
forgotPassword: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10199
|
+
invitation: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10200
|
+
partnerInvitation: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10201
|
+
onNewQuote: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10202
|
+
onMapAPendingUser: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10203
|
+
onDocUpload: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10204
|
+
onWorkflowStepAssigned: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10205
|
+
confirmEmailUpdate: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10206
|
+
verifyCodeToSetPassword: '5da0a718-c822-403d-9f5d-20d4584e0528'
|
|
10207
|
+
},
|
|
10208
|
+
images: {
|
|
10209
|
+
orderLeftTeaser: 'https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-left-teaser.jpeg',
|
|
10210
|
+
orderRightTeaser: 'https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/order-right-teaser.jpeg',
|
|
10211
|
+
welcomeBanner: 'https://epilot-bucket.s3.eu-central-1.amazonaws.com/12344/6538fddb-f0e9-4f0f-af51-6e57891ff20a/welcome-banner.jpeg'
|
|
10212
|
+
},
|
|
10213
|
+
entity_identifiers: {
|
|
10214
|
+
type: {
|
|
10215
|
+
isEnabled: true,
|
|
10216
|
+
attributes: ['contract_number']
|
|
10217
|
+
}
|
|
10218
|
+
},
|
|
10219
|
+
contract_identifiers: [
|
|
10220
|
+
{
|
|
10221
|
+
name: 'email',
|
|
10222
|
+
schema: 'contact'
|
|
10223
|
+
},
|
|
10224
|
+
{
|
|
10225
|
+
name: 'last_name',
|
|
10226
|
+
schema: 'contact'
|
|
10227
|
+
},
|
|
10228
|
+
/* ... 1 more */
|
|
10229
|
+
],
|
|
10230
|
+
contract_selector_config: {
|
|
10231
|
+
show_inactive: true,
|
|
10232
|
+
title_path: 'string'
|
|
10233
|
+
},
|
|
10234
|
+
registration_identifiers: [
|
|
10235
|
+
{
|
|
10236
|
+
name: 'last_name',
|
|
10237
|
+
schema: 'contact'
|
|
10238
|
+
},
|
|
10239
|
+
{
|
|
10240
|
+
name: 'contract_number',
|
|
10241
|
+
schema: 'contract'
|
|
10242
|
+
}
|
|
10243
|
+
],
|
|
10244
|
+
surfaces: [
|
|
10245
|
+
{
|
|
10246
|
+
id: 'website-journeys',
|
|
10247
|
+
name: 'Website journeys',
|
|
10248
|
+
description: 'string',
|
|
10249
|
+
authentication: 'login',
|
|
10250
|
+
token_ttl_seconds: 300,
|
|
10251
|
+
data_access: { /* ... */ }
|
|
10252
|
+
}
|
|
10253
|
+
],
|
|
10254
|
+
contact_identifiers_for_account: [
|
|
10255
|
+
{
|
|
10256
|
+
name: 'first_name',
|
|
10257
|
+
schema: 'contact'
|
|
10258
|
+
},
|
|
10259
|
+
{
|
|
10260
|
+
name: 'last_name',
|
|
10261
|
+
schema: 'contact'
|
|
10262
|
+
}
|
|
10263
|
+
],
|
|
10264
|
+
additional_contact_attributes: [
|
|
10265
|
+
{
|
|
10266
|
+
name: 'first_name',
|
|
10267
|
+
required: true
|
|
10268
|
+
},
|
|
10269
|
+
{
|
|
10270
|
+
name: 'last_name',
|
|
10271
|
+
required: true
|
|
10272
|
+
}
|
|
10273
|
+
],
|
|
10274
|
+
triggered_journeys: [
|
|
10275
|
+
{
|
|
10276
|
+
trigger_name: 'FIRST_LOGIN',
|
|
10277
|
+
journey_id: '5da0a718-c822-403d-9f5d-20d4584e0528',
|
|
10278
|
+
context_params: [ /* ... */ ]
|
|
10279
|
+
}
|
|
10280
|
+
],
|
|
10281
|
+
entity_edit_rules: [
|
|
10282
|
+
{
|
|
10283
|
+
slug: 'contact',
|
|
10284
|
+
attribute: 'first_name',
|
|
10285
|
+
rule_type: 'cadence',
|
|
10286
|
+
cadence_period_type: 'days',
|
|
10287
|
+
cadence_period: 1,
|
|
10288
|
+
changes_allowed: 1,
|
|
10289
|
+
grace_period: 1,
|
|
10290
|
+
allowed_increment: '10%',
|
|
10291
|
+
allowed_decrement: '10%',
|
|
10292
|
+
number_of_days_before_restriction: 10
|
|
10293
|
+
}
|
|
10294
|
+
],
|
|
10295
|
+
allowed_file_extensions: {
|
|
10296
|
+
document: ['pdf'],
|
|
10297
|
+
image: ['jpg'],
|
|
10298
|
+
spreadsheet: ['xls'],
|
|
10299
|
+
presentation: ['ppt'],
|
|
10300
|
+
audioVideo: ['mp4'],
|
|
10301
|
+
email: ['eml'],
|
|
10302
|
+
archive: ['zip'],
|
|
10303
|
+
cad: ['cad'],
|
|
10304
|
+
calendar: ['ics'],
|
|
10305
|
+
other: ['txt']
|
|
10306
|
+
},
|
|
10307
|
+
prevent_search_engine_indexing: true,
|
|
10308
|
+
meter_reading_grace_period: 0,
|
|
10309
|
+
inactive_contract_cutoff_years: 0,
|
|
10310
|
+
is_dummy: true,
|
|
10311
|
+
is_v3_item: true,
|
|
10312
|
+
published_revision_id: '2026-08-25T14:03:11.482Z-a7f3c1d9',
|
|
10313
|
+
portal_id: '453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
10314
|
+
portal_sk_v3: 'PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
10315
|
+
origin: 'string',
|
|
10316
|
+
global_blocks: {},
|
|
10317
|
+
based_on_revision_id: 'string',
|
|
10318
|
+
pages: [
|
|
10319
|
+
{
|
|
10320
|
+
id: 'c495fef9-eeca-4019-a989-8390dcd9825b',
|
|
10321
|
+
slug: 'dashboard',
|
|
10322
|
+
order: 0,
|
|
10323
|
+
blocks: {}
|
|
10324
|
+
}
|
|
10325
|
+
]
|
|
10326
|
+
},
|
|
10327
|
+
)
|
|
10328
|
+
```
|
|
10329
|
+
|
|
10330
|
+
<details>
|
|
10331
|
+
<summary>Response</summary>
|
|
10332
|
+
|
|
10333
|
+
```json
|
|
10334
|
+
{
|
|
10335
|
+
"revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
10336
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
10337
|
+
"created_by": "string",
|
|
10338
|
+
"name": "FAQ page launch",
|
|
10339
|
+
"description": "string",
|
|
10340
|
+
"page_count": 0,
|
|
10341
|
+
"published_at": "1970-01-01T00:00:00.000Z",
|
|
10342
|
+
"published_by": "string",
|
|
10343
|
+
"is_published": true,
|
|
10344
|
+
"identity_providers": [
|
|
10345
|
+
{
|
|
10346
|
+
"slug": "office-365-login",
|
|
10347
|
+
"display_name": "Office 365 Login",
|
|
10348
|
+
"provider_type": "OIDC",
|
|
10349
|
+
"attribute_mappings": {
|
|
10350
|
+
"contact": {
|
|
10351
|
+
"email": "email",
|
|
10352
|
+
"first_name": "first_name",
|
|
10353
|
+
"last_name": "last_name",
|
|
10354
|
+
"phone": "tel",
|
|
10355
|
+
"preferred_language": "language",
|
|
10356
|
+
"concession": "GPE",
|
|
10357
|
+
"installer_number": 123456
|
|
10358
|
+
},
|
|
10359
|
+
"account": {
|
|
10360
|
+
"name": "company_name",
|
|
10361
|
+
"street": "street_name",
|
|
10362
|
+
"house_number": "house_number",
|
|
10363
|
+
"postal_code": "postal_code",
|
|
10364
|
+
"city": "city"
|
|
10365
|
+
},
|
|
10366
|
+
"portal_user": {
|
|
10367
|
+
"access_status": "access_status",
|
|
10368
|
+
"expires_at": "expires_at"
|
|
10369
|
+
},
|
|
10370
|
+
"concession_attributes": {
|
|
10371
|
+
"water": "water",
|
|
10372
|
+
"energy": "energy",
|
|
10373
|
+
"gas": "gas"
|
|
10374
|
+
}
|
|
10375
|
+
},
|
|
10376
|
+
"entity_matching": {
|
|
10377
|
+
"portal_user": {
|
|
10378
|
+
"external_id": "sub"
|
|
10379
|
+
},
|
|
10380
|
+
"contact": {
|
|
10381
|
+
"customer_number": "customer_id",
|
|
10382
|
+
"external_id": "sub"
|
|
10383
|
+
},
|
|
10384
|
+
"auto_create_cognito_user": true
|
|
10385
|
+
},
|
|
10386
|
+
"oidc_config": {
|
|
10387
|
+
"type": "implicit",
|
|
10388
|
+
"oidc_issuer": "https://login.microsoftonline.com/33d4f3e5-3df2-421e-b92e-a63cfa680a88/v2.0",
|
|
10389
|
+
"redirect_uri": "https://customer-portal.com/login",
|
|
10390
|
+
"client_id": "ab81daf8-8b1f-42d6-94ca-c51621054c75",
|
|
10391
|
+
"client_secret": "7BIUnn~6shh.7fNtXb..3k1Mp3s6k6WK3B",
|
|
10392
|
+
"has_client_secret": true,
|
|
10393
|
+
"scope": "openid email",
|
|
10394
|
+
"metadata": {
|
|
10395
|
+
"response_modes_supported": ["form_post"],
|
|
10396
|
+
"authorization_endpoint": "https://www.facebook.com/v12.0/dialog/oauth",
|
|
10397
|
+
"token_endpoint": "https://graph.facebook.com/v12.0/oauth/access_token",
|
|
10398
|
+
"userinfo_endpoint": "https://graph.facebook.com/me",
|
|
10399
|
+
"logout_uri": "https://login.microsoftonline.com/common/oauth2/v2.0/logout",
|
|
10400
|
+
"logout_redirect_uri": "https://customer-portal.com/login",
|
|
10401
|
+
"skip_login_as_logout": false,
|
|
10402
|
+
"mobile_redirect_uri": "msauth.io.epilot.ecp://auth",
|
|
10403
|
+
"test_auth_username": "test@epilot.io",
|
|
10404
|
+
"test_auth_password": "string"
|
|
10405
|
+
},
|
|
10406
|
+
"prompt": "login"
|
|
10407
|
+
},
|
|
10408
|
+
"mobile_oidc_config": {
|
|
10409
|
+
"client_id": 123456,
|
|
10410
|
+
"client_secret": 123456
|
|
10411
|
+
},
|
|
10412
|
+
"expose_client_secret": false
|
|
10413
|
+
}
|
|
10414
|
+
]
|
|
10415
|
+
}
|
|
10416
|
+
```
|
|
10417
|
+
|
|
10418
|
+
</details>
|
|
10419
|
+
|
|
10420
|
+
---
|
|
10421
|
+
|
|
10422
|
+
### `listPortalRevisions`
|
|
10423
|
+
|
|
10424
|
+
Lists a portal's revision history, newest first. Metadata only — no config blob, no page bodies. `is_published` says whether that revision is the one currently live, which is a different question from
|
|
10425
|
+
|
|
10426
|
+
`GET /v3/portal/config/{portal_id}/revisions`
|
|
10427
|
+
|
|
10428
|
+
```ts
|
|
10429
|
+
const { data } = await client.listPortalRevisions({
|
|
10430
|
+
portal_id: 'example',
|
|
10431
|
+
limit: 1,
|
|
10432
|
+
cursor: 'example',
|
|
10433
|
+
})
|
|
10434
|
+
```
|
|
10435
|
+
|
|
10436
|
+
<details>
|
|
10437
|
+
<summary>Response</summary>
|
|
10438
|
+
|
|
10439
|
+
```json
|
|
10440
|
+
{
|
|
10441
|
+
"results": [
|
|
10442
|
+
{
|
|
10443
|
+
"revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
10444
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
10445
|
+
"created_by": "string",
|
|
10446
|
+
"name": "FAQ page launch",
|
|
10447
|
+
"description": "string",
|
|
10448
|
+
"page_count": 0,
|
|
10449
|
+
"published_at": "1970-01-01T00:00:00.000Z",
|
|
10450
|
+
"published_by": "string",
|
|
10451
|
+
"is_published": true
|
|
10452
|
+
}
|
|
10453
|
+
],
|
|
10454
|
+
"next_cursor": "string"
|
|
10455
|
+
}
|
|
10456
|
+
```
|
|
10457
|
+
|
|
10458
|
+
</details>
|
|
10459
|
+
|
|
10460
|
+
---
|
|
10461
|
+
|
|
10462
|
+
### `getPortalRevision`
|
|
10463
|
+
|
|
10464
|
+
Returns the full content of one revision: the snapshotted config, its pages (in the live `Page` shape), email templates and identity providers with secrets redacted.
|
|
10465
|
+
|
|
10466
|
+
`GET /v3/portal/config/{portal_id}/revisions/{revision_id}`
|
|
10467
|
+
|
|
10468
|
+
```ts
|
|
10469
|
+
const { data } = await client.getPortalRevision({
|
|
10470
|
+
portal_id: 'example',
|
|
10471
|
+
revision_id: 'example',
|
|
10472
|
+
})
|
|
10473
|
+
```
|
|
10474
|
+
|
|
10475
|
+
<details>
|
|
10476
|
+
<summary>Response</summary>
|
|
10477
|
+
|
|
10478
|
+
```json
|
|
10479
|
+
{
|
|
10480
|
+
"revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
10481
|
+
"created_at": "1970-01-01T00:00:00.000Z",
|
|
10482
|
+
"created_by": "string",
|
|
10483
|
+
"name": "FAQ page launch",
|
|
10484
|
+
"description": "string",
|
|
10485
|
+
"page_count": 0,
|
|
10486
|
+
"published_at": "1970-01-01T00:00:00.000Z",
|
|
10487
|
+
"published_by": "string",
|
|
10488
|
+
"is_published": true,
|
|
10489
|
+
"config": {},
|
|
10490
|
+
"pages": [
|
|
10491
|
+
{
|
|
10492
|
+
"slug": "dashboard",
|
|
10493
|
+
"path": "/dashboard",
|
|
10494
|
+
"schema": ["string"],
|
|
10495
|
+
"visibility": {},
|
|
10496
|
+
"content": {},
|
|
10497
|
+
"design": {},
|
|
10498
|
+
"blocks": {},
|
|
10499
|
+
"order": 1,
|
|
10500
|
+
"is_system": false,
|
|
10501
|
+
"is_detail": false,
|
|
10502
|
+
"detail_schema": "contact",
|
|
10503
|
+
"show_in_navigation": false,
|
|
10504
|
+
"is_public": true,
|
|
10505
|
+
"parentId": "c495fef9-eeca-4019-a989-8390dcd9825b",
|
|
10506
|
+
"is_entry_route": false,
|
|
10507
|
+
"is_deleted": false,
|
|
10508
|
+
"id": "c495fef9-eeca-4019-a989-8390dcd9825b",
|
|
10509
|
+
"last_modified_at": "2021-02-09T12:41:43.662Z",
|
|
10510
|
+
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
10511
|
+
"past_routes": ["old-dashboard", "home"],
|
|
10512
|
+
"org_id": "string"
|
|
10513
|
+
}
|
|
10514
|
+
],
|
|
10515
|
+
"identity_providers": [
|
|
10516
|
+
{
|
|
10517
|
+
"slug": "office-365-login",
|
|
10518
|
+
"display_name": "Office 365 Login",
|
|
10519
|
+
"provider_type": "OIDC",
|
|
10520
|
+
"attribute_mappings": {},
|
|
10521
|
+
"entity_matching": {},
|
|
10522
|
+
"oidc_config": {},
|
|
10523
|
+
"mobile_oidc_config": {},
|
|
10524
|
+
"expose_client_secret": false
|
|
10525
|
+
}
|
|
10526
|
+
],
|
|
10527
|
+
"email_templates": {
|
|
10528
|
+
"confirmAccount": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10529
|
+
"advancedAuth": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10530
|
+
"advancedMFA": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10531
|
+
"journeySignUp": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10532
|
+
"journeySignInOneTimePassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10533
|
+
"journeyLoginOTP": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10534
|
+
"forgotPassword": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10535
|
+
"invitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10536
|
+
"partnerInvitation": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10537
|
+
"onNewQuote": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10538
|
+
"onMapAPendingUser": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10539
|
+
"onDocUpload": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10540
|
+
"onWorkflowStepAssigned": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10541
|
+
"confirmEmailUpdate": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10542
|
+
"verifyCodeToSetPassword": "5da0a718-c822-403d-9f5d-20d4584e0528"
|
|
10543
|
+
},
|
|
10544
|
+
"email_template_settings": {}
|
|
10545
|
+
}
|
|
10546
|
+
```
|
|
10547
|
+
|
|
10548
|
+
</details>
|
|
10549
|
+
|
|
10550
|
+
---
|
|
10551
|
+
|
|
10552
|
+
### `publishPortalRevision`
|
|
10553
|
+
|
|
10554
|
+
Makes one revision the portal's live configuration, atomically: either everything below takes effect or nothing does. Publish is a full-snapshot replace: it writes config, every page and email templat
|
|
10555
|
+
|
|
10556
|
+
`POST /v3/portal/config/{portal_id}/publish`
|
|
10557
|
+
|
|
10558
|
+
```ts
|
|
10559
|
+
const { data } = await client.publishPortalRevision(
|
|
10560
|
+
{
|
|
10561
|
+
portal_id: 'example',
|
|
10562
|
+
},
|
|
10563
|
+
{
|
|
10564
|
+
revision_id: '2026-08-25T14:03:11.482Z-a7f3c1d9',
|
|
10565
|
+
name: 'FAQ page launch',
|
|
10566
|
+
description: 'string'
|
|
10567
|
+
},
|
|
10568
|
+
)
|
|
10569
|
+
```
|
|
10570
|
+
|
|
10571
|
+
<details>
|
|
10572
|
+
<summary>Response</summary>
|
|
10573
|
+
|
|
10574
|
+
```json
|
|
10575
|
+
{
|
|
10576
|
+
"revision_id": "string",
|
|
10577
|
+
"published_at": "1970-01-01T00:00:00.000Z",
|
|
10578
|
+
"published_by": "string",
|
|
10579
|
+
"name": "FAQ page launch",
|
|
10580
|
+
"post_publish_warnings": ["allowed_entities_change"]
|
|
10581
|
+
}
|
|
10582
|
+
```
|
|
10583
|
+
|
|
10584
|
+
</details>
|
|
10585
|
+
|
|
10586
|
+
---
|
|
10587
|
+
|
|
10588
|
+
### `listAllPortalConfigs`
|
|
10589
|
+
|
|
10590
|
+
Retrieves all portal configurations.
|
|
10591
|
+
|
|
10592
|
+
`GET /v3/portal/configs`
|
|
10593
|
+
|
|
10594
|
+
```ts
|
|
10595
|
+
const { data } = await client.listAllPortalConfigs()
|
|
10596
|
+
```
|
|
10597
|
+
|
|
10598
|
+
<details>
|
|
10599
|
+
<summary>Response</summary>
|
|
10600
|
+
|
|
10601
|
+
```json
|
|
10602
|
+
{
|
|
10603
|
+
"data": [
|
|
10604
|
+
{
|
|
10605
|
+
"entity_actions": [],
|
|
10606
|
+
"extensions": [],
|
|
10607
|
+
"extension_hooks": {},
|
|
10608
|
+
"default_user_to_notify": {},
|
|
10609
|
+
"identity_providers": [],
|
|
10610
|
+
"mobile_config": {},
|
|
10611
|
+
"enabled": true,
|
|
10612
|
+
"name": "Installer Portal",
|
|
10613
|
+
"domain": "abc.com",
|
|
10614
|
+
"is_epilot_domain": true,
|
|
10615
|
+
"epilot_domain": "example-portal-1.ecp.epilot.io",
|
|
10616
|
+
"domain_settings": {},
|
|
10617
|
+
"design_id": "5da0a718-c822-403d-9f5d-20d4584e0528",
|
|
10618
|
+
"allowed_portal_entities": ["contact", "contract"],
|
|
10619
|
+
"self_registration_setting": "ALLOW_WITH_CONTACT_CREATION",
|
|
10620
|
+
"self_registration_account_setting": "ALLOW_WITH_CREATION",
|
|
10621
|
+
"block_registration_if_portal_user_exists": true,
|
|
10622
|
+
"self_registration_entity": "contact",
|
|
10623
|
+
"user_account_self_management": false,
|
|
10624
|
+
"feature_settings": {},
|
|
10625
|
+
"accessToken": "string",
|
|
10626
|
+
"advanced_mfa": {},
|
|
10627
|
+
"auth_settings": {},
|
|
10628
|
+
"cognito_details": {},
|
|
10629
|
+
"config": "string",
|
|
10630
|
+
"contact_identifiers": ["email", "last_name"],
|
|
10631
|
+
"approval_state_attributes": {},
|
|
10632
|
+
"email_templates": {},
|
|
10633
|
+
"images": {},
|
|
10634
|
+
"entity_identifiers": {},
|
|
10635
|
+
"contract_identifiers": [],
|
|
10636
|
+
"contract_selector_config": {},
|
|
10637
|
+
"registration_identifiers": [],
|
|
10638
|
+
"surfaces": [],
|
|
10639
|
+
"contact_identifiers_for_account": [],
|
|
10640
|
+
"additional_contact_attributes": [],
|
|
10641
|
+
"triggered_journeys": [],
|
|
10642
|
+
"entity_edit_rules": [],
|
|
10643
|
+
"allowed_file_extensions": {},
|
|
10644
|
+
"prevent_search_engine_indexing": true,
|
|
10645
|
+
"meter_reading_grace_period": 0,
|
|
10646
|
+
"inactive_contract_cutoff_years": 0,
|
|
10647
|
+
"is_dummy": true,
|
|
10648
|
+
"is_v3_item": true,
|
|
10649
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
10650
|
+
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
10651
|
+
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
10652
|
+
"origin": "string",
|
|
10653
|
+
"global_blocks": {},
|
|
10654
|
+
"organization_id": 12345,
|
|
10655
|
+
"org_settings": {},
|
|
10656
|
+
"feature_flags": {},
|
|
10657
|
+
"grants": [],
|
|
10658
|
+
"pages": []
|
|
10659
|
+
}
|
|
10660
|
+
]
|
|
10661
|
+
}
|
|
10662
|
+
```
|
|
10663
|
+
|
|
10664
|
+
</details>
|
|
10665
|
+
|
|
10666
|
+
---
|
|
10667
|
+
|
|
10668
|
+
### `swapPortalConfig`
|
|
10669
|
+
|
|
10670
|
+
Swaps the portal configuration of two portals.
|
|
10671
|
+
|
|
10672
|
+
`POST /v3/portal/config/swap`
|
|
10673
|
+
|
|
10674
|
+
```ts
|
|
10675
|
+
const { data } = await client.swapPortalConfig(
|
|
10676
|
+
null,
|
|
10677
|
+
{
|
|
10678
|
+
source_portal_id: '453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
10679
|
+
target_portal_id: '453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
10680
|
+
items_to_swap: ['email_templates']
|
|
10681
|
+
},
|
|
10682
|
+
)
|
|
10683
|
+
```
|
|
10684
|
+
|
|
10685
|
+
<details>
|
|
10686
|
+
<summary>Response</summary>
|
|
10687
|
+
|
|
10688
|
+
```json
|
|
10689
|
+
{
|
|
10690
|
+
"message": "Domain and users swapped successfully."
|
|
10691
|
+
}
|
|
10692
|
+
```
|
|
10693
|
+
|
|
10694
|
+
</details>
|
|
10695
|
+
|
|
10696
|
+
---
|
|
10697
|
+
|
|
10698
|
+
### `clonePortalConfig`
|
|
10699
|
+
|
|
10700
|
+
Creates a new portal by cloning configuration and pages from an existing portal. The new portal gets its own domain, users, email templates, and authentication settings.
|
|
10701
|
+
|
|
10702
|
+
`POST /v3/portal/config/clone`
|
|
10703
|
+
|
|
10704
|
+
```ts
|
|
10705
|
+
const { data } = await client.clonePortalConfig(
|
|
10706
|
+
null,
|
|
10707
|
+
{
|
|
10708
|
+
source_portal_id: '453ad7bf-86d5-46c8-8252-bcc868df5e3c',
|
|
10709
|
+
name: 'string'
|
|
10710
|
+
},
|
|
10711
|
+
)
|
|
10712
|
+
```
|
|
10713
|
+
|
|
10714
|
+
<details>
|
|
10715
|
+
<summary>Response</summary>
|
|
9879
10716
|
|
|
9880
10717
|
```json
|
|
9881
10718
|
{
|
|
@@ -10068,6 +10905,16 @@ const { data } = await client.clonePortalConfig(
|
|
|
10068
10905
|
"schema": "contract"
|
|
10069
10906
|
}
|
|
10070
10907
|
],
|
|
10908
|
+
"surfaces": [
|
|
10909
|
+
{
|
|
10910
|
+
"id": "website-journeys",
|
|
10911
|
+
"name": "Website journeys",
|
|
10912
|
+
"description": "string",
|
|
10913
|
+
"authentication": "login",
|
|
10914
|
+
"token_ttl_seconds": 300,
|
|
10915
|
+
"data_access": {}
|
|
10916
|
+
}
|
|
10917
|
+
],
|
|
10071
10918
|
"contact_identifiers_for_account": [
|
|
10072
10919
|
{
|
|
10073
10920
|
"name": "first_name",
|
|
@@ -10126,6 +10973,7 @@ const { data } = await client.clonePortalConfig(
|
|
|
10126
10973
|
"inactive_contract_cutoff_years": 0,
|
|
10127
10974
|
"is_dummy": true,
|
|
10128
10975
|
"is_v3_item": true,
|
|
10976
|
+
"published_revision_id": "2026-08-25T14:03:11.482Z-a7f3c1d9",
|
|
10129
10977
|
"portal_id": "453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
10130
10978
|
"portal_sk_v3": "PORTAL_CONFIG#453ad7bf-86d5-46c8-8252-bcc868df5e3c",
|
|
10131
10979
|
"origin": "string",
|
|
@@ -11766,6 +12614,35 @@ type ContactExistsRequest = {
|
|
|
11766
12614
|
}
|
|
11767
12615
|
```
|
|
11768
12616
|
|
|
12617
|
+
### `ContactIdentifyRequest`
|
|
12618
|
+
|
|
12619
|
+
ContactExistsRequest plus the surface the token is requested for.
|
|
12620
|
+
|
|
12621
|
+
|
|
12622
|
+
```ts
|
|
12623
|
+
type ContactIdentifyRequest = {
|
|
12624
|
+
org_id: string
|
|
12625
|
+
registration_identifiers: Record<string, Record<string, string>>
|
|
12626
|
+
trigger_identifiers_check?: boolean
|
|
12627
|
+
surface_id: string
|
|
12628
|
+
}
|
|
12629
|
+
```
|
|
12630
|
+
|
|
12631
|
+
### `ContactIdentifyResponse`
|
|
12632
|
+
|
|
12633
|
+
```ts
|
|
12634
|
+
type ContactIdentifyResponse = {
|
|
12635
|
+
contact_id?: string // uuid
|
|
12636
|
+
account_id?: string // uuid
|
|
12637
|
+
token?: string
|
|
12638
|
+
token_type?: "contact_identification"
|
|
12639
|
+
surface_id?: string
|
|
12640
|
+
expires_at?: string // date-time
|
|
12641
|
+
allowed_operations?: string[]
|
|
12642
|
+
reason?: "TIMEOUT" | "NOT_FOUND"
|
|
12643
|
+
}
|
|
12644
|
+
```
|
|
12645
|
+
|
|
11769
12646
|
### `AccountExistsRequest`
|
|
11770
12647
|
|
|
11771
12648
|
```ts
|
|
@@ -12438,6 +13315,56 @@ type AdminUser = {
|
|
|
12438
13315
|
}
|
|
12439
13316
|
```
|
|
12440
13317
|
|
|
13318
|
+
### `PortalSurface`
|
|
13319
|
+
|
|
13320
|
+
One surface a portal's data is reached from (see `surfaces` on the portal config).
|
|
13321
|
+
|
|
13322
|
+
A surface names how callers authenticate on it and what they may reach once they
|
|
13323
|
+
have. Data access is always a subset of the portal's own: a schema not in
|
|
13324
|
+
`allowed_portal_entities` cannot be opened up by a surface, a
|
|
13325
|
+
|
|
13326
|
+
```ts
|
|
13327
|
+
type PortalSurface = {
|
|
13328
|
+
id: string
|
|
13329
|
+
name: string
|
|
13330
|
+
description?: string
|
|
13331
|
+
authentication: "login" | "registration_identifiers"
|
|
13332
|
+
token_ttl_seconds?: number
|
|
13333
|
+
data_access?: {
|
|
13334
|
+
entities?: Array<{
|
|
13335
|
+
schema: { ... }
|
|
13336
|
+
target_ids?: { ... }
|
|
13337
|
+
}>
|
|
13338
|
+
role_id?: string
|
|
13339
|
+
}
|
|
13340
|
+
}
|
|
13341
|
+
```
|
|
13342
|
+
|
|
13343
|
+
### `PortalSurfaceDataAccess`
|
|
13344
|
+
|
|
13345
|
+
What a caller on a surface may reach. Every property is optional; omitting all of them is the portal's default scope.
|
|
13346
|
+
|
|
13347
|
+
```ts
|
|
13348
|
+
type PortalSurfaceDataAccess = {
|
|
13349
|
+
entities?: Array<{
|
|
13350
|
+
schema: string
|
|
13351
|
+
target_ids?: string[]
|
|
13352
|
+
}>
|
|
13353
|
+
role_id?: string
|
|
13354
|
+
}
|
|
13355
|
+
```
|
|
13356
|
+
|
|
13357
|
+
### `PortalSurfaceEntityAccess`
|
|
13358
|
+
|
|
13359
|
+
One schema this surface reaches, with the targets that always apply to it.
|
|
13360
|
+
|
|
13361
|
+
```ts
|
|
13362
|
+
type PortalSurfaceEntityAccess = {
|
|
13363
|
+
schema: string
|
|
13364
|
+
target_ids?: string[]
|
|
13365
|
+
}
|
|
13366
|
+
```
|
|
13367
|
+
|
|
12441
13368
|
### `Grant`
|
|
12442
13369
|
|
|
12443
13370
|
```ts
|
|
@@ -12586,9 +13513,34 @@ type PortalWorkflow = {
|
|
|
12586
13513
|
assigned_to?: string[]
|
|
12587
13514
|
phase_id?: string
|
|
12588
13515
|
phase_name?: string
|
|
13516
|
+
stage_id?: string
|
|
12589
13517
|
completed_at?: string
|
|
12590
13518
|
updated_at?: string
|
|
12591
13519
|
}>
|
|
13520
|
+
stages?: Array<{
|
|
13521
|
+
id: string
|
|
13522
|
+
name: string
|
|
13523
|
+
description?: string
|
|
13524
|
+
status: "COMPLETED" | "IN_PROGRESS" | "UPCOMING"
|
|
13525
|
+
completed_at?: string
|
|
13526
|
+
}>
|
|
13527
|
+
}
|
|
13528
|
+
```
|
|
13529
|
+
|
|
13530
|
+
### `PortalWorkflowStage`
|
|
13531
|
+
|
|
13532
|
+
A customer-facing stage of a flow execution, with a progress status derived
|
|
13533
|
+
from the execution's tasks by the Workflows API. Stages form a strict total
|
|
13534
|
+
order; the array order is the stage order.
|
|
13535
|
+
|
|
13536
|
+
|
|
13537
|
+
```ts
|
|
13538
|
+
type PortalWorkflowStage = {
|
|
13539
|
+
id: string
|
|
13540
|
+
name: string
|
|
13541
|
+
description?: string
|
|
13542
|
+
status: "COMPLETED" | "IN_PROGRESS" | "UPCOMING"
|
|
13543
|
+
completed_at?: string
|
|
12592
13544
|
}
|
|
12593
13545
|
```
|
|
12594
13546
|
|
|
@@ -12634,6 +13586,7 @@ type PortalWorkflowTask = {
|
|
|
12634
13586
|
assigned_to?: string[]
|
|
12635
13587
|
phase_id?: string
|
|
12636
13588
|
phase_name?: string
|
|
13589
|
+
stage_id?: string
|
|
12637
13590
|
completed_at?: string
|
|
12638
13591
|
updated_at?: string
|
|
12639
13592
|
}
|
|
@@ -12675,9 +13628,17 @@ type EntityPortalWorkflows = {
|
|
|
12675
13628
|
assigned_to?: { ... }
|
|
12676
13629
|
phase_id?: { ... }
|
|
12677
13630
|
phase_name?: { ... }
|
|
13631
|
+
stage_id?: { ... }
|
|
12678
13632
|
completed_at?: { ... }
|
|
12679
13633
|
updated_at?: { ... }
|
|
12680
13634
|
}>
|
|
13635
|
+
stages?: Array<{
|
|
13636
|
+
id: { ... }
|
|
13637
|
+
name: { ... }
|
|
13638
|
+
description?: { ... }
|
|
13639
|
+
status: { ... }
|
|
13640
|
+
completed_at?: { ... }
|
|
13641
|
+
}>
|
|
12681
13642
|
}>
|
|
12682
13643
|
}
|
|
12683
13644
|
```
|
|
@@ -14016,14 +14977,55 @@ type ProviderConfig = {
|
|
|
14016
14977
|
client_id?: string
|
|
14017
14978
|
client_secret?: string
|
|
14018
14979
|
}
|
|
14019
|
-
expose_client_secret?: boolean
|
|
14980
|
+
expose_client_secret?: boolean
|
|
14981
|
+
}
|
|
14982
|
+
```
|
|
14983
|
+
|
|
14984
|
+
### `ProviderPublicConfig`
|
|
14985
|
+
|
|
14986
|
+
```ts
|
|
14987
|
+
type ProviderPublicConfig = {
|
|
14988
|
+
slug: string
|
|
14989
|
+
display_name: string
|
|
14990
|
+
oidc_config?: {
|
|
14991
|
+
type?: "authorization_code" | "implicit"
|
|
14992
|
+
oidc_issuer: string
|
|
14993
|
+
redirect_uri?: string
|
|
14994
|
+
client_id: string
|
|
14995
|
+
client_secret?: string
|
|
14996
|
+
has_client_secret?: boolean
|
|
14997
|
+
scope: string
|
|
14998
|
+
metadata?: {
|
|
14999
|
+
response_modes_supported?: { ... }
|
|
15000
|
+
authorization_endpoint?: { ... }
|
|
15001
|
+
token_endpoint?: { ... }
|
|
15002
|
+
userinfo_endpoint?: { ... }
|
|
15003
|
+
logout_uri?: { ... }
|
|
15004
|
+
logout_redirect_uri?: { ... }
|
|
15005
|
+
skip_login_as_logout?: { ... }
|
|
15006
|
+
mobile_redirect_uri?: { ... }
|
|
15007
|
+
test_auth_username?: { ... }
|
|
15008
|
+
test_auth_password?: { ... }
|
|
15009
|
+
}
|
|
15010
|
+
prompt?: "login" | "select_account" | "consent" | "signup"
|
|
15011
|
+
}
|
|
15012
|
+
mobile_oidc_config?: {
|
|
15013
|
+
client_id?: string
|
|
15014
|
+
client_secret?: string
|
|
15015
|
+
}
|
|
14020
15016
|
}
|
|
14021
15017
|
```
|
|
14022
15018
|
|
|
14023
|
-
### `
|
|
15019
|
+
### `ProviderPublicConfigV3`
|
|
15020
|
+
|
|
15021
|
+
Web-only public provider configuration served by `getPublicSSOProviderV3`.
|
|
15022
|
+
Unlike `ProviderPublicConfig` there is no `mobile_oidc_config`, and
|
|
15023
|
+
`oidc_config` never carries `client_secret` or the `metadata.test_auth_*`
|
|
15024
|
+
credentials — `oidc_config.has_client_secret` signals their presence so
|
|
15025
|
+
clients rou
|
|
14024
15026
|
|
|
14025
15027
|
```ts
|
|
14026
|
-
type
|
|
15028
|
+
type ProviderPublicConfigV3 = {
|
|
14027
15029
|
slug: string
|
|
14028
15030
|
display_name: string
|
|
14029
15031
|
oidc_config?: {
|
|
@@ -14048,10 +15050,17 @@ type ProviderPublicConfig = {
|
|
|
14048
15050
|
}
|
|
14049
15051
|
prompt?: "login" | "select_account" | "consent" | "signup"
|
|
14050
15052
|
}
|
|
14051
|
-
|
|
14052
|
-
|
|
14053
|
-
|
|
14054
|
-
|
|
15053
|
+
}
|
|
15054
|
+
```
|
|
15055
|
+
|
|
15056
|
+
### `PublicIdentityProvider`
|
|
15057
|
+
|
|
15058
|
+
Minimal public identity provider info — enough to render a provider login button.
|
|
15059
|
+
|
|
15060
|
+
```ts
|
|
15061
|
+
type PublicIdentityProvider = {
|
|
15062
|
+
slug: string
|
|
15063
|
+
display_name: string
|
|
14055
15064
|
}
|
|
14056
15065
|
```
|
|
14057
15066
|
|
|
@@ -14735,6 +15744,313 @@ type JuiceSettings = {
|
|
|
14735
15744
|
}
|
|
14736
15745
|
```
|
|
14737
15746
|
|
|
15747
|
+
### `RevisionPageRequest`
|
|
15748
|
+
|
|
15749
|
+
A page inside a revision snapshot. `additionalProperties` is true on purpose — a page carries fields this schema does not name and they must survive into the snapshot and back onto the live page when it is published.
|
|
15750
|
+
|
|
15751
|
+
|
|
15752
|
+
```ts
|
|
15753
|
+
type RevisionPageRequest = {
|
|
15754
|
+
id: string // uuid
|
|
15755
|
+
slug: string
|
|
15756
|
+
order: number
|
|
15757
|
+
blocks: Record<string, unknown>
|
|
15758
|
+
}
|
|
15759
|
+
```
|
|
15760
|
+
|
|
15761
|
+
### `PortalRevisionRequest`
|
|
15762
|
+
|
|
15763
|
+
```ts
|
|
15764
|
+
type PortalRevisionRequest = {
|
|
15765
|
+
entity_actions?: Array<{
|
|
15766
|
+
journey_id?: string // uuid
|
|
15767
|
+
slug?: string
|
|
15768
|
+
action_Label?: {
|
|
15769
|
+
en?: { ... }
|
|
15770
|
+
de?: { ... }
|
|
15771
|
+
}
|
|
15772
|
+
}>
|
|
15773
|
+
extensions?: Array<{
|
|
15774
|
+
id: string
|
|
15775
|
+
status: "installed" | "enabled"
|
|
15776
|
+
options?: Record<string, string>
|
|
15777
|
+
}>
|
|
15778
|
+
extension_hooks?: Record<string, {
|
|
15779
|
+
app_id: string
|
|
15780
|
+
extension_id: string
|
|
15781
|
+
hook_id: string
|
|
15782
|
+
}>
|
|
15783
|
+
default_user_to_notify?: {
|
|
15784
|
+
onPendingUser?: Array<{
|
|
15785
|
+
type?: { ... }
|
|
15786
|
+
user_id?: { ... }
|
|
15787
|
+
display_name?: { ... }
|
|
15788
|
+
image_uri?: { ... }
|
|
15789
|
+
org_id?: { ... }
|
|
15790
|
+
email?: { ... }
|
|
15791
|
+
phone?: { ... }
|
|
15792
|
+
}>
|
|
15793
|
+
}
|
|
15794
|
+
identity_providers?: Array<{
|
|
15795
|
+
slug?: string
|
|
15796
|
+
display_name: string
|
|
15797
|
+
provider_type: "OIDC"
|
|
15798
|
+
attribute_mappings?: {
|
|
15799
|
+
contact: { ... }
|
|
15800
|
+
account?: { ... }
|
|
15801
|
+
portal_user?: { ... }
|
|
15802
|
+
concession_attributes?: { ... }
|
|
15803
|
+
}
|
|
15804
|
+
entity_matching?: {
|
|
15805
|
+
portal_user?: { ... }
|
|
15806
|
+
contact?: { ... }
|
|
15807
|
+
auto_create_cognito_user?: { ... }
|
|
15808
|
+
}
|
|
15809
|
+
oidc_config?: {
|
|
15810
|
+
type?: { ... }
|
|
15811
|
+
oidc_issuer: { ... }
|
|
15812
|
+
redirect_uri?: { ... }
|
|
15813
|
+
client_id: { ... }
|
|
15814
|
+
client_secret?: { ... }
|
|
15815
|
+
has_client_secret?: { ... }
|
|
15816
|
+
scope: { ... }
|
|
15817
|
+
metadata?: { ... }
|
|
15818
|
+
prompt?: { ... }
|
|
15819
|
+
}
|
|
15820
|
+
mobile_oidc_config?: {
|
|
15821
|
+
client_id?: { ... }
|
|
15822
|
+
client_secret?: { ... }
|
|
15823
|
+
}
|
|
15824
|
+
expose_client_secret?: boolean
|
|
15825
|
+
}>
|
|
15826
|
+
mobile_config?: {
|
|
15827
|
+
portal_id?: string
|
|
15828
|
+
enabled?: boolean
|
|
15829
|
+
display_name?: string
|
|
15830
|
+
app_host?: string
|
|
15831
|
+
environment?: "prod" | "staging" | "dev"
|
|
15832
|
+
branding?: {
|
|
15833
|
+
app_icon?: { ... }
|
|
15834
|
+
splash?: { ... }
|
|
15835
|
+
splash_dark?: { ... }
|
|
15836
|
+
icon_background_color?: { ... }
|
|
15837
|
+
splash_background_color?: { ... }
|
|
15838
|
+
splash_background_color_dark?: { ... }
|
|
15839
|
+
}
|
|
15840
|
+
ios?: {
|
|
15841
|
+
bundle_id?: { ... }
|
|
15842
|
+
team_id?: { ... }
|
|
15843
|
+
credentials_status?: { ... }
|
|
15844
|
+
app_store_id?: { ... }
|
|
15845
|
+
store_url?: { ... }
|
|
15846
|
+
last_build?: { ... }
|
|
15847
|
+
}
|
|
15848
|
+
android?: {
|
|
15849
|
+
package_name?: { ... }
|
|
15850
|
+
credentials_status?: { ... }
|
|
15851
|
+
upload_key_status?: { ... }
|
|
15852
|
+
store_url?: { ... }
|
|
15853
|
+
last_build?: { ... }
|
|
15854
|
+
}
|
|
15855
|
+
ota?: {
|
|
15856
|
+
enabled?: { ... }
|
|
15857
|
+
channel?: { ... }
|
|
15858
|
+
auto_update?: { ... }
|
|
15859
|
+
update_strategy?: { ... }
|
|
15860
|
+
min_native_version?: { ... }
|
|
15861
|
+
}
|
|
15862
|
+
}
|
|
15863
|
+
enabled?: boolean
|
|
15864
|
+
// ...
|
|
15865
|
+
}
|
|
15866
|
+
```
|
|
15867
|
+
|
|
15868
|
+
### `PublishRevisionRequest`
|
|
15869
|
+
|
|
15870
|
+
```ts
|
|
15871
|
+
type PublishRevisionRequest = {
|
|
15872
|
+
revision_id: string
|
|
15873
|
+
name?: string
|
|
15874
|
+
description?: string
|
|
15875
|
+
}
|
|
15876
|
+
```
|
|
15877
|
+
|
|
15878
|
+
### `PortalRevisionSummary`
|
|
15879
|
+
|
|
15880
|
+
```ts
|
|
15881
|
+
type PortalRevisionSummary = {
|
|
15882
|
+
revision_id: string
|
|
15883
|
+
created_at: string // date-time
|
|
15884
|
+
created_by?: string
|
|
15885
|
+
name?: string
|
|
15886
|
+
description?: string
|
|
15887
|
+
page_count: number
|
|
15888
|
+
published_at?: string // date-time
|
|
15889
|
+
published_by?: string
|
|
15890
|
+
is_published: boolean
|
|
15891
|
+
}
|
|
15892
|
+
```
|
|
15893
|
+
|
|
15894
|
+
### `PortalRevisionList`
|
|
15895
|
+
|
|
15896
|
+
```ts
|
|
15897
|
+
type PortalRevisionList = {
|
|
15898
|
+
results: Array<{
|
|
15899
|
+
revision_id: string
|
|
15900
|
+
created_at: string // date-time
|
|
15901
|
+
created_by?: string
|
|
15902
|
+
name?: string
|
|
15903
|
+
description?: string
|
|
15904
|
+
page_count: number
|
|
15905
|
+
published_at?: string // date-time
|
|
15906
|
+
published_by?: string
|
|
15907
|
+
is_published: boolean
|
|
15908
|
+
}>
|
|
15909
|
+
next_cursor?: string
|
|
15910
|
+
}
|
|
15911
|
+
```
|
|
15912
|
+
|
|
15913
|
+
### `PortalRevisionCreated`
|
|
15914
|
+
|
|
15915
|
+
```ts
|
|
15916
|
+
type PortalRevisionCreated = {
|
|
15917
|
+
revision_id: string
|
|
15918
|
+
created_at: string // date-time
|
|
15919
|
+
created_by?: string
|
|
15920
|
+
name?: string
|
|
15921
|
+
description?: string
|
|
15922
|
+
page_count: number
|
|
15923
|
+
published_at?: string // date-time
|
|
15924
|
+
published_by?: string
|
|
15925
|
+
is_published: boolean
|
|
15926
|
+
identity_providers?: Array<{
|
|
15927
|
+
slug?: string
|
|
15928
|
+
display_name: string
|
|
15929
|
+
provider_type: "OIDC"
|
|
15930
|
+
attribute_mappings?: {
|
|
15931
|
+
contact: { ... }
|
|
15932
|
+
account?: { ... }
|
|
15933
|
+
portal_user?: { ... }
|
|
15934
|
+
concession_attributes?: { ... }
|
|
15935
|
+
}
|
|
15936
|
+
entity_matching?: {
|
|
15937
|
+
portal_user?: { ... }
|
|
15938
|
+
contact?: { ... }
|
|
15939
|
+
auto_create_cognito_user?: { ... }
|
|
15940
|
+
}
|
|
15941
|
+
oidc_config?: {
|
|
15942
|
+
type?: { ... }
|
|
15943
|
+
oidc_issuer: { ... }
|
|
15944
|
+
redirect_uri?: { ... }
|
|
15945
|
+
client_id: { ... }
|
|
15946
|
+
client_secret?: { ... }
|
|
15947
|
+
has_client_secret?: { ... }
|
|
15948
|
+
scope: { ... }
|
|
15949
|
+
metadata?: { ... }
|
|
15950
|
+
prompt?: { ... }
|
|
15951
|
+
}
|
|
15952
|
+
mobile_oidc_config?: {
|
|
15953
|
+
client_id?: { ... }
|
|
15954
|
+
client_secret?: { ... }
|
|
15955
|
+
}
|
|
15956
|
+
expose_client_secret?: boolean
|
|
15957
|
+
}>
|
|
15958
|
+
}
|
|
15959
|
+
```
|
|
15960
|
+
|
|
15961
|
+
### `RevisionPage`
|
|
15962
|
+
|
|
15963
|
+
A page from a revision snapshot. Same shape as a live `Page`, without the server-managed fields (`past_routes`, `_created_at`, `_updated_at`, `is_deleted`), which publish re-derives from the live portal.
|
|
15964
|
+
|
|
15965
|
+
|
|
15966
|
+
```ts
|
|
15967
|
+
type RevisionPage = {
|
|
15968
|
+
org_id?: string
|
|
15969
|
+
}
|
|
15970
|
+
```
|
|
15971
|
+
|
|
15972
|
+
### `PortalRevision`
|
|
15973
|
+
|
|
15974
|
+
```ts
|
|
15975
|
+
type PortalRevision = {
|
|
15976
|
+
revision_id: string
|
|
15977
|
+
created_at: string // date-time
|
|
15978
|
+
created_by?: string
|
|
15979
|
+
name?: string
|
|
15980
|
+
description?: string
|
|
15981
|
+
page_count: number
|
|
15982
|
+
published_at?: string // date-time
|
|
15983
|
+
published_by?: string
|
|
15984
|
+
is_published: boolean
|
|
15985
|
+
config: Record<string, unknown>
|
|
15986
|
+
pages: Array<{
|
|
15987
|
+
org_id?: string
|
|
15988
|
+
}>
|
|
15989
|
+
identity_providers?: Array<{
|
|
15990
|
+
slug?: string
|
|
15991
|
+
display_name: string
|
|
15992
|
+
provider_type: "OIDC"
|
|
15993
|
+
attribute_mappings?: {
|
|
15994
|
+
contact: { ... }
|
|
15995
|
+
account?: { ... }
|
|
15996
|
+
portal_user?: { ... }
|
|
15997
|
+
concession_attributes?: { ... }
|
|
15998
|
+
}
|
|
15999
|
+
entity_matching?: {
|
|
16000
|
+
portal_user?: { ... }
|
|
16001
|
+
contact?: { ... }
|
|
16002
|
+
auto_create_cognito_user?: { ... }
|
|
16003
|
+
}
|
|
16004
|
+
oidc_config?: {
|
|
16005
|
+
type?: { ... }
|
|
16006
|
+
oidc_issuer: { ... }
|
|
16007
|
+
redirect_uri?: { ... }
|
|
16008
|
+
client_id: { ... }
|
|
16009
|
+
client_secret?: { ... }
|
|
16010
|
+
has_client_secret?: { ... }
|
|
16011
|
+
scope: { ... }
|
|
16012
|
+
metadata?: { ... }
|
|
16013
|
+
prompt?: { ... }
|
|
16014
|
+
}
|
|
16015
|
+
mobile_oidc_config?: {
|
|
16016
|
+
client_id?: { ... }
|
|
16017
|
+
client_secret?: { ... }
|
|
16018
|
+
}
|
|
16019
|
+
expose_client_secret?: boolean
|
|
16020
|
+
}>
|
|
16021
|
+
email_templates?: {
|
|
16022
|
+
confirmAccount?: string // uuid
|
|
16023
|
+
advancedAuth?: string // uuid
|
|
16024
|
+
advancedMFA?: string // uuid
|
|
16025
|
+
journeySignUp?: string // uuid
|
|
16026
|
+
journeySignInOneTimePassword?: string // uuid
|
|
16027
|
+
journeyLoginOTP?: string // uuid
|
|
16028
|
+
forgotPassword?: string // uuid
|
|
16029
|
+
invitation?: string // uuid
|
|
16030
|
+
partnerInvitation?: string // uuid
|
|
16031
|
+
onNewQuote?: string // uuid
|
|
16032
|
+
onMapAPendingUser?: string // uuid
|
|
16033
|
+
onDocUpload?: string // uuid
|
|
16034
|
+
onWorkflowStepAssigned?: string // uuid
|
|
16035
|
+
confirmEmailUpdate?: string // uuid
|
|
16036
|
+
verifyCodeToSetPassword?: string // uuid
|
|
16037
|
+
}
|
|
16038
|
+
email_template_settings?: Record<string, unknown>
|
|
16039
|
+
}
|
|
16040
|
+
```
|
|
16041
|
+
|
|
16042
|
+
### `PublishResult`
|
|
16043
|
+
|
|
16044
|
+
```ts
|
|
16045
|
+
type PublishResult = {
|
|
16046
|
+
revision_id: string
|
|
16047
|
+
published_at: string // date-time
|
|
16048
|
+
published_by?: string
|
|
16049
|
+
name?: string
|
|
16050
|
+
post_publish_warnings: string[]
|
|
16051
|
+
}
|
|
16052
|
+
```
|
|
16053
|
+
|
|
14738
16054
|
### `SwappableConfig`
|
|
14739
16055
|
|
|
14740
16056
|
Optional configuration item that a portal swap can additionally include. The swap always transfers the pages and the functional experience config that keep the portal working. These items are opt-in on top of that and are OFF by default. Domain and access/security settings (domain, cognito_details,
|