@epilot/cli 0.1.75 → 0.1.76
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/README.md +1 -1
- package/definitions/app.json +458 -3
- package/dist/bin/epilot.js +6 -6
- package/dist/{chunk-ILDXCHBW.js → chunk-Z6XZLCPF.js} +5 -2
- package/dist/{completion-RJBGSMR2.js → completion-SRBQ67FX.js} +1 -1
- package/dist/{upgrade-IYLXBGRO.js → upgrade-VBSV2FKU.js} +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/definitions/app.json
CHANGED
|
@@ -1565,6 +1565,105 @@
|
|
|
1565
1565
|
"description": "Bad gateway - proxy target unreachable or error"
|
|
1566
1566
|
}
|
|
1567
1567
|
}
|
|
1568
|
+
},
|
|
1569
|
+
"put": {
|
|
1570
|
+
"summary": "publicProxyPut",
|
|
1571
|
+
"operationId": "publicProxyPut",
|
|
1572
|
+
"description": "Forward a PUT request to a registered proxy target from a public-facing component",
|
|
1573
|
+
"tags": [
|
|
1574
|
+
"App Proxy"
|
|
1575
|
+
],
|
|
1576
|
+
"security": [
|
|
1577
|
+
{
|
|
1578
|
+
"EpilotAuth": []
|
|
1579
|
+
}
|
|
1580
|
+
],
|
|
1581
|
+
"requestBody": {
|
|
1582
|
+
"content": {
|
|
1583
|
+
"application/json": {
|
|
1584
|
+
"schema": {
|
|
1585
|
+
"type": "object"
|
|
1586
|
+
}
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
},
|
|
1590
|
+
"responses": {
|
|
1591
|
+
"200": {
|
|
1592
|
+
"description": "Proxied response from the target API"
|
|
1593
|
+
},
|
|
1594
|
+
"403": {
|
|
1595
|
+
"description": "Forbidden - app not installed or no public component uses this proxy"
|
|
1596
|
+
},
|
|
1597
|
+
"404": {
|
|
1598
|
+
"description": "Proxy target not found"
|
|
1599
|
+
},
|
|
1600
|
+
"502": {
|
|
1601
|
+
"description": "Bad gateway - proxy target unreachable or error"
|
|
1602
|
+
}
|
|
1603
|
+
}
|
|
1604
|
+
},
|
|
1605
|
+
"patch": {
|
|
1606
|
+
"summary": "publicProxyPatch",
|
|
1607
|
+
"operationId": "publicProxyPatch",
|
|
1608
|
+
"description": "Forward a PATCH request to a registered proxy target from a public-facing component",
|
|
1609
|
+
"tags": [
|
|
1610
|
+
"App Proxy"
|
|
1611
|
+
],
|
|
1612
|
+
"security": [
|
|
1613
|
+
{
|
|
1614
|
+
"EpilotAuth": []
|
|
1615
|
+
}
|
|
1616
|
+
],
|
|
1617
|
+
"requestBody": {
|
|
1618
|
+
"content": {
|
|
1619
|
+
"application/json": {
|
|
1620
|
+
"schema": {
|
|
1621
|
+
"type": "object"
|
|
1622
|
+
}
|
|
1623
|
+
}
|
|
1624
|
+
}
|
|
1625
|
+
},
|
|
1626
|
+
"responses": {
|
|
1627
|
+
"200": {
|
|
1628
|
+
"description": "Proxied response from the target API"
|
|
1629
|
+
},
|
|
1630
|
+
"403": {
|
|
1631
|
+
"description": "Forbidden - app not installed or no public component uses this proxy"
|
|
1632
|
+
},
|
|
1633
|
+
"404": {
|
|
1634
|
+
"description": "Proxy target not found"
|
|
1635
|
+
},
|
|
1636
|
+
"502": {
|
|
1637
|
+
"description": "Bad gateway - proxy target unreachable or error"
|
|
1638
|
+
}
|
|
1639
|
+
}
|
|
1640
|
+
},
|
|
1641
|
+
"delete": {
|
|
1642
|
+
"summary": "publicProxyDelete",
|
|
1643
|
+
"operationId": "publicProxyDelete",
|
|
1644
|
+
"description": "Forward a DELETE request to a registered proxy target from a public-facing component",
|
|
1645
|
+
"tags": [
|
|
1646
|
+
"App Proxy"
|
|
1647
|
+
],
|
|
1648
|
+
"security": [
|
|
1649
|
+
{
|
|
1650
|
+
"EpilotAuth": []
|
|
1651
|
+
}
|
|
1652
|
+
],
|
|
1653
|
+
"responses": {
|
|
1654
|
+
"200": {
|
|
1655
|
+
"description": "Proxied response from the target API"
|
|
1656
|
+
},
|
|
1657
|
+
"403": {
|
|
1658
|
+
"description": "Forbidden - app not installed or no public component uses this proxy"
|
|
1659
|
+
},
|
|
1660
|
+
"404": {
|
|
1661
|
+
"description": "Proxy target not found"
|
|
1662
|
+
},
|
|
1663
|
+
"502": {
|
|
1664
|
+
"description": "Bad gateway - proxy target unreachable or error"
|
|
1665
|
+
}
|
|
1666
|
+
}
|
|
1568
1667
|
}
|
|
1569
1668
|
}
|
|
1570
1669
|
},
|
|
@@ -2651,7 +2750,10 @@
|
|
|
2651
2750
|
"dataExport": "#/components/schemas/PortalExtensionHookDataExport",
|
|
2652
2751
|
"costDataRetrieval": "#/components/schemas/PortalExtensionHookCostDataRetrieval",
|
|
2653
2752
|
"meterReadingPlausibilityCheck": "#/components/schemas/PortalExtensionHookMeterReadingPlausibilityCheck",
|
|
2654
|
-
"visualizationMetadata": "#/components/schemas/PortalExtensionHookVisualizationMetadata"
|
|
2753
|
+
"visualizationMetadata": "#/components/schemas/PortalExtensionHookVisualizationMetadata",
|
|
2754
|
+
"changeEmail": "#/components/schemas/PortalExtensionHookChangeEmail",
|
|
2755
|
+
"changePassword": "#/components/schemas/PortalExtensionHookChangePassword",
|
|
2756
|
+
"deleteAccount": "#/components/schemas/PortalExtensionHookDeleteAccount"
|
|
2655
2757
|
}
|
|
2656
2758
|
},
|
|
2657
2759
|
"oneOf": [
|
|
@@ -2678,6 +2780,15 @@
|
|
|
2678
2780
|
},
|
|
2679
2781
|
{
|
|
2680
2782
|
"$ref": "#/components/schemas/PortalExtensionHookVisualizationMetadata"
|
|
2783
|
+
},
|
|
2784
|
+
{
|
|
2785
|
+
"$ref": "#/components/schemas/PortalExtensionHookChangeEmail"
|
|
2786
|
+
},
|
|
2787
|
+
{
|
|
2788
|
+
"$ref": "#/components/schemas/PortalExtensionHookChangePassword"
|
|
2789
|
+
},
|
|
2790
|
+
{
|
|
2791
|
+
"$ref": "#/components/schemas/PortalExtensionHookDeleteAccount"
|
|
2681
2792
|
}
|
|
2682
2793
|
]
|
|
2683
2794
|
}
|
|
@@ -3571,6 +3682,344 @@
|
|
|
3571
3682
|
],
|
|
3572
3683
|
"additionalProperties": false
|
|
3573
3684
|
},
|
|
3685
|
+
"PortalExtensionHookChangeEmail": {
|
|
3686
|
+
"description": "Hook that replaces the built-in change email functionality for portal users. When configured, the portal does not run its own change email flow. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the email change.\nThe `change_mode` controls what the portal does after the call:\n - `asynchronous`: The third-party system takes the email change over entirely (most likely by sending the user instructions to confirm the new email address). The portal does not change the login email itself.\n - `synchronous`: The third-party system applies the email change immediately. The portal waits for a successful (2xx) response and then also changes the portal user's login email right away, without sending a confirmation email. The user has to sign in again with the new email address afterwards.\n\nThe expected response http status code to the call is:\n - 2xx if the request was accepted\n - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)\n",
|
|
3687
|
+
"type": "object",
|
|
3688
|
+
"properties": {
|
|
3689
|
+
"id": {
|
|
3690
|
+
"type": "string",
|
|
3691
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
3692
|
+
"description": "Identifier of the hook. Should not change between updates."
|
|
3693
|
+
},
|
|
3694
|
+
"name": {
|
|
3695
|
+
"$ref": "#/components/schemas/TranslatedString"
|
|
3696
|
+
},
|
|
3697
|
+
"type": {
|
|
3698
|
+
"type": "string",
|
|
3699
|
+
"enum": [
|
|
3700
|
+
"changeEmail"
|
|
3701
|
+
]
|
|
3702
|
+
},
|
|
3703
|
+
"change_mode": {
|
|
3704
|
+
"type": "string",
|
|
3705
|
+
"enum": [
|
|
3706
|
+
"synchronous",
|
|
3707
|
+
"asynchronous"
|
|
3708
|
+
],
|
|
3709
|
+
"description": "Controls how the email change is handled once the third-party system accepted it. `asynchronous` hands the email change over entirely to the third-party system and the portal does not change the login email itself. `synchronous` waits for the third-party system to respond and then changes the portal user's login email immediately, without a confirmation email.\n",
|
|
3710
|
+
"default": "asynchronous"
|
|
3711
|
+
},
|
|
3712
|
+
"require_password_confirmation": {
|
|
3713
|
+
"type": "boolean",
|
|
3714
|
+
"description": "Whether the portal user must confirm their current password before the change email request is handed over to the third-party system. When true, the portal collects and verifies the current password before calling the hook. Treated as true when `change_mode` is `synchronous`, since the portal re-creates the login with the confirmed password. Skipped either way for portal users whose identity is managed by an identity provider: an SSO login has no password to confirm.\n",
|
|
3715
|
+
"default": true
|
|
3716
|
+
},
|
|
3717
|
+
"explanation": {
|
|
3718
|
+
"type": "object",
|
|
3719
|
+
"properties": {
|
|
3720
|
+
"en": {
|
|
3721
|
+
"type": "string",
|
|
3722
|
+
"description": "Explanation of the functionality shown to the end user.",
|
|
3723
|
+
"example": "You will receive an email with instructions to confirm your new email address."
|
|
3724
|
+
}
|
|
3725
|
+
},
|
|
3726
|
+
"additionalProperties": {
|
|
3727
|
+
"type": "string",
|
|
3728
|
+
"description": "Explanation of the functionality in language denoted by ISO 3166-1 alpha-2 code."
|
|
3729
|
+
},
|
|
3730
|
+
"required": [
|
|
3731
|
+
"en"
|
|
3732
|
+
],
|
|
3733
|
+
"description": "Optional explanation shown to the user in the change email confirmation dialog."
|
|
3734
|
+
},
|
|
3735
|
+
"auth": {
|
|
3736
|
+
"$ref": "#/components/schemas/PortalExtensionAuthBlock"
|
|
3737
|
+
},
|
|
3738
|
+
"call": {
|
|
3739
|
+
"type": "object",
|
|
3740
|
+
"properties": {
|
|
3741
|
+
"method": {
|
|
3742
|
+
"type": "string",
|
|
3743
|
+
"description": "HTTP method to use for the call",
|
|
3744
|
+
"default": "POST"
|
|
3745
|
+
},
|
|
3746
|
+
"url": {
|
|
3747
|
+
"type": "string",
|
|
3748
|
+
"description": "URL to call. Supports variable interpolation."
|
|
3749
|
+
},
|
|
3750
|
+
"params": {
|
|
3751
|
+
"type": "object",
|
|
3752
|
+
"description": "Parameters to append to the URL. Supports variable interpolation.",
|
|
3753
|
+
"additionalProperties": {
|
|
3754
|
+
"type": "string"
|
|
3755
|
+
},
|
|
3756
|
+
"default": {}
|
|
3757
|
+
},
|
|
3758
|
+
"headers": {
|
|
3759
|
+
"type": "object",
|
|
3760
|
+
"description": "Headers to use. Supports variable interpolation.",
|
|
3761
|
+
"additionalProperties": {
|
|
3762
|
+
"type": "string"
|
|
3763
|
+
},
|
|
3764
|
+
"default": {}
|
|
3765
|
+
},
|
|
3766
|
+
"body": {
|
|
3767
|
+
"type": "object",
|
|
3768
|
+
"description": "Optional JSON body to use for the call. Defaults to an object with the requested new email and portal user context, e.g. `{\"new_email\": \"...\", \"old_email\": \"...\", \"portal_user_id\": \"...\"}`. The requested new email is available as `{{Input.new_email}}` and the current account email as `{{Input.old_email}}`. Supports variable interpolation."
|
|
3769
|
+
}
|
|
3770
|
+
},
|
|
3771
|
+
"required": [
|
|
3772
|
+
"url",
|
|
3773
|
+
"headers"
|
|
3774
|
+
],
|
|
3775
|
+
"additionalProperties": false
|
|
3776
|
+
},
|
|
3777
|
+
"resolved": {
|
|
3778
|
+
"type": "object",
|
|
3779
|
+
"properties": {
|
|
3780
|
+
"error_message_path": {
|
|
3781
|
+
"type": "string",
|
|
3782
|
+
"description": "Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).\nIf specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.\n",
|
|
3783
|
+
"example": "error.message"
|
|
3784
|
+
}
|
|
3785
|
+
},
|
|
3786
|
+
"additionalProperties": false
|
|
3787
|
+
},
|
|
3788
|
+
"secure_proxy": {
|
|
3789
|
+
"$ref": "#/components/schemas/PortalExtensionSecureProxy"
|
|
3790
|
+
}
|
|
3791
|
+
},
|
|
3792
|
+
"required": [
|
|
3793
|
+
"id",
|
|
3794
|
+
"type",
|
|
3795
|
+
"call"
|
|
3796
|
+
],
|
|
3797
|
+
"additionalProperties": false
|
|
3798
|
+
},
|
|
3799
|
+
"PortalExtensionHookChangePassword": {
|
|
3800
|
+
"description": "Hook that replaces the built-in change password functionality for portal users. When configured, the portal does not change the user's password itself. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the password change (most likely by sending the user instructions to complete the process).\nThe expected response http status code to the call is:\n - 2xx if the request was accepted\n - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)\n",
|
|
3801
|
+
"type": "object",
|
|
3802
|
+
"properties": {
|
|
3803
|
+
"id": {
|
|
3804
|
+
"type": "string",
|
|
3805
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
3806
|
+
"description": "Identifier of the hook. Should not change between updates."
|
|
3807
|
+
},
|
|
3808
|
+
"name": {
|
|
3809
|
+
"$ref": "#/components/schemas/TranslatedString"
|
|
3810
|
+
},
|
|
3811
|
+
"type": {
|
|
3812
|
+
"type": "string",
|
|
3813
|
+
"enum": [
|
|
3814
|
+
"changePassword"
|
|
3815
|
+
]
|
|
3816
|
+
},
|
|
3817
|
+
"require_new_password": {
|
|
3818
|
+
"type": "boolean",
|
|
3819
|
+
"description": "Whether the portal user must provide a new password. When false, the portal only asks the user to confirm (showing the configured explanation) and no new password is collected; the third-party system is expected to handle the password change. When true, the portal collects a new password and passes it to the third-party system as `{{Input.new_password}}`.\n",
|
|
3820
|
+
"default": false
|
|
3821
|
+
},
|
|
3822
|
+
"explanation": {
|
|
3823
|
+
"type": "object",
|
|
3824
|
+
"properties": {
|
|
3825
|
+
"en": {
|
|
3826
|
+
"type": "string",
|
|
3827
|
+
"description": "Explanation of the functionality shown to the end user.",
|
|
3828
|
+
"example": "You will receive an email with instructions to reset your password."
|
|
3829
|
+
}
|
|
3830
|
+
},
|
|
3831
|
+
"additionalProperties": {
|
|
3832
|
+
"type": "string",
|
|
3833
|
+
"description": "Explanation of the functionality in language denoted by ISO 3166-1 alpha-2 code."
|
|
3834
|
+
},
|
|
3835
|
+
"required": [
|
|
3836
|
+
"en"
|
|
3837
|
+
],
|
|
3838
|
+
"description": "Optional explanation shown to the user in the change password confirmation dialog."
|
|
3839
|
+
},
|
|
3840
|
+
"auth": {
|
|
3841
|
+
"$ref": "#/components/schemas/PortalExtensionAuthBlock"
|
|
3842
|
+
},
|
|
3843
|
+
"call": {
|
|
3844
|
+
"type": "object",
|
|
3845
|
+
"properties": {
|
|
3846
|
+
"method": {
|
|
3847
|
+
"type": "string",
|
|
3848
|
+
"description": "HTTP method to use for the call",
|
|
3849
|
+
"default": "POST"
|
|
3850
|
+
},
|
|
3851
|
+
"url": {
|
|
3852
|
+
"type": "string",
|
|
3853
|
+
"description": "URL to call. Supports variable interpolation."
|
|
3854
|
+
},
|
|
3855
|
+
"params": {
|
|
3856
|
+
"type": "object",
|
|
3857
|
+
"description": "Parameters to append to the URL. Supports variable interpolation.",
|
|
3858
|
+
"additionalProperties": {
|
|
3859
|
+
"type": "string"
|
|
3860
|
+
},
|
|
3861
|
+
"default": {}
|
|
3862
|
+
},
|
|
3863
|
+
"headers": {
|
|
3864
|
+
"type": "object",
|
|
3865
|
+
"description": "Headers to use. Supports variable interpolation.",
|
|
3866
|
+
"additionalProperties": {
|
|
3867
|
+
"type": "string"
|
|
3868
|
+
},
|
|
3869
|
+
"default": {}
|
|
3870
|
+
},
|
|
3871
|
+
"body": {
|
|
3872
|
+
"type": "object",
|
|
3873
|
+
"description": "Optional JSON body to use for the call. Defaults to an object with portal user context (and the new password as `{{Input.new_password}}` when `require_new_password` is true). Supports variable interpolation."
|
|
3874
|
+
}
|
|
3875
|
+
},
|
|
3876
|
+
"required": [
|
|
3877
|
+
"url",
|
|
3878
|
+
"headers"
|
|
3879
|
+
],
|
|
3880
|
+
"additionalProperties": false
|
|
3881
|
+
},
|
|
3882
|
+
"resolved": {
|
|
3883
|
+
"type": "object",
|
|
3884
|
+
"properties": {
|
|
3885
|
+
"error_message_path": {
|
|
3886
|
+
"type": "string",
|
|
3887
|
+
"description": "Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).\nIf specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.\n",
|
|
3888
|
+
"example": "error.message"
|
|
3889
|
+
}
|
|
3890
|
+
},
|
|
3891
|
+
"additionalProperties": false
|
|
3892
|
+
},
|
|
3893
|
+
"secure_proxy": {
|
|
3894
|
+
"$ref": "#/components/schemas/PortalExtensionSecureProxy"
|
|
3895
|
+
}
|
|
3896
|
+
},
|
|
3897
|
+
"required": [
|
|
3898
|
+
"id",
|
|
3899
|
+
"type",
|
|
3900
|
+
"call"
|
|
3901
|
+
],
|
|
3902
|
+
"additionalProperties": false
|
|
3903
|
+
},
|
|
3904
|
+
"PortalExtensionHookDeleteAccount": {
|
|
3905
|
+
"description": "Hook that replaces the built-in delete account functionality for portal users. When configured, the portal does not delete the user itself. Instead, this hook makes an HTTP call to the third-party system, which is expected to handle the deletion.\nThe `deletion_mode` controls what the portal does after the call:\n - `synchronous`: The third-party system deletes the user immediately. The portal waits for a successful (2xx) response and then also deletes the corresponding epilot Cognito user.\n - `asynchronous`: The third-party system handles deletion out-of-band. The portal does not delete anything immediately; cleanup is expected to happen later (e.g. via the user deletion API or webhooks).\n\nThe optional `delete_contact` additionally deletes the contact related to the portal user, once the portal user itself was deleted (`synchronous` mode only).\n\nThe expected response http status code to the call is:\n - 2xx if the request was accepted\n - non-2xx if the request failed (optionally with a human-readable message resolved via `resolved.error_message_path`)\n",
|
|
3906
|
+
"type": "object",
|
|
3907
|
+
"properties": {
|
|
3908
|
+
"id": {
|
|
3909
|
+
"type": "string",
|
|
3910
|
+
"pattern": "^[a-zA-Z0-9_-]+$",
|
|
3911
|
+
"description": "Identifier of the hook. Should not change between updates."
|
|
3912
|
+
},
|
|
3913
|
+
"name": {
|
|
3914
|
+
"$ref": "#/components/schemas/TranslatedString"
|
|
3915
|
+
},
|
|
3916
|
+
"type": {
|
|
3917
|
+
"type": "string",
|
|
3918
|
+
"enum": [
|
|
3919
|
+
"deleteAccount"
|
|
3920
|
+
]
|
|
3921
|
+
},
|
|
3922
|
+
"deletion_mode": {
|
|
3923
|
+
"type": "string",
|
|
3924
|
+
"enum": [
|
|
3925
|
+
"synchronous",
|
|
3926
|
+
"asynchronous"
|
|
3927
|
+
],
|
|
3928
|
+
"description": "Controls how the account deletion is handled. `synchronous` waits for the third-party system to respond and then also deletes the epilot user. `asynchronous` hands the deletion over entirely to the third-party system and the portal does not delete anything immediately.\n",
|
|
3929
|
+
"default": "synchronous"
|
|
3930
|
+
},
|
|
3931
|
+
"delete_contact": {
|
|
3932
|
+
"type": "string",
|
|
3933
|
+
"enum": [
|
|
3934
|
+
"none",
|
|
3935
|
+
"soft",
|
|
3936
|
+
"hard"
|
|
3937
|
+
],
|
|
3938
|
+
"description": "Opt-in deletion of the contact related to the portal user, applied after the portal user itself was deleted. `none` (default) leaves the contact untouched. `soft` deletes the contact, so it can still be restored from the trash. `hard` permanently purges the contact. Only applied in `synchronous` deletion mode, as `asynchronous` mode hands the cleanup over to the third-party system.\n",
|
|
3939
|
+
"default": "none"
|
|
3940
|
+
},
|
|
3941
|
+
"explanation": {
|
|
3942
|
+
"type": "object",
|
|
3943
|
+
"properties": {
|
|
3944
|
+
"en": {
|
|
3945
|
+
"type": "string",
|
|
3946
|
+
"description": "Explanation of the functionality shown to the end user.",
|
|
3947
|
+
"example": "Your account deletion will be processed by our system. This may take a few days."
|
|
3948
|
+
}
|
|
3949
|
+
},
|
|
3950
|
+
"additionalProperties": {
|
|
3951
|
+
"type": "string",
|
|
3952
|
+
"description": "Explanation of the functionality in language denoted by ISO 3166-1 alpha-2 code."
|
|
3953
|
+
},
|
|
3954
|
+
"required": [
|
|
3955
|
+
"en"
|
|
3956
|
+
],
|
|
3957
|
+
"description": "Optional explanation shown to the user in the delete account confirmation dialog."
|
|
3958
|
+
},
|
|
3959
|
+
"auth": {
|
|
3960
|
+
"$ref": "#/components/schemas/PortalExtensionAuthBlock"
|
|
3961
|
+
},
|
|
3962
|
+
"call": {
|
|
3963
|
+
"type": "object",
|
|
3964
|
+
"properties": {
|
|
3965
|
+
"method": {
|
|
3966
|
+
"type": "string",
|
|
3967
|
+
"description": "HTTP method to use for the call",
|
|
3968
|
+
"default": "POST"
|
|
3969
|
+
},
|
|
3970
|
+
"url": {
|
|
3971
|
+
"type": "string",
|
|
3972
|
+
"description": "URL to call. Supports variable interpolation."
|
|
3973
|
+
},
|
|
3974
|
+
"params": {
|
|
3975
|
+
"type": "object",
|
|
3976
|
+
"description": "Parameters to append to the URL. Supports variable interpolation.",
|
|
3977
|
+
"additionalProperties": {
|
|
3978
|
+
"type": "string"
|
|
3979
|
+
},
|
|
3980
|
+
"default": {}
|
|
3981
|
+
},
|
|
3982
|
+
"headers": {
|
|
3983
|
+
"type": "object",
|
|
3984
|
+
"description": "Headers to use. Supports variable interpolation.",
|
|
3985
|
+
"additionalProperties": {
|
|
3986
|
+
"type": "string"
|
|
3987
|
+
},
|
|
3988
|
+
"default": {}
|
|
3989
|
+
},
|
|
3990
|
+
"body": {
|
|
3991
|
+
"type": "object",
|
|
3992
|
+
"description": "Optional JSON body to use for the call. Defaults to an object with portal user context, e.g. `{\"portal_user_id\": \"...\", \"email\": \"...\"}`. Supports variable interpolation."
|
|
3993
|
+
}
|
|
3994
|
+
},
|
|
3995
|
+
"required": [
|
|
3996
|
+
"url",
|
|
3997
|
+
"headers"
|
|
3998
|
+
],
|
|
3999
|
+
"additionalProperties": false
|
|
4000
|
+
},
|
|
4001
|
+
"resolved": {
|
|
4002
|
+
"type": "object",
|
|
4003
|
+
"properties": {
|
|
4004
|
+
"error_message_path": {
|
|
4005
|
+
"type": "string",
|
|
4006
|
+
"description": "Optional path to a human-readable error message in the third-party response body, used when the call fails (non-2xx status).\nIf specified and the path resolves to a string, that message is forwarded to the end user instead of a generic error.\n",
|
|
4007
|
+
"example": "error.message"
|
|
4008
|
+
}
|
|
4009
|
+
},
|
|
4010
|
+
"additionalProperties": false
|
|
4011
|
+
},
|
|
4012
|
+
"secure_proxy": {
|
|
4013
|
+
"$ref": "#/components/schemas/PortalExtensionSecureProxy"
|
|
4014
|
+
}
|
|
4015
|
+
},
|
|
4016
|
+
"required": [
|
|
4017
|
+
"id",
|
|
4018
|
+
"type",
|
|
4019
|
+
"call"
|
|
4020
|
+
],
|
|
4021
|
+
"additionalProperties": false
|
|
4022
|
+
},
|
|
3574
4023
|
"PortalExtensionSeamlessLink": {
|
|
3575
4024
|
"type": "object",
|
|
3576
4025
|
"properties": {
|
|
@@ -4358,8 +4807,7 @@
|
|
|
4358
4807
|
},
|
|
4359
4808
|
"target": {
|
|
4360
4809
|
"type": "string",
|
|
4361
|
-
"
|
|
4362
|
-
"description": "Base URL of the target API. Must be HTTPS.",
|
|
4810
|
+
"description": "Base URL of the target API. Must be HTTPS. May reference component options via {{option_key}} interpolation (resolved from decrypted values), e.g. \"https://{{cluster}}.example.com/api\" for a per-installation host. The fully-resolved URL is validated at request time (SSRF protection).",
|
|
4363
4811
|
"pattern": "^https://"
|
|
4364
4812
|
},
|
|
4365
4813
|
"auth_type": {
|
|
@@ -4381,6 +4829,13 @@
|
|
|
4381
4829
|
"format": "uri",
|
|
4382
4830
|
"description": "OAuth2 token endpoint URL",
|
|
4383
4831
|
"pattern": "^https://"
|
|
4832
|
+
},
|
|
4833
|
+
"headers": {
|
|
4834
|
+
"type": "object",
|
|
4835
|
+
"description": "Additional request headers injected server-side on every proxied request. Values may reference component options via {{option_key}} interpolation (resolved from decrypted secrets), so credentials are never exposed to the client. Applied in addition to auth_type.",
|
|
4836
|
+
"additionalProperties": {
|
|
4837
|
+
"type": "string"
|
|
4838
|
+
}
|
|
4384
4839
|
}
|
|
4385
4840
|
}
|
|
4386
4841
|
},
|
package/dist/bin/epilot.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
API_LIST
|
|
4
|
-
} from "../chunk-
|
|
4
|
+
} from "../chunk-Z6XZLCPF.js";
|
|
5
5
|
|
|
6
6
|
// bin/epilot.ts
|
|
7
7
|
import { runMain } from "citty";
|
|
@@ -11,7 +11,7 @@ import { defineCommand } from "citty";
|
|
|
11
11
|
var main = defineCommand({
|
|
12
12
|
meta: {
|
|
13
13
|
name: "epilot",
|
|
14
|
-
version: "0.1.
|
|
14
|
+
version: "0.1.76",
|
|
15
15
|
description: "CLI for epilot APIs"
|
|
16
16
|
},
|
|
17
17
|
args: {
|
|
@@ -30,8 +30,8 @@ var main = defineCommand({
|
|
|
30
30
|
auth: () => import("../auth-4HG7B2GC.js").then((m) => m.default),
|
|
31
31
|
profile: () => import("../profile-OZJL5ZPT.js").then((m) => m.default),
|
|
32
32
|
config: () => import("../config-DGZIMLZK.js").then((m) => m.default),
|
|
33
|
-
completion: () => import("../completion-
|
|
34
|
-
upgrade: () => import("../upgrade-
|
|
33
|
+
completion: () => import("../completion-SRBQ67FX.js").then((m) => m.default),
|
|
34
|
+
upgrade: () => import("../upgrade-VBSV2FKU.js").then((m) => m.default),
|
|
35
35
|
"access-token": () => import("../access-token-WWE6BDJH.js").then((m) => m.default),
|
|
36
36
|
address: () => import("../address-EH3C4CVB.js").then((m) => m.default),
|
|
37
37
|
"address-suggestions": () => import("../address-suggestions-RRSLOBFW.js").then((m) => m.default),
|
|
@@ -134,13 +134,13 @@ process.stderr.on("error", (err) => {
|
|
|
134
134
|
if (err.code === "EPIPE") process.exit(0);
|
|
135
135
|
throw err;
|
|
136
136
|
});
|
|
137
|
-
var VERSION = true ? "0.1.
|
|
137
|
+
var VERSION = true ? "0.1.76" : (await null).default.version;
|
|
138
138
|
var reorderedArgv = hoistFlagsAfterSubcommand(process.argv.slice(2));
|
|
139
139
|
process.argv = [process.argv[0], process.argv[1], ...reorderedArgv];
|
|
140
140
|
var args = process.argv.slice(2);
|
|
141
141
|
var completionsIdx = args.indexOf("--_completions");
|
|
142
142
|
if (completionsIdx >= 0) {
|
|
143
|
-
const { handleCompletions } = await import("../completion-
|
|
143
|
+
const { handleCompletions } = await import("../completion-SRBQ67FX.js");
|
|
144
144
|
handleCompletions(args[completionsIdx + 1], args[completionsIdx + 2]);
|
|
145
145
|
process.exit(0);
|
|
146
146
|
}
|
|
@@ -69,7 +69,7 @@ var API_LIST = [
|
|
|
69
69
|
kebabName: "app",
|
|
70
70
|
title: "App API",
|
|
71
71
|
serverUrl: "https://app.sls.epilot.io",
|
|
72
|
-
operationCount:
|
|
72
|
+
operationCount: 35,
|
|
73
73
|
operationIds: [
|
|
74
74
|
"getPublicFacingComponent",
|
|
75
75
|
"listConfigurations",
|
|
@@ -102,7 +102,10 @@ var API_LIST = [
|
|
|
102
102
|
"promoteVersion",
|
|
103
103
|
"ingestEvent",
|
|
104
104
|
"publicProxyGet",
|
|
105
|
-
"publicProxyPost"
|
|
105
|
+
"publicProxyPost",
|
|
106
|
+
"publicProxyPut",
|
|
107
|
+
"publicProxyPatch",
|
|
108
|
+
"publicProxyDelete"
|
|
106
109
|
]
|
|
107
110
|
},
|
|
108
111
|
{
|
|
@@ -72,7 +72,7 @@ ${GREEN}${BOLD}Upgraded to @epilot/cli@${latest}${RESET}
|
|
|
72
72
|
}
|
|
73
73
|
});
|
|
74
74
|
var getCurrentVersion = () => {
|
|
75
|
-
if (true) return "0.1.
|
|
75
|
+
if (true) return "0.1.76";
|
|
76
76
|
try {
|
|
77
77
|
const output = execSync("npm ls -g @epilot/cli --depth=0 --json 2>/dev/null", {
|
|
78
78
|
encoding: "utf-8",
|