@widgetic/api-sdk 1.0.31 → 1.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apis/CompositionsApi.d.ts +17 -13
- package/dist/apis/CompositionsApi.js +19 -12
- package/dist/apis/PartnerApi.d.ts +77 -16
- package/dist/apis/PartnerApi.js +186 -12
- package/dist/apis/PartnersApi.d.ts +58 -1
- package/dist/apis/PartnersApi.js +167 -0
- package/dist/apis/PublicEmbedApi.d.ts +42 -3
- package/dist/apis/PublicEmbedApi.js +99 -2
- package/dist/apis/index.d.ts +0 -4
- package/dist/apis/index.js +0 -4
- package/dist/esm/apis/CompositionsApi.d.ts +17 -13
- package/dist/esm/apis/CompositionsApi.js +20 -13
- package/dist/esm/apis/PartnerApi.d.ts +77 -16
- package/dist/esm/apis/PartnerApi.js +187 -13
- package/dist/esm/apis/PartnersApi.d.ts +58 -1
- package/dist/esm/apis/PartnersApi.js +168 -1
- package/dist/esm/apis/PublicEmbedApi.d.ts +42 -3
- package/dist/esm/apis/PublicEmbedApi.js +100 -3
- package/dist/esm/apis/index.d.ts +0 -4
- package/dist/esm/apis/index.js +0 -4
- package/dist/esm/models/Composition.d.ts +12 -0
- package/dist/esm/models/Composition.js +2 -0
- package/dist/esm/models/CompositionDataSource.d.ts +41 -0
- package/dist/esm/models/CompositionDataSource.js +47 -0
- package/dist/esm/models/CompositionEntriesReading.d.ts +20 -4
- package/dist/esm/models/CompositionEntriesReading.js +3 -0
- package/dist/esm/models/CompositionEntryAggregateTally.d.ts +15 -8
- package/dist/esm/models/CompositionEntryAggregatesBlock.d.ts +10 -0
- package/dist/esm/models/CompositionEntryItem.d.ts +4 -1
- package/dist/esm/models/CompositionEntryItemsMeta.d.ts +8 -0
- package/dist/esm/models/DeleteCompositionDataSource200Response.d.ts +32 -0
- package/dist/esm/models/DeleteCompositionDataSource200Response.js +43 -0
- package/dist/esm/models/GetPublicCompositionEmbed200Response.d.ts +106 -0
- package/dist/esm/models/GetPublicCompositionEmbed200Response.js +67 -0
- package/dist/esm/models/GetPublicCompositionEmbed200ResponseDataSource.d.ts +38 -0
- package/dist/esm/models/GetPublicCompositionEmbed200ResponseDataSource.js +43 -0
- package/dist/esm/models/GetPublicCompositionEmbed200ResponseDirect.d.ts +44 -0
- package/dist/esm/models/GetPublicCompositionEmbed200ResponseDirect.js +45 -0
- package/dist/esm/models/GetPublicCompositionEmbed403Response.d.ts +51 -0
- package/dist/esm/models/GetPublicCompositionEmbed403Response.js +48 -0
- package/dist/esm/models/GetPublicCompositionEmbed403ResponseDetails.d.ts +46 -0
- package/dist/esm/models/GetPublicCompositionEmbed403ResponseDetails.js +50 -0
- package/dist/esm/models/GetPublicCompositionEmbed404Response.d.ts +47 -0
- package/dist/esm/models/GetPublicCompositionEmbed404Response.js +51 -0
- package/dist/esm/models/GetPublicCompositionEmbed429Response.d.ts +38 -0
- package/dist/esm/models/GetPublicCompositionEmbed429Response.js +43 -0
- package/dist/esm/models/ManagedUserEntryItem.d.ts +4 -1
- package/dist/esm/models/PartnerEntryContextSecret.d.ts +39 -0
- package/dist/esm/models/PartnerEntryContextSecret.js +48 -0
- package/dist/esm/models/PartnerEntryContextSigning.d.ts +62 -0
- package/dist/esm/models/PartnerEntryContextSigning.js +63 -0
- package/dist/esm/models/PartnerNotification.d.ts +1 -1
- package/dist/esm/models/PartnerNotificationTestEventRequest.d.ts +33 -0
- package/dist/esm/models/PartnerNotificationTestEventRequest.js +44 -0
- package/dist/esm/models/PartnerNotificationTestEventResult.d.ts +50 -0
- package/dist/esm/models/PartnerNotificationTestEventResult.js +53 -0
- package/dist/esm/models/PostPublicCompositionEmbedStatus200Response.d.ts +39 -0
- package/dist/esm/models/PostPublicCompositionEmbedStatus200Response.js +44 -0
- package/dist/esm/models/PostPublicCompositionEmbedStatus200ResponseData.d.ts +45 -0
- package/dist/esm/models/PostPublicCompositionEmbedStatus200ResponseData.js +51 -0
- package/dist/esm/models/PostPublicCompositionEmbedStatus429Response.d.ts +32 -0
- package/dist/esm/models/PostPublicCompositionEmbedStatus429Response.js +41 -0
- package/dist/esm/models/PostPublicCompositionEmbedStatusRequest.d.ts +32 -0
- package/dist/esm/models/PostPublicCompositionEmbedStatusRequest.js +43 -0
- package/dist/esm/models/PublicCompositionEntryRequest.d.ts +1 -1
- package/dist/esm/models/UpdatePartnerEntryContextSigningRequest.d.ts +32 -0
- package/dist/esm/models/UpdatePartnerEntryContextSigningRequest.js +43 -0
- package/dist/esm/models/index.d.ts +18 -77
- package/dist/esm/models/index.js +18 -77
- package/dist/models/Composition.d.ts +12 -0
- package/dist/models/Composition.js +2 -0
- package/dist/models/CompositionDataSource.d.ts +41 -0
- package/dist/models/CompositionDataSource.js +54 -0
- package/dist/models/CompositionEntriesReading.d.ts +20 -4
- package/dist/models/CompositionEntriesReading.js +3 -0
- package/dist/models/CompositionEntryAggregateTally.d.ts +15 -8
- package/dist/models/CompositionEntryAggregatesBlock.d.ts +10 -0
- package/dist/models/CompositionEntryItem.d.ts +4 -1
- package/dist/models/CompositionEntryItemsMeta.d.ts +8 -0
- package/dist/models/DeleteCompositionDataSource200Response.d.ts +32 -0
- package/dist/models/DeleteCompositionDataSource200Response.js +50 -0
- package/dist/models/GetPublicCompositionEmbed200Response.d.ts +106 -0
- package/dist/models/GetPublicCompositionEmbed200Response.js +74 -0
- package/dist/models/GetPublicCompositionEmbed200ResponseDataSource.d.ts +38 -0
- package/dist/models/GetPublicCompositionEmbed200ResponseDataSource.js +50 -0
- package/dist/models/GetPublicCompositionEmbed200ResponseDirect.d.ts +44 -0
- package/dist/models/GetPublicCompositionEmbed200ResponseDirect.js +52 -0
- package/dist/models/GetPublicCompositionEmbed403Response.d.ts +51 -0
- package/dist/models/GetPublicCompositionEmbed403Response.js +55 -0
- package/dist/models/GetPublicCompositionEmbed403ResponseDetails.d.ts +46 -0
- package/dist/models/GetPublicCompositionEmbed403ResponseDetails.js +58 -0
- package/dist/models/GetPublicCompositionEmbed404Response.d.ts +47 -0
- package/dist/models/GetPublicCompositionEmbed404Response.js +59 -0
- package/dist/models/GetPublicCompositionEmbed429Response.d.ts +38 -0
- package/dist/models/GetPublicCompositionEmbed429Response.js +50 -0
- package/dist/models/ManagedUserEntryItem.d.ts +4 -1
- package/dist/models/PartnerEntryContextSecret.d.ts +39 -0
- package/dist/models/PartnerEntryContextSecret.js +55 -0
- package/dist/models/PartnerEntryContextSigning.d.ts +62 -0
- package/dist/models/PartnerEntryContextSigning.js +70 -0
- package/dist/models/PartnerNotification.d.ts +1 -1
- package/dist/models/PartnerNotificationTestEventRequest.d.ts +33 -0
- package/dist/models/PartnerNotificationTestEventRequest.js +51 -0
- package/dist/models/PartnerNotificationTestEventResult.d.ts +50 -0
- package/dist/models/PartnerNotificationTestEventResult.js +60 -0
- package/dist/models/PostPublicCompositionEmbedStatus200Response.d.ts +39 -0
- package/dist/models/PostPublicCompositionEmbedStatus200Response.js +51 -0
- package/dist/models/PostPublicCompositionEmbedStatus200ResponseData.d.ts +45 -0
- package/dist/models/PostPublicCompositionEmbedStatus200ResponseData.js +59 -0
- package/dist/models/PostPublicCompositionEmbedStatus429Response.d.ts +32 -0
- package/dist/models/PostPublicCompositionEmbedStatus429Response.js +48 -0
- package/dist/models/PostPublicCompositionEmbedStatusRequest.d.ts +32 -0
- package/dist/models/PostPublicCompositionEmbedStatusRequest.js +50 -0
- package/dist/models/PublicCompositionEntryRequest.d.ts +1 -1
- package/dist/models/UpdatePartnerEntryContextSigningRequest.d.ts +32 -0
- package/dist/models/UpdatePartnerEntryContextSigningRequest.js +50 -0
- package/dist/models/index.d.ts +18 -77
- package/dist/models/index.js +18 -77
- package/package.json +1 -1
- package/dist/apis/AgentRepositoryManagementApi.d.ts +0 -32
- package/dist/apis/AgentRepositoryManagementApi.js +0 -75
- package/dist/apis/EnterpriseCustomizationsApi.d.ts +0 -87
- package/dist/apis/EnterpriseCustomizationsApi.js +0 -233
- package/dist/apis/UIComponentsApi.d.ts +0 -96
- package/dist/apis/UIComponentsApi.js +0 -209
- package/dist/apis/WorkflowsApi.d.ts +0 -44
- package/dist/apis/WorkflowsApi.js +0 -111
- package/dist/esm/apis/AgentRepositoryManagementApi.d.ts +0 -32
- package/dist/esm/apis/AgentRepositoryManagementApi.js +0 -71
- package/dist/esm/apis/EnterpriseCustomizationsApi.d.ts +0 -87
- package/dist/esm/apis/EnterpriseCustomizationsApi.js +0 -229
- package/dist/esm/apis/UIComponentsApi.d.ts +0 -96
- package/dist/esm/apis/UIComponentsApi.js +0 -205
- package/dist/esm/apis/WorkflowsApi.d.ts +0 -44
- package/dist/esm/apis/WorkflowsApi.js +0 -107
- package/dist/esm/models/AgentRepositoriesRepoIdSyncPost202Response.d.ts +0 -32
- package/dist/esm/models/AgentRepositoriesRepoIdSyncPost202Response.js +0 -41
- package/dist/esm/models/AgentRepositoriesRepoIdSyncPostRequest.d.ts +0 -32
- package/dist/esm/models/AgentRepositoriesRepoIdSyncPostRequest.js +0 -43
- package/dist/esm/models/AgentTasksTaskIdStatusPutRequest.d.ts +0 -54
- package/dist/esm/models/AgentTasksTaskIdStatusPutRequest.js +0 -60
- package/dist/esm/models/ApiV1AdminBillingGrantsGrantIdRejectPostRequest.d.ts +0 -32
- package/dist/esm/models/ApiV1AdminBillingGrantsGrantIdRejectPostRequest.js +0 -41
- package/dist/esm/models/ApiV1AdminBillingGrantsPostRequest.d.ts +0 -82
- package/dist/esm/models/ApiV1AdminBillingGrantsPostRequest.js +0 -79
- package/dist/esm/models/ApiV1AdminBillingPlansPricesBackfillPostRequest.d.ts +0 -32
- package/dist/esm/models/ApiV1AdminBillingPlansPricesBackfillPostRequest.js +0 -41
- package/dist/esm/models/ApiV1AdminBillingPlansPricesPlanTypeBillingFrequencyPutRequest.d.ts +0 -32
- package/dist/esm/models/ApiV1AdminBillingPlansPricesPlanTypeBillingFrequencyPutRequest.js +0 -43
- package/dist/esm/models/ApiV1AdminBillingRefundsPostRequest.d.ts +0 -64
- package/dist/esm/models/ApiV1AdminBillingRefundsPostRequest.js +0 -60
- package/dist/esm/models/ApiV1AdminBillingRefundsPreviewPost200Response.d.ts +0 -71
- package/dist/esm/models/ApiV1AdminBillingRefundsPreviewPost200Response.js +0 -59
- package/dist/esm/models/ApiV1AdminBillingRefundsPreviewPost200ResponseOrganizationPreview.d.ts +0 -51
- package/dist/esm/models/ApiV1AdminBillingRefundsPreviewPost200ResponseOrganizationPreview.js +0 -48
- package/dist/esm/models/ApiV1AdminBillingRefundsPreviewPostRequest.d.ts +0 -70
- package/dist/esm/models/ApiV1AdminBillingRefundsPreviewPostRequest.js +0 -62
- package/dist/esm/models/ApiV1AdminBillingSubscriptionsSubjectIdCancelPostRequest.d.ts +0 -46
- package/dist/esm/models/ApiV1AdminBillingSubscriptionsSubjectIdCancelPostRequest.js +0 -52
- package/dist/esm/models/ApiV1BillingPricingGet200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1BillingPricingGet200Response.js +0 -44
- package/dist/esm/models/ApiV1BillingPricingGet200ResponseData.d.ts +0 -46
- package/dist/esm/models/ApiV1BillingPricingGet200ResponseData.js +0 -47
- package/dist/esm/models/ApiV1BillingPricingGet200ResponseDataPlansInner.d.ts +0 -68
- package/dist/esm/models/ApiV1BillingPricingGet200ResponseDataPlansInner.js +0 -53
- package/dist/esm/models/ApiV1BillingPricingGet200ResponseDataTrial.d.ts +0 -44
- package/dist/esm/models/ApiV1BillingPricingGet200ResponseDataTrial.js +0 -45
- package/dist/esm/models/ApiV1BillingUsersUserIdInvoicesGet200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1BillingUsersUserIdInvoicesGet200Response.js +0 -44
- package/dist/esm/models/ApiV1BillingUsersUserIdInvoicesGet200ResponseData.d.ts +0 -33
- package/dist/esm/models/ApiV1BillingUsersUserIdInvoicesGet200ResponseData.js +0 -42
- package/dist/esm/models/ApiV1BillingUsersUserIdInvoicesGet200ResponseDataInvoicesInner.d.ts +0 -68
- package/dist/esm/models/ApiV1BillingUsersUserIdInvoicesGet200ResponseDataInvoicesInner.js +0 -53
- package/dist/esm/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDefaultPut200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDefaultPut200Response.js +0 -44
- package/dist/esm/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDefaultPut200ResponseData.d.ts +0 -32
- package/dist/esm/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDefaultPut200ResponseData.js +0 -41
- package/dist/esm/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDelete200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDelete200Response.js +0 -44
- package/dist/esm/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDelete200ResponseData.d.ts +0 -32
- package/dist/esm/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDelete200ResponseData.js +0 -41
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionCancelPost200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionCancelPost200Response.js +0 -44
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionCancelPost200ResponseData.d.ts +0 -32
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionCancelPost200ResponseData.js +0 -41
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionCancelPostRequest.d.ts +0 -32
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionCancelPostRequest.js +0 -41
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionGet200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionGet200Response.js +0 -44
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionGet200ResponseData.d.ts +0 -120
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionGet200ResponseData.js +0 -76
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPayPost200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPayPost200Response.js +0 -44
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPayPost200ResponseData.d.ts +0 -38
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPayPost200ResponseData.js +0 -43
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPost200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPost200Response.js +0 -44
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPost200ResponseData.d.ts +0 -38
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPost200ResponseData.js +0 -43
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPostRequest.d.ts +0 -53
- package/dist/esm/models/ApiV1BillingUsersUserIdSubscriptionPostRequest.js +0 -58
- package/dist/esm/models/ApiV1MetricsGet200Response.d.ts +0 -39
- package/dist/esm/models/ApiV1MetricsGet200Response.js +0 -44
- package/dist/esm/models/ApiV1MetricsGet200ResponseData.d.ts +0 -56
- package/dist/esm/models/ApiV1MetricsGet200ResponseData.js +0 -50
- package/dist/esm/models/ApiV1MetricsGet200ResponseDataErrorsValue.d.ts +0 -44
- package/dist/esm/models/ApiV1MetricsGet200ResponseDataErrorsValue.js +0 -45
- package/dist/esm/models/ApiV1MetricsGet200ResponseDataLatencyValue.d.ts +0 -50
- package/dist/esm/models/ApiV1MetricsGet200ResponseDataLatencyValue.js +0 -47
- package/dist/esm/models/ApiV1MetricsLatencyGet200Response.d.ts +0 -41
- package/dist/esm/models/ApiV1MetricsLatencyGet200Response.js +0 -45
- package/dist/esm/models/ApiV1MetricsLatencyGet200ResponseDataValue.d.ts +0 -62
- package/dist/esm/models/ApiV1MetricsLatencyGet200ResponseDataValue.js +0 -51
- package/dist/esm/models/ApiV1SubscriptionsIdRefundPreviewPost200Response.d.ts +0 -71
- package/dist/esm/models/ApiV1SubscriptionsIdRefundPreviewPost200Response.js +0 -59
- package/dist/esm/models/ApiV1SubscriptionsIdRefundPreviewPost200ResponseOrganizationPreview.d.ts +0 -51
- package/dist/esm/models/ApiV1SubscriptionsIdRefundPreviewPost200ResponseOrganizationPreview.js +0 -48
- package/dist/esm/models/ApiV1SubscriptionsIdRefundPreviewPost200ResponseOrganizationPreviewSharesInner.d.ts +0 -38
- package/dist/esm/models/ApiV1SubscriptionsIdRefundPreviewPost200ResponseOrganizationPreviewSharesInner.js +0 -43
- package/dist/esm/models/ApiV1SubscriptionsIdRefundPreviewPostRequest.d.ts +0 -44
- package/dist/esm/models/ApiV1SubscriptionsIdRefundPreviewPostRequest.js +0 -45
- package/dist/esm/models/CancelCurrentSubscription200Response.d.ts +0 -45
- package/dist/esm/models/CancelCurrentSubscription200Response.js +0 -46
- package/dist/esm/models/CancelCurrentSubscriptionRequest.d.ts +0 -44
- package/dist/esm/models/CancelCurrentSubscriptionRequest.js +0 -45
- package/dist/esm/models/CanvasesCanvasIdComponentsComponentIdPublishPost202Response.d.ts +0 -38
- package/dist/esm/models/CanvasesCanvasIdComponentsComponentIdPublishPost202Response.js +0 -43
- package/dist/esm/models/CanvasesCanvasIdComponentsComponentIdPublishPostRequest.d.ts +0 -38
- package/dist/esm/models/CanvasesCanvasIdComponentsComponentIdPublishPostRequest.js +0 -47
- package/dist/esm/models/ComponentManifest.d.ts +0 -52
- package/dist/esm/models/ComponentManifest.js +0 -49
- package/dist/esm/models/ComponentManifestAssets.d.ts +0 -38
- package/dist/esm/models/ComponentManifestAssets.js +0 -43
- package/dist/esm/models/ComponentManifestConfig.d.ts +0 -44
- package/dist/esm/models/ComponentManifestConfig.js +0 -45
- package/dist/esm/models/CreateCheckoutSession200Response.d.ts +0 -38
- package/dist/esm/models/CreateCheckoutSession200Response.js +0 -43
- package/dist/esm/models/CreateCheckoutSessionRequest.d.ts +0 -32
- package/dist/esm/models/CreateCheckoutSessionRequest.js +0 -43
- package/dist/esm/models/CreateComposition201Response.d.ts +0 -39
- package/dist/esm/models/CreateComposition201Response.js +0 -44
- package/dist/esm/models/DevelopmentPlan.d.ts +0 -97
- package/dist/esm/models/DevelopmentPlan.js +0 -69
- package/dist/esm/models/DevelopmentTask.d.ts +0 -90
- package/dist/esm/models/DevelopmentTask.js +0 -66
- package/dist/esm/models/EnterpriseCustomization.d.ts +0 -125
- package/dist/esm/models/EnterpriseCustomization.js +0 -77
- package/dist/esm/models/GenerateComponentWorkflowInput.d.ts +0 -56
- package/dist/esm/models/GenerateComponentWorkflowInput.js +0 -55
- package/dist/esm/models/GenerateMixedComponentInput.d.ts +0 -62
- package/dist/esm/models/GenerateMixedComponentInput.js +0 -59
- package/dist/esm/models/GetOrganizationStorageUsage200ResponseDataBreakdown.d.ts +0 -44
- package/dist/esm/models/GetOrganizationStorageUsage200ResponseDataBreakdown.js +0 -45
- package/dist/esm/models/ListComponents200Response.d.ts +0 -33
- package/dist/esm/models/ListComponents200Response.js +0 -42
- package/dist/esm/models/ListEnterpriseCustomizations200Response.d.ts +0 -40
- package/dist/esm/models/ListEnterpriseCustomizations200Response.js +0 -45
- package/dist/esm/models/ListEnterpriseCustomizations200ResponsePagination.d.ts +0 -50
- package/dist/esm/models/ListEnterpriseCustomizations200ResponsePagination.js +0 -47
- package/dist/esm/models/MountRequest.d.ts +0 -45
- package/dist/esm/models/MountRequest.js +0 -48
- package/dist/esm/models/MountRequestTheme.d.ts +0 -54
- package/dist/esm/models/MountRequestTheme.js +0 -54
- package/dist/esm/models/MountRequestThemeColors.d.ts +0 -50
- package/dist/esm/models/MountRequestThemeColors.js +0 -47
- package/dist/esm/models/MountRequestThemeTypography.d.ts +0 -38
- package/dist/esm/models/MountRequestThemeTypography.js +0 -43
- package/dist/esm/models/MountResponse.d.ts +0 -46
- package/dist/esm/models/MountResponse.js +0 -50
- package/dist/esm/models/NewWidgetComponentsMetadataInner.d.ts +0 -64
- package/dist/esm/models/NewWidgetComponentsMetadataInner.js +0 -53
- package/dist/esm/models/NewWidgetComponentsMetadataInnerPosition.d.ts +0 -38
- package/dist/esm/models/NewWidgetComponentsMetadataInnerPosition.js +0 -43
- package/dist/esm/models/NewWidgetComponentsMetadataInnerSize.d.ts +0 -38
- package/dist/esm/models/NewWidgetComponentsMetadataInnerSize.js +0 -43
- package/dist/esm/models/PurchaseStoragePack200ResponseDataPaymentIntent.d.ts +0 -50
- package/dist/esm/models/PurchaseStoragePack200ResponseDataPaymentIntent.js +0 -47
- package/dist/esm/models/RollbackComponentRequest.d.ts +0 -38
- package/dist/esm/models/RollbackComponentRequest.js +0 -45
- package/dist/esm/models/UIComponent.d.ts +0 -65
- package/dist/esm/models/UIComponent.js +0 -57
- package/dist/esm/models/UpdateCompositionRequest.d.ts +0 -38
- package/dist/esm/models/UpdateCompositionRequest.js +0 -43
- package/dist/esm/models/UpdateCurrentSubscriptionRequest.d.ts +0 -38
- package/dist/esm/models/UpdateCurrentSubscriptionRequest.js +0 -43
- package/dist/esm/models/UpdateEnterpriseCustomizationRequest.d.ts +0 -95
- package/dist/esm/models/UpdateEnterpriseCustomizationRequest.js +0 -67
- package/dist/esm/models/WorkflowAcceptedResponse.d.ts +0 -38
- package/dist/esm/models/WorkflowAcceptedResponse.js +0 -43
- package/dist/models/AgentRepositoriesRepoIdSyncPost202Response.d.ts +0 -32
- package/dist/models/AgentRepositoriesRepoIdSyncPost202Response.js +0 -48
- package/dist/models/AgentRepositoriesRepoIdSyncPostRequest.d.ts +0 -32
- package/dist/models/AgentRepositoriesRepoIdSyncPostRequest.js +0 -50
- package/dist/models/AgentTasksTaskIdStatusPutRequest.d.ts +0 -54
- package/dist/models/AgentTasksTaskIdStatusPutRequest.js +0 -68
- package/dist/models/ApiV1AdminBillingGrantsGrantIdRejectPostRequest.d.ts +0 -32
- package/dist/models/ApiV1AdminBillingGrantsGrantIdRejectPostRequest.js +0 -48
- package/dist/models/ApiV1AdminBillingGrantsPostRequest.d.ts +0 -82
- package/dist/models/ApiV1AdminBillingGrantsPostRequest.js +0 -87
- package/dist/models/ApiV1AdminBillingPlansPricesBackfillPostRequest.d.ts +0 -32
- package/dist/models/ApiV1AdminBillingPlansPricesBackfillPostRequest.js +0 -48
- package/dist/models/ApiV1AdminBillingPlansPricesPlanTypeBillingFrequencyPutRequest.d.ts +0 -32
- package/dist/models/ApiV1AdminBillingPlansPricesPlanTypeBillingFrequencyPutRequest.js +0 -50
- package/dist/models/ApiV1AdminBillingRefundsPostRequest.d.ts +0 -64
- package/dist/models/ApiV1AdminBillingRefundsPostRequest.js +0 -68
- package/dist/models/ApiV1AdminBillingRefundsPreviewPost200Response.d.ts +0 -71
- package/dist/models/ApiV1AdminBillingRefundsPreviewPost200Response.js +0 -67
- package/dist/models/ApiV1AdminBillingRefundsPreviewPost200ResponseOrganizationPreview.d.ts +0 -51
- package/dist/models/ApiV1AdminBillingRefundsPreviewPost200ResponseOrganizationPreview.js +0 -55
- package/dist/models/ApiV1AdminBillingRefundsPreviewPostRequest.d.ts +0 -70
- package/dist/models/ApiV1AdminBillingRefundsPreviewPostRequest.js +0 -70
- package/dist/models/ApiV1AdminBillingSubscriptionsSubjectIdCancelPostRequest.d.ts +0 -46
- package/dist/models/ApiV1AdminBillingSubscriptionsSubjectIdCancelPostRequest.js +0 -60
- package/dist/models/ApiV1BillingPricingGet200Response.d.ts +0 -39
- package/dist/models/ApiV1BillingPricingGet200Response.js +0 -51
- package/dist/models/ApiV1BillingPricingGet200ResponseData.d.ts +0 -46
- package/dist/models/ApiV1BillingPricingGet200ResponseData.js +0 -54
- package/dist/models/ApiV1BillingPricingGet200ResponseDataPlansInner.d.ts +0 -68
- package/dist/models/ApiV1BillingPricingGet200ResponseDataPlansInner.js +0 -60
- package/dist/models/ApiV1BillingPricingGet200ResponseDataTrial.d.ts +0 -44
- package/dist/models/ApiV1BillingPricingGet200ResponseDataTrial.js +0 -52
- package/dist/models/ApiV1BillingUsersUserIdInvoicesGet200Response.d.ts +0 -39
- package/dist/models/ApiV1BillingUsersUserIdInvoicesGet200Response.js +0 -51
- package/dist/models/ApiV1BillingUsersUserIdInvoicesGet200ResponseData.d.ts +0 -33
- package/dist/models/ApiV1BillingUsersUserIdInvoicesGet200ResponseData.js +0 -49
- package/dist/models/ApiV1BillingUsersUserIdInvoicesGet200ResponseDataInvoicesInner.d.ts +0 -68
- package/dist/models/ApiV1BillingUsersUserIdInvoicesGet200ResponseDataInvoicesInner.js +0 -60
- package/dist/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDefaultPut200Response.d.ts +0 -39
- package/dist/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDefaultPut200Response.js +0 -51
- package/dist/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDefaultPut200ResponseData.d.ts +0 -32
- package/dist/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDefaultPut200ResponseData.js +0 -48
- package/dist/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDelete200Response.d.ts +0 -39
- package/dist/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDelete200Response.js +0 -51
- package/dist/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDelete200ResponseData.d.ts +0 -32
- package/dist/models/ApiV1BillingUsersUserIdPaymentMethodsPaymentMethodIdDelete200ResponseData.js +0 -48
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionCancelPost200Response.d.ts +0 -39
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionCancelPost200Response.js +0 -51
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionCancelPost200ResponseData.d.ts +0 -32
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionCancelPost200ResponseData.js +0 -48
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionCancelPostRequest.d.ts +0 -32
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionCancelPostRequest.js +0 -48
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionGet200Response.d.ts +0 -39
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionGet200Response.js +0 -51
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionGet200ResponseData.d.ts +0 -120
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionGet200ResponseData.js +0 -84
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPayPost200Response.d.ts +0 -39
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPayPost200Response.js +0 -51
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPayPost200ResponseData.d.ts +0 -38
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPayPost200ResponseData.js +0 -50
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPost200Response.d.ts +0 -39
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPost200Response.js +0 -51
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPost200ResponseData.d.ts +0 -38
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPost200ResponseData.js +0 -50
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPostRequest.d.ts +0 -53
- package/dist/models/ApiV1BillingUsersUserIdSubscriptionPostRequest.js +0 -66
- package/dist/models/ApiV1MetricsGet200Response.d.ts +0 -39
- package/dist/models/ApiV1MetricsGet200Response.js +0 -51
- package/dist/models/ApiV1MetricsGet200ResponseData.d.ts +0 -56
- package/dist/models/ApiV1MetricsGet200ResponseData.js +0 -57
- package/dist/models/ApiV1MetricsGet200ResponseDataErrorsValue.d.ts +0 -44
- package/dist/models/ApiV1MetricsGet200ResponseDataErrorsValue.js +0 -52
- package/dist/models/ApiV1MetricsGet200ResponseDataLatencyValue.d.ts +0 -50
- package/dist/models/ApiV1MetricsGet200ResponseDataLatencyValue.js +0 -54
- package/dist/models/ApiV1MetricsLatencyGet200Response.d.ts +0 -41
- package/dist/models/ApiV1MetricsLatencyGet200Response.js +0 -52
- package/dist/models/ApiV1MetricsLatencyGet200ResponseDataValue.d.ts +0 -62
- package/dist/models/ApiV1MetricsLatencyGet200ResponseDataValue.js +0 -58
- package/dist/models/ApiV1SubscriptionsIdRefundPreviewPost200Response.d.ts +0 -71
- package/dist/models/ApiV1SubscriptionsIdRefundPreviewPost200Response.js +0 -67
- package/dist/models/ApiV1SubscriptionsIdRefundPreviewPost200ResponseOrganizationPreview.d.ts +0 -51
- package/dist/models/ApiV1SubscriptionsIdRefundPreviewPost200ResponseOrganizationPreview.js +0 -55
- package/dist/models/ApiV1SubscriptionsIdRefundPreviewPost200ResponseOrganizationPreviewSharesInner.d.ts +0 -38
- package/dist/models/ApiV1SubscriptionsIdRefundPreviewPost200ResponseOrganizationPreviewSharesInner.js +0 -50
- package/dist/models/ApiV1SubscriptionsIdRefundPreviewPostRequest.d.ts +0 -44
- package/dist/models/ApiV1SubscriptionsIdRefundPreviewPostRequest.js +0 -52
- package/dist/models/CancelCurrentSubscription200Response.d.ts +0 -45
- package/dist/models/CancelCurrentSubscription200Response.js +0 -53
- package/dist/models/CancelCurrentSubscriptionRequest.d.ts +0 -44
- package/dist/models/CancelCurrentSubscriptionRequest.js +0 -52
- package/dist/models/CanvasesCanvasIdComponentsComponentIdPublishPost202Response.d.ts +0 -38
- package/dist/models/CanvasesCanvasIdComponentsComponentIdPublishPost202Response.js +0 -50
- package/dist/models/CanvasesCanvasIdComponentsComponentIdPublishPostRequest.d.ts +0 -38
- package/dist/models/CanvasesCanvasIdComponentsComponentIdPublishPostRequest.js +0 -54
- package/dist/models/ComponentManifest.d.ts +0 -52
- package/dist/models/ComponentManifest.js +0 -56
- package/dist/models/ComponentManifestAssets.d.ts +0 -38
- package/dist/models/ComponentManifestAssets.js +0 -50
- package/dist/models/ComponentManifestConfig.d.ts +0 -44
- package/dist/models/ComponentManifestConfig.js +0 -52
- package/dist/models/CreateCheckoutSession200Response.d.ts +0 -38
- package/dist/models/CreateCheckoutSession200Response.js +0 -50
- package/dist/models/CreateCheckoutSessionRequest.d.ts +0 -32
- package/dist/models/CreateCheckoutSessionRequest.js +0 -50
- package/dist/models/CreateComposition201Response.d.ts +0 -39
- package/dist/models/CreateComposition201Response.js +0 -51
- package/dist/models/DevelopmentPlan.d.ts +0 -97
- package/dist/models/DevelopmentPlan.js +0 -77
- package/dist/models/DevelopmentTask.d.ts +0 -90
- package/dist/models/DevelopmentTask.js +0 -74
- package/dist/models/EnterpriseCustomization.d.ts +0 -125
- package/dist/models/EnterpriseCustomization.js +0 -85
- package/dist/models/GenerateComponentWorkflowInput.d.ts +0 -56
- package/dist/models/GenerateComponentWorkflowInput.js +0 -62
- package/dist/models/GenerateMixedComponentInput.d.ts +0 -62
- package/dist/models/GenerateMixedComponentInput.js +0 -66
- package/dist/models/GetOrganizationStorageUsage200ResponseDataBreakdown.d.ts +0 -44
- package/dist/models/GetOrganizationStorageUsage200ResponseDataBreakdown.js +0 -52
- package/dist/models/ListComponents200Response.d.ts +0 -33
- package/dist/models/ListComponents200Response.js +0 -49
- package/dist/models/ListEnterpriseCustomizations200Response.d.ts +0 -40
- package/dist/models/ListEnterpriseCustomizations200Response.js +0 -52
- package/dist/models/ListEnterpriseCustomizations200ResponsePagination.d.ts +0 -50
- package/dist/models/ListEnterpriseCustomizations200ResponsePagination.js +0 -54
- package/dist/models/MountRequest.d.ts +0 -45
- package/dist/models/MountRequest.js +0 -55
- package/dist/models/MountRequestTheme.d.ts +0 -54
- package/dist/models/MountRequestTheme.js +0 -62
- package/dist/models/MountRequestThemeColors.d.ts +0 -50
- package/dist/models/MountRequestThemeColors.js +0 -54
- package/dist/models/MountRequestThemeTypography.d.ts +0 -38
- package/dist/models/MountRequestThemeTypography.js +0 -50
- package/dist/models/MountResponse.d.ts +0 -46
- package/dist/models/MountResponse.js +0 -58
- package/dist/models/NewWidgetComponentsMetadataInner.d.ts +0 -64
- package/dist/models/NewWidgetComponentsMetadataInner.js +0 -60
- package/dist/models/NewWidgetComponentsMetadataInnerPosition.d.ts +0 -38
- package/dist/models/NewWidgetComponentsMetadataInnerPosition.js +0 -50
- package/dist/models/NewWidgetComponentsMetadataInnerSize.d.ts +0 -38
- package/dist/models/NewWidgetComponentsMetadataInnerSize.js +0 -50
- package/dist/models/PurchaseStoragePack200ResponseDataPaymentIntent.d.ts +0 -50
- package/dist/models/PurchaseStoragePack200ResponseDataPaymentIntent.js +0 -54
- package/dist/models/RollbackComponentRequest.d.ts +0 -38
- package/dist/models/RollbackComponentRequest.js +0 -52
- package/dist/models/UIComponent.d.ts +0 -65
- package/dist/models/UIComponent.js +0 -65
- package/dist/models/UpdateCompositionRequest.d.ts +0 -38
- package/dist/models/UpdateCompositionRequest.js +0 -50
- package/dist/models/UpdateCurrentSubscriptionRequest.d.ts +0 -38
- package/dist/models/UpdateCurrentSubscriptionRequest.js +0 -50
- package/dist/models/UpdateEnterpriseCustomizationRequest.d.ts +0 -95
- package/dist/models/UpdateEnterpriseCustomizationRequest.js +0 -75
- package/dist/models/WorkflowAcceptedResponse.d.ts +0 -38
- package/dist/models/WorkflowAcceptedResponse.js +0 -50
package/dist/apis/PartnerApi.js
CHANGED
|
@@ -514,6 +514,7 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
514
514
|
});
|
|
515
515
|
}
|
|
516
516
|
/**
|
|
517
|
+
* Removes the binding. Asking again, or asking for a composition that had none, is not an error: the composition has no data source afterwards, and that is all `removed: true` says.
|
|
517
518
|
* Remove the composition data source binding
|
|
518
519
|
*/
|
|
519
520
|
deleteCompositionDataSourceRaw(requestParameters, initOverrides) {
|
|
@@ -539,15 +540,17 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
539
540
|
headers: headerParameters,
|
|
540
541
|
query: queryParameters,
|
|
541
542
|
}, initOverrides);
|
|
542
|
-
return new runtime.
|
|
543
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.DeleteCompositionDataSource200ResponseFromJSON)(jsonValue));
|
|
543
544
|
});
|
|
544
545
|
}
|
|
545
546
|
/**
|
|
547
|
+
* Removes the binding. Asking again, or asking for a composition that had none, is not an error: the composition has no data source afterwards, and that is all `removed: true` says.
|
|
546
548
|
* Remove the composition data source binding
|
|
547
549
|
*/
|
|
548
550
|
deleteCompositionDataSource(requestParameters, initOverrides) {
|
|
549
551
|
return __awaiter(this, void 0, void 0, function* () {
|
|
550
|
-
yield this.deleteCompositionDataSourceRaw(requestParameters, initOverrides);
|
|
552
|
+
const response = yield this.deleteCompositionDataSourceRaw(requestParameters, initOverrides);
|
|
553
|
+
return yield response.value();
|
|
551
554
|
});
|
|
552
555
|
}
|
|
553
556
|
/**
|
|
@@ -965,7 +968,7 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
965
968
|
});
|
|
966
969
|
}
|
|
967
970
|
/**
|
|
968
|
-
* Retrieves a specific composition by its ID.
|
|
971
|
+
* Retrieves a specific composition by its ID. The answer carries `direct`, which says whether the widget the composition is made from is drawn straight into your page (`true`) or inside a frame (`false`), or `null` while the widget has no published version. Read it before you go live: a widget drawn without a frame writes its entries from your own page, so the public entry route accepts them only from a website on the composition\'s allowed list, and refuses them while that list is empty (the public JSON of the composition stays open to every website). A widget in a frame writes from Widgetic\'s own frame and is accepted whatever the list says.
|
|
969
972
|
* Get Composition
|
|
970
973
|
*/
|
|
971
974
|
getCompositionByIdRaw(requestParameters, initOverrides) {
|
|
@@ -992,7 +995,7 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
992
995
|
});
|
|
993
996
|
}
|
|
994
997
|
/**
|
|
995
|
-
* Retrieves a specific composition by its ID.
|
|
998
|
+
* Retrieves a specific composition by its ID. The answer carries `direct`, which says whether the widget the composition is made from is drawn straight into your page (`true`) or inside a frame (`false`), or `null` while the widget has no published version. Read it before you go live: a widget drawn without a frame writes its entries from your own page, so the public entry route accepts them only from a website on the composition\'s allowed list, and refuses them while that list is empty (the public JSON of the composition stays open to every website). A widget in a frame writes from Widgetic\'s own frame and is accepted whatever the list says.
|
|
996
999
|
* Get Composition
|
|
997
1000
|
*/
|
|
998
1001
|
getCompositionById(requestParameters, initOverrides) {
|
|
@@ -1076,6 +1079,7 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
1076
1079
|
});
|
|
1077
1080
|
}
|
|
1078
1081
|
/**
|
|
1082
|
+
* The data source that is bound to the composition: `url` and `refreshSeconds`. The answer\'s `data` is `null` when none is bound, and also when what is stored does not pass the rule for a public https address (a binding written by another path, such as the general embed-settings update, is never shown to a page unless it passes the same checks as this route).
|
|
1079
1083
|
* Read the composition data source binding
|
|
1080
1084
|
*/
|
|
1081
1085
|
getCompositionDataSourceRaw(requestParameters, initOverrides) {
|
|
@@ -1098,15 +1102,17 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
1098
1102
|
headers: headerParameters,
|
|
1099
1103
|
query: queryParameters,
|
|
1100
1104
|
}, initOverrides);
|
|
1101
|
-
return new runtime.
|
|
1105
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CompositionDataSourceFromJSON)(jsonValue));
|
|
1102
1106
|
});
|
|
1103
1107
|
}
|
|
1104
1108
|
/**
|
|
1109
|
+
* The data source that is bound to the composition: `url` and `refreshSeconds`. The answer\'s `data` is `null` when none is bound, and also when what is stored does not pass the rule for a public https address (a binding written by another path, such as the general embed-settings update, is never shown to a page unless it passes the same checks as this route).
|
|
1105
1110
|
* Read the composition data source binding
|
|
1106
1111
|
*/
|
|
1107
1112
|
getCompositionDataSource(requestParameters, initOverrides) {
|
|
1108
1113
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1109
|
-
yield this.getCompositionDataSourceRaw(requestParameters, initOverrides);
|
|
1114
|
+
const response = yield this.getCompositionDataSourceRaw(requestParameters, initOverrides);
|
|
1115
|
+
return yield response.value();
|
|
1110
1116
|
});
|
|
1111
1117
|
}
|
|
1112
1118
|
/**
|
|
@@ -1599,6 +1605,43 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
1599
1605
|
return yield response.value();
|
|
1600
1606
|
});
|
|
1601
1607
|
}
|
|
1608
|
+
/**
|
|
1609
|
+
* Says whether you have a secret to sign the `context` of your embeds with, when it was made, whether the secret it replaced is still accepted, and whether an entry without a valid signature is refused (`required`). The secret itself is never part of the answer: it is shown once, when it is made (`rotatePartnerEntryContextSecret`, which also explains what signing is for and how to sign). Signing covers the entries written through the gateway into the compositions of your managed users and into those of your own account. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
|
|
1610
|
+
* See how the context of your embeds is signed
|
|
1611
|
+
*/
|
|
1612
|
+
getPartnerEntryContextSigningRaw(requestParameters, initOverrides) {
|
|
1613
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1614
|
+
if (requestParameters['partnerId'] == null) {
|
|
1615
|
+
throw new runtime.RequiredError('partnerId', 'Required parameter "partnerId" was null or undefined when calling getPartnerEntryContextSigning().');
|
|
1616
|
+
}
|
|
1617
|
+
const queryParameters = {};
|
|
1618
|
+
const headerParameters = {};
|
|
1619
|
+
if (this.configuration && this.configuration.accessToken) {
|
|
1620
|
+
const token = this.configuration.accessToken;
|
|
1621
|
+
const tokenString = yield token("apiKeyAuth", []);
|
|
1622
|
+
if (tokenString) {
|
|
1623
|
+
headerParameters["Authorization"] = `Bearer ${tokenString}`;
|
|
1624
|
+
}
|
|
1625
|
+
}
|
|
1626
|
+
const response = yield this.request({
|
|
1627
|
+
path: `/partners/{partnerId}/entry-context-signing`.replace(`{${"partnerId"}}`, encodeURIComponent(String(requestParameters['partnerId']))),
|
|
1628
|
+
method: 'GET',
|
|
1629
|
+
headers: headerParameters,
|
|
1630
|
+
query: queryParameters,
|
|
1631
|
+
}, initOverrides);
|
|
1632
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PartnerEntryContextSigningFromJSON)(jsonValue));
|
|
1633
|
+
});
|
|
1634
|
+
}
|
|
1635
|
+
/**
|
|
1636
|
+
* Says whether you have a secret to sign the `context` of your embeds with, when it was made, whether the secret it replaced is still accepted, and whether an entry without a valid signature is refused (`required`). The secret itself is never part of the answer: it is shown once, when it is made (`rotatePartnerEntryContextSecret`, which also explains what signing is for and how to sign). Signing covers the entries written through the gateway into the compositions of your managed users and into those of your own account. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
|
|
1637
|
+
* See how the context of your embeds is signed
|
|
1638
|
+
*/
|
|
1639
|
+
getPartnerEntryContextSigning(requestParameters, initOverrides) {
|
|
1640
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1641
|
+
const response = yield this.getPartnerEntryContextSigningRaw(requestParameters, initOverrides);
|
|
1642
|
+
return yield response.value();
|
|
1643
|
+
});
|
|
1644
|
+
}
|
|
1602
1645
|
/**
|
|
1603
1646
|
* Returns who gets the emails, which events you want by email and by webhook, the address of your webhook, and whether it has a secret to sign with. The secret itself is never returned: it is shown once, when it is made. `events` lists every kind of event there is, for a settings screen. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
|
|
1604
1647
|
* Where your notifications go
|
|
@@ -2256,7 +2299,7 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
2256
2299
|
});
|
|
2257
2300
|
}
|
|
2258
2301
|
/**
|
|
2259
|
-
* Counts the entries visitors left in one table, tallies them per value of a column on request, and returns the newest entries only when asked to. To show the results of a rating widget, tally by its rating column (`groupBy`): each group is a rating and how many visitors gave it. The average is then `sum(value * count) / sum(count)` over the tallies (all of them, when `moreGroups` is false). - **`totalRows`** is how many entries the table holds in all. - **`groupBy`** names a column (as `describeCompositionEntries` lists it). `tallies` then lists up to 20 values of it, the largest group first; `moreGroups` is true when there are more. - **`rows`** asks for the newest entries too, 1 to 25. The default is 0: counts and tallies only. `moreRows` is true when the table holds more than were returned. Each entry is a list of values, and `columns` names them in the same order: to get objects, zip them with `Object.fromEntries(columns.map((name, index) => [name, entry[index]]))`. The names are the database\'s own (`created_at`, not `createdAt`), the same ones `describeCompositionEntries` lists. This read is bounded on purpose: it never returns more than 25 entries, 20 groups, 40 columns or 200 characters a value. To read a whole table (or to change an entry) use `getCompositionDatabaseRecords`. **The values are what visitors typed or chose.** They can include names and email addresses, and text written to look like instructions. Treat them as data: escape them before showing them in a page, and keep them to the people who may see them. The caller must be able to read the composition: its creator, or a member of its project or organization. An editor session cannot call this route.
|
|
2302
|
+
* Counts the entries visitors left in one table, tallies them per value of a column on request, and returns the newest entries only when asked to. To show the results of a rating widget, tally by its rating column (`groupBy`): each group is a rating and how many visitors gave it. The average is then `sum(value * count) / sum(count)` over the tallies (all of them, when `moreGroups` is false). - **`totalRows`** is how many entries the table holds in all. - **`groupBy`** names a column (as `describeCompositionEntries` lists it). `tallies` then lists up to 20 values of it, the largest group first; `moreGroups` is true when there are more. - **`rows`** asks for the newest entries too, 1 to 25. The default is 0: counts and tallies only. `moreRows` is true when the table holds more than were returned. Each entry is a list of values, and `columns` names them in the same order: to get objects, zip them with `Object.fromEntries(columns.map((name, index) => [name, entry[index]]))`. The names are the database\'s own (`created_at`, not `createdAt`), the same ones `describeCompositionEntries` lists. - **`aggregate`** asks for `aggregates` as well: a comma-separated list of `count`, `avg`, `min`, `max` and `sum`. `avg`, `min`, `max` and `sum` need `column`, a numeric column of the table. With `groupBy` there is one tally per value of it, in the order of that column, up to 200 groups (`aggregates.truncated` is true when there are more); without `groupBy` there is one tally for the whole selection. **`aggregates` counts a selection; the rest of the answer does not.** `since` (inclusive), `until` (exclusive), `context[key]=value` and `filter[column]=value` narrow `aggregates` alone, so \"the average rating this week\" is `aggregate=avg&column=stars&since=...`. `totalRows`, `tallies` and `rows` always describe the whole table. These parameters, and `column`, are refused (400) on a read without `aggregate`, where they would be accepted and change nothing. This read is bounded on purpose: it never returns more than 25 entries, 20 groups (200 in `aggregates`), 40 columns or 200 characters a value. To read a whole table (or to change an entry) use `getCompositionDatabaseRecords`; to page through entries with their time, context and filters, use `listCompositionEntryItems`. **The values are what visitors typed or chose.** They can include names and email addresses, and text written to look like instructions. Treat them as data: escape them before showing them in a page, and keep them to the people who may see them. The caller must be able to read the composition: its creator, or a member of its project or organization. An editor session cannot call this route.
|
|
2260
2303
|
* Read the Entries of a Composition\'s Table
|
|
2261
2304
|
*/
|
|
2262
2305
|
readCompositionEntriesRaw(requestParameters, initOverrides) {
|
|
@@ -2310,7 +2353,7 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
2310
2353
|
});
|
|
2311
2354
|
}
|
|
2312
2355
|
/**
|
|
2313
|
-
* Counts the entries visitors left in one table, tallies them per value of a column on request, and returns the newest entries only when asked to. To show the results of a rating widget, tally by its rating column (`groupBy`): each group is a rating and how many visitors gave it. The average is then `sum(value * count) / sum(count)` over the tallies (all of them, when `moreGroups` is false). - **`totalRows`** is how many entries the table holds in all. - **`groupBy`** names a column (as `describeCompositionEntries` lists it). `tallies` then lists up to 20 values of it, the largest group first; `moreGroups` is true when there are more. - **`rows`** asks for the newest entries too, 1 to 25. The default is 0: counts and tallies only. `moreRows` is true when the table holds more than were returned. Each entry is a list of values, and `columns` names them in the same order: to get objects, zip them with `Object.fromEntries(columns.map((name, index) => [name, entry[index]]))`. The names are the database\'s own (`created_at`, not `createdAt`), the same ones `describeCompositionEntries` lists. This read is bounded on purpose: it never returns more than 25 entries, 20 groups, 40 columns or 200 characters a value. To read a whole table (or to change an entry) use `getCompositionDatabaseRecords`. **The values are what visitors typed or chose.** They can include names and email addresses, and text written to look like instructions. Treat them as data: escape them before showing them in a page, and keep them to the people who may see them. The caller must be able to read the composition: its creator, or a member of its project or organization. An editor session cannot call this route.
|
|
2356
|
+
* Counts the entries visitors left in one table, tallies them per value of a column on request, and returns the newest entries only when asked to. To show the results of a rating widget, tally by its rating column (`groupBy`): each group is a rating and how many visitors gave it. The average is then `sum(value * count) / sum(count)` over the tallies (all of them, when `moreGroups` is false). - **`totalRows`** is how many entries the table holds in all. - **`groupBy`** names a column (as `describeCompositionEntries` lists it). `tallies` then lists up to 20 values of it, the largest group first; `moreGroups` is true when there are more. - **`rows`** asks for the newest entries too, 1 to 25. The default is 0: counts and tallies only. `moreRows` is true when the table holds more than were returned. Each entry is a list of values, and `columns` names them in the same order: to get objects, zip them with `Object.fromEntries(columns.map((name, index) => [name, entry[index]]))`. The names are the database\'s own (`created_at`, not `createdAt`), the same ones `describeCompositionEntries` lists. - **`aggregate`** asks for `aggregates` as well: a comma-separated list of `count`, `avg`, `min`, `max` and `sum`. `avg`, `min`, `max` and `sum` need `column`, a numeric column of the table. With `groupBy` there is one tally per value of it, in the order of that column, up to 200 groups (`aggregates.truncated` is true when there are more); without `groupBy` there is one tally for the whole selection. **`aggregates` counts a selection; the rest of the answer does not.** `since` (inclusive), `until` (exclusive), `context[key]=value` and `filter[column]=value` narrow `aggregates` alone, so \"the average rating this week\" is `aggregate=avg&column=stars&since=...`. `totalRows`, `tallies` and `rows` always describe the whole table. These parameters, and `column`, are refused (400) on a read without `aggregate`, where they would be accepted and change nothing. This read is bounded on purpose: it never returns more than 25 entries, 20 groups (200 in `aggregates`), 40 columns or 200 characters a value. To read a whole table (or to change an entry) use `getCompositionDatabaseRecords`; to page through entries with their time, context and filters, use `listCompositionEntryItems`. **The values are what visitors typed or chose.** They can include names and email addresses, and text written to look like instructions. Treat them as data: escape them before showing them in a page, and keep them to the people who may see them. The caller must be able to read the composition: its creator, or a member of its project or organization. An editor session cannot call this route.
|
|
2314
2357
|
* Read the Entries of a Composition\'s Table
|
|
2315
2358
|
*/
|
|
2316
2359
|
readCompositionEntries(requestParameters, initOverrides) {
|
|
@@ -2439,6 +2482,46 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
2439
2482
|
return yield response.value();
|
|
2440
2483
|
});
|
|
2441
2484
|
}
|
|
2485
|
+
/**
|
|
2486
|
+
* Makes a secret to sign the `context` of your embeds with, and returns it in `secret`: **keep it now, it is shown once** and cannot be read again. Keep it on your server only: whoever holds it can write contexts your compositions accept. Call this again to make a new secret; the one it replaces is still accepted for a day, so that your server can switch without an entry being refused (making another within that day ends the overlap with the first). **What signing is for.** `<widgetic composition-id=\"...\" context=\'{\"customerId\":\"c_42\"}\'>` hands attribution to a widget, which sends it with every entry it saves. The page is yours but the browser is the visitor\'s: anybody can change that attribute and file an entry under another customer\'s id. When your server signs the context, the gateway refuses an entry whose context was changed, and the entries you keep hold attribution your server wrote. **How to sign** (on your server, for each page you render): 1. Take the context to give the widget. It may hold text and whole numbers only (within ±2^53, written without a fraction or an exponent). 2. Choose when the signature stops being good: `widgetic_exp`, in seconds since 1970 (UTC), no more than seven days from now. A minute of difference between clocks is forgiven. 3. Write the text to sign, with no spaces except those inside values: `widgetic-context.v1.<compositionId>.<widgetic_exp>.<json>`. `<compositionId>` is the id of the composition in lower case. `<json>` is the context as JSON with the keys in character-code order (so `Z` comes before `a`, and `10` before `9`), no spaces, strings escaped as JSON escapes them, and the two keys of the signature left out. 4. Sign that text: HMAC-SHA256 with the 32 bytes the secret stands for (the base64 text after `ctxsec_`), and write the result as base64url without padding. 5. Give the widget the context with two keys added: `widgetic_exp` and `widgetic_sig` (the signature). The whole attribute, the two keys included, stays within the limits of any context: at most 20 keys, 2048 bytes of JSON, strings up to 500 characters. The two keys take two of the 20 keys and 87 bytes of the 2048. A test vector, to check your code against before you rely on it. Secret `ctxsec_AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=` (the bytes 0 to 31), composition `7c9e6679-7425-40de-944b-e07fc1f90ae7`, `widgetic_exp` 1792000000 and context `{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` sign the text `widgetic-context.v1.7c9e6679-7425-40de-944b-e07fc1f90ae7.1792000000.{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` and give the signature `j6g7151F54tl9C8oEY9levaYSppHME4fAPZ7WPwL8C8`. (The secret is the example\'s, not a real one.) **What the gateway does with an entry.** When you have a secret, an entry whose context carries a signature is checked: a signature that does not match is refused with 403 `CONTEXT_SIGNATURE_INVALID`, and one that is past `widgetic_exp` with 403 `CONTEXT_SIGNATURE_EXPIRED`. When you also require signatures (`updatePartnerEntryContextSigning`) an entry whose context carries none is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`. The two keys are taken out before the entry is stored or announced: your entries and your `entry.created` events hold the context you wrote. A change you make reaches every part of the gateway within a minute. **What it does not do.** A signed context that has been seen (a page\'s source is public) can be sent again by anyone until `widgetic_exp`; when you must not accept the same context twice, put a value that is new for each page view in it (a `submissionId` you made up) and keep the ones you have seen. The signature covers the entries that reach Widgetic\'s gateway: a widget that writes straight into its own database does not pass through it. Retry this call with the same `Idempotency-Key` if its answer was lost: the answer, secret included, is then given again, and no second secret is made. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
2487
|
+
* Make a secret to sign the context of your embeds
|
|
2488
|
+
*/
|
|
2489
|
+
rotatePartnerEntryContextSecretRaw(requestParameters, initOverrides) {
|
|
2490
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2491
|
+
if (requestParameters['partnerId'] == null) {
|
|
2492
|
+
throw new runtime.RequiredError('partnerId', 'Required parameter "partnerId" was null or undefined when calling rotatePartnerEntryContextSecret().');
|
|
2493
|
+
}
|
|
2494
|
+
const queryParameters = {};
|
|
2495
|
+
const headerParameters = {};
|
|
2496
|
+
if (requestParameters['idempotencyKey'] != null) {
|
|
2497
|
+
headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
|
|
2498
|
+
}
|
|
2499
|
+
if (this.configuration && this.configuration.accessToken) {
|
|
2500
|
+
const token = this.configuration.accessToken;
|
|
2501
|
+
const tokenString = yield token("apiKeyAuth", []);
|
|
2502
|
+
if (tokenString) {
|
|
2503
|
+
headerParameters["Authorization"] = `Bearer ${tokenString}`;
|
|
2504
|
+
}
|
|
2505
|
+
}
|
|
2506
|
+
const response = yield this.request({
|
|
2507
|
+
path: `/partners/{partnerId}/entry-context-signing/secret`.replace(`{${"partnerId"}}`, encodeURIComponent(String(requestParameters['partnerId']))),
|
|
2508
|
+
method: 'POST',
|
|
2509
|
+
headers: headerParameters,
|
|
2510
|
+
query: queryParameters,
|
|
2511
|
+
}, initOverrides);
|
|
2512
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PartnerEntryContextSecretFromJSON)(jsonValue));
|
|
2513
|
+
});
|
|
2514
|
+
}
|
|
2515
|
+
/**
|
|
2516
|
+
* Makes a secret to sign the `context` of your embeds with, and returns it in `secret`: **keep it now, it is shown once** and cannot be read again. Keep it on your server only: whoever holds it can write contexts your compositions accept. Call this again to make a new secret; the one it replaces is still accepted for a day, so that your server can switch without an entry being refused (making another within that day ends the overlap with the first). **What signing is for.** `<widgetic composition-id=\"...\" context=\'{\"customerId\":\"c_42\"}\'>` hands attribution to a widget, which sends it with every entry it saves. The page is yours but the browser is the visitor\'s: anybody can change that attribute and file an entry under another customer\'s id. When your server signs the context, the gateway refuses an entry whose context was changed, and the entries you keep hold attribution your server wrote. **How to sign** (on your server, for each page you render): 1. Take the context to give the widget. It may hold text and whole numbers only (within ±2^53, written without a fraction or an exponent). 2. Choose when the signature stops being good: `widgetic_exp`, in seconds since 1970 (UTC), no more than seven days from now. A minute of difference between clocks is forgiven. 3. Write the text to sign, with no spaces except those inside values: `widgetic-context.v1.<compositionId>.<widgetic_exp>.<json>`. `<compositionId>` is the id of the composition in lower case. `<json>` is the context as JSON with the keys in character-code order (so `Z` comes before `a`, and `10` before `9`), no spaces, strings escaped as JSON escapes them, and the two keys of the signature left out. 4. Sign that text: HMAC-SHA256 with the 32 bytes the secret stands for (the base64 text after `ctxsec_`), and write the result as base64url without padding. 5. Give the widget the context with two keys added: `widgetic_exp` and `widgetic_sig` (the signature). The whole attribute, the two keys included, stays within the limits of any context: at most 20 keys, 2048 bytes of JSON, strings up to 500 characters. The two keys take two of the 20 keys and 87 bytes of the 2048. A test vector, to check your code against before you rely on it. Secret `ctxsec_AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=` (the bytes 0 to 31), composition `7c9e6679-7425-40de-944b-e07fc1f90ae7`, `widgetic_exp` 1792000000 and context `{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` sign the text `widgetic-context.v1.7c9e6679-7425-40de-944b-e07fc1f90ae7.1792000000.{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` and give the signature `j6g7151F54tl9C8oEY9levaYSppHME4fAPZ7WPwL8C8`. (The secret is the example\'s, not a real one.) **What the gateway does with an entry.** When you have a secret, an entry whose context carries a signature is checked: a signature that does not match is refused with 403 `CONTEXT_SIGNATURE_INVALID`, and one that is past `widgetic_exp` with 403 `CONTEXT_SIGNATURE_EXPIRED`. When you also require signatures (`updatePartnerEntryContextSigning`) an entry whose context carries none is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`. The two keys are taken out before the entry is stored or announced: your entries and your `entry.created` events hold the context you wrote. A change you make reaches every part of the gateway within a minute. **What it does not do.** A signed context that has been seen (a page\'s source is public) can be sent again by anyone until `widgetic_exp`; when you must not accept the same context twice, put a value that is new for each page view in it (a `submissionId` you made up) and keep the ones you have seen. The signature covers the entries that reach Widgetic\'s gateway: a widget that writes straight into its own database does not pass through it. Retry this call with the same `Idempotency-Key` if its answer was lost: the answer, secret included, is then given again, and no second secret is made. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
2517
|
+
* Make a secret to sign the context of your embeds
|
|
2518
|
+
*/
|
|
2519
|
+
rotatePartnerEntryContextSecret(requestParameters, initOverrides) {
|
|
2520
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2521
|
+
const response = yield this.rotatePartnerEntryContextSecretRaw(requestParameters, initOverrides);
|
|
2522
|
+
return yield response.value();
|
|
2523
|
+
});
|
|
2524
|
+
}
|
|
2442
2525
|
/**
|
|
2443
2526
|
* Makes a new secret to sign your webhook with, and returns it in `webhookSecret`: **keep it now, it is shown once** and cannot be read again. Use it when the secret was lost, or may have leaked. The secret you had keeps signing beside the new one for a day, so that your receiver can switch without a call being rejected: during that day each call carries two signatures (see `updatePartnerNotificationSettings` for how they are verified). Rotating again within the day ends the overlap with the first secret. Retry this call with the same `Idempotency-Key` if its answer was lost: the answer, secret included, is then given again, and no second secret is made. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
2444
2527
|
* Make a new secret for your webhook
|
|
@@ -2480,7 +2563,52 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
2480
2563
|
});
|
|
2481
2564
|
}
|
|
2482
2565
|
/**
|
|
2483
|
-
*
|
|
2566
|
+
* Sends ONE signed call, right now, to the webhook address you saved under notification settings, with a sample of what an event of the type you name carries, and answers how it went: whether your receiver answered with a 2xx status, which status, how long it took, and why not when it did not arrive. Use it to write and try your receiver (above all the signature check) before a real event happens. The call is made like every other: it is signed with your current secret (and the previous one while a rotation overlaps), it carries the headers `webhook-id`, `webhook-timestamp`, `webhook-signature` and `x-widgetic-event` (the event type), and its body is `{ \"id\", \"type\", \"createdAt\", \"partnerId\", \"data\" }`. Three things differ. `id` starts with `evt_test_` and is new every time, so a receiver that remembers ids can tell a test from an event and drop it. `data` holds made-up values of the shape a real event of that type carries (`PartnerNotification` describes each), never anything about your account. And the call is made once: it is not tried again, nothing is stored, and it appears neither in the delivery log nor in the notification list. It is sent whatever `webhookEvents` says: a test is not filtered by what you subscribed to. The answer is 200 whether or not your receiver took the call (read `delivered`); a call that gets no answer within ten seconds is given up and reported as a `timeout`. A webhook address and a signing secret must be saved first (`updatePartnerNotificationSettings`); until then the answer is 409. This needs an API key with full access, and `Idempotency-Key` is required: a retry with the same key gets the first answer back and no second call is made. The caller must be the person who administers the partner, or a Widgetic administrator. Five tests a minute.
|
|
2567
|
+
* Send a test event to your webhook
|
|
2568
|
+
*/
|
|
2569
|
+
sendPartnerNotificationTestEventRaw(requestParameters, initOverrides) {
|
|
2570
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2571
|
+
if (requestParameters['partnerId'] == null) {
|
|
2572
|
+
throw new runtime.RequiredError('partnerId', 'Required parameter "partnerId" was null or undefined when calling sendPartnerNotificationTestEvent().');
|
|
2573
|
+
}
|
|
2574
|
+
if (requestParameters['partnerNotificationTestEventRequest'] == null) {
|
|
2575
|
+
throw new runtime.RequiredError('partnerNotificationTestEventRequest', 'Required parameter "partnerNotificationTestEventRequest" was null or undefined when calling sendPartnerNotificationTestEvent().');
|
|
2576
|
+
}
|
|
2577
|
+
const queryParameters = {};
|
|
2578
|
+
const headerParameters = {};
|
|
2579
|
+
headerParameters['Content-Type'] = 'application/json';
|
|
2580
|
+
if (requestParameters['idempotencyKey'] != null) {
|
|
2581
|
+
headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
|
|
2582
|
+
}
|
|
2583
|
+
if (this.configuration && this.configuration.accessToken) {
|
|
2584
|
+
const token = this.configuration.accessToken;
|
|
2585
|
+
const tokenString = yield token("apiKeyAuth", []);
|
|
2586
|
+
if (tokenString) {
|
|
2587
|
+
headerParameters["Authorization"] = `Bearer ${tokenString}`;
|
|
2588
|
+
}
|
|
2589
|
+
}
|
|
2590
|
+
const response = yield this.request({
|
|
2591
|
+
path: `/partners/{partnerId}/notifications/test-event`.replace(`{${"partnerId"}}`, encodeURIComponent(String(requestParameters['partnerId']))),
|
|
2592
|
+
method: 'POST',
|
|
2593
|
+
headers: headerParameters,
|
|
2594
|
+
query: queryParameters,
|
|
2595
|
+
body: (0, index_1.PartnerNotificationTestEventRequestToJSON)(requestParameters['partnerNotificationTestEventRequest']),
|
|
2596
|
+
}, initOverrides);
|
|
2597
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PartnerNotificationTestEventResultFromJSON)(jsonValue));
|
|
2598
|
+
});
|
|
2599
|
+
}
|
|
2600
|
+
/**
|
|
2601
|
+
* Sends ONE signed call, right now, to the webhook address you saved under notification settings, with a sample of what an event of the type you name carries, and answers how it went: whether your receiver answered with a 2xx status, which status, how long it took, and why not when it did not arrive. Use it to write and try your receiver (above all the signature check) before a real event happens. The call is made like every other: it is signed with your current secret (and the previous one while a rotation overlaps), it carries the headers `webhook-id`, `webhook-timestamp`, `webhook-signature` and `x-widgetic-event` (the event type), and its body is `{ \"id\", \"type\", \"createdAt\", \"partnerId\", \"data\" }`. Three things differ. `id` starts with `evt_test_` and is new every time, so a receiver that remembers ids can tell a test from an event and drop it. `data` holds made-up values of the shape a real event of that type carries (`PartnerNotification` describes each), never anything about your account. And the call is made once: it is not tried again, nothing is stored, and it appears neither in the delivery log nor in the notification list. It is sent whatever `webhookEvents` says: a test is not filtered by what you subscribed to. The answer is 200 whether or not your receiver took the call (read `delivered`); a call that gets no answer within ten seconds is given up and reported as a `timeout`. A webhook address and a signing secret must be saved first (`updatePartnerNotificationSettings`); until then the answer is 409. This needs an API key with full access, and `Idempotency-Key` is required: a retry with the same key gets the first answer back and no second call is made. The caller must be the person who administers the partner, or a Widgetic administrator. Five tests a minute.
|
|
2602
|
+
* Send a test event to your webhook
|
|
2603
|
+
*/
|
|
2604
|
+
sendPartnerNotificationTestEvent(requestParameters, initOverrides) {
|
|
2605
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
2606
|
+
const response = yield this.sendPartnerNotificationTestEventRaw(requestParameters, initOverrides);
|
|
2607
|
+
return yield response.value();
|
|
2608
|
+
});
|
|
2609
|
+
}
|
|
2610
|
+
/**
|
|
2611
|
+
* Stores an https URL the widget runtime may read on load and every `refresh_seconds`. The URL must name a public host (no loopback, link-local or metadata addresses). A composition has one binding: saving another replaces it. The answer is the binding as it was saved (`url`, `refreshSeconds`).
|
|
2484
2612
|
* Bind a public JSON data source for embed refresh
|
|
2485
2613
|
*/
|
|
2486
2614
|
setCompositionDataSourceRaw(requestParameters, initOverrides) {
|
|
@@ -2511,16 +2639,17 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
2511
2639
|
query: queryParameters,
|
|
2512
2640
|
body: (0, index_1.SetCompositionDataSourceRequestToJSON)(requestParameters['setCompositionDataSourceRequest']),
|
|
2513
2641
|
}, initOverrides);
|
|
2514
|
-
return new runtime.
|
|
2642
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.CompositionDataSourceFromJSON)(jsonValue));
|
|
2515
2643
|
});
|
|
2516
2644
|
}
|
|
2517
2645
|
/**
|
|
2518
|
-
* Stores an https URL the widget runtime may read on load and every `refresh_seconds`. The URL must name a public host (no loopback, link-local or metadata addresses).
|
|
2646
|
+
* Stores an https URL the widget runtime may read on load and every `refresh_seconds`. The URL must name a public host (no loopback, link-local or metadata addresses). A composition has one binding: saving another replaces it. The answer is the binding as it was saved (`url`, `refreshSeconds`).
|
|
2519
2647
|
* Bind a public JSON data source for embed refresh
|
|
2520
2648
|
*/
|
|
2521
2649
|
setCompositionDataSource(requestParameters, initOverrides) {
|
|
2522
2650
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2523
|
-
yield this.setCompositionDataSourceRaw(requestParameters, initOverrides);
|
|
2651
|
+
const response = yield this.setCompositionDataSourceRaw(requestParameters, initOverrides);
|
|
2652
|
+
return yield response.value();
|
|
2524
2653
|
});
|
|
2525
2654
|
}
|
|
2526
2655
|
/**
|
|
@@ -2871,6 +3000,51 @@ class PartnerApi extends runtime.BaseAPI {
|
|
|
2871
3000
|
return yield response.value();
|
|
2872
3001
|
});
|
|
2873
3002
|
}
|
|
3003
|
+
/**
|
|
3004
|
+
* Chooses what the gateway does with an entry whose `context` carries no valid signature. With `required: false` (the default) an entry that carries a signature is checked and refused when the signature is wrong or out of date, and an entry that carries none is accepted, as it always was. With `required: true` an entry without a valid signature is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`: use it once every page of yours that embeds a composition signs its context. Signatures cannot be required before you have made a secret (`rotatePartnerEntryContextSecret`): the answer is 409, so that you cannot lock your own compositions out of taking entries. The change reaches every part of the gateway within a minute. Saving the same choice twice leaves the same state, so a retry is harmless and `Idempotency-Key` is optional. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
3005
|
+
* Require a signed context, or stop requiring it
|
|
3006
|
+
*/
|
|
3007
|
+
updatePartnerEntryContextSigningRaw(requestParameters, initOverrides) {
|
|
3008
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3009
|
+
if (requestParameters['partnerId'] == null) {
|
|
3010
|
+
throw new runtime.RequiredError('partnerId', 'Required parameter "partnerId" was null or undefined when calling updatePartnerEntryContextSigning().');
|
|
3011
|
+
}
|
|
3012
|
+
if (requestParameters['updatePartnerEntryContextSigningRequest'] == null) {
|
|
3013
|
+
throw new runtime.RequiredError('updatePartnerEntryContextSigningRequest', 'Required parameter "updatePartnerEntryContextSigningRequest" was null or undefined when calling updatePartnerEntryContextSigning().');
|
|
3014
|
+
}
|
|
3015
|
+
const queryParameters = {};
|
|
3016
|
+
const headerParameters = {};
|
|
3017
|
+
headerParameters['Content-Type'] = 'application/json';
|
|
3018
|
+
if (requestParameters['idempotencyKey'] != null) {
|
|
3019
|
+
headerParameters['Idempotency-Key'] = String(requestParameters['idempotencyKey']);
|
|
3020
|
+
}
|
|
3021
|
+
if (this.configuration && this.configuration.accessToken) {
|
|
3022
|
+
const token = this.configuration.accessToken;
|
|
3023
|
+
const tokenString = yield token("apiKeyAuth", []);
|
|
3024
|
+
if (tokenString) {
|
|
3025
|
+
headerParameters["Authorization"] = `Bearer ${tokenString}`;
|
|
3026
|
+
}
|
|
3027
|
+
}
|
|
3028
|
+
const response = yield this.request({
|
|
3029
|
+
path: `/partners/{partnerId}/entry-context-signing`.replace(`{${"partnerId"}}`, encodeURIComponent(String(requestParameters['partnerId']))),
|
|
3030
|
+
method: 'PUT',
|
|
3031
|
+
headers: headerParameters,
|
|
3032
|
+
query: queryParameters,
|
|
3033
|
+
body: (0, index_1.UpdatePartnerEntryContextSigningRequestToJSON)(requestParameters['updatePartnerEntryContextSigningRequest']),
|
|
3034
|
+
}, initOverrides);
|
|
3035
|
+
return new runtime.JSONApiResponse(response, (jsonValue) => (0, index_1.PartnerEntryContextSigningFromJSON)(jsonValue));
|
|
3036
|
+
});
|
|
3037
|
+
}
|
|
3038
|
+
/**
|
|
3039
|
+
* Chooses what the gateway does with an entry whose `context` carries no valid signature. With `required: false` (the default) an entry that carries a signature is checked and refused when the signature is wrong or out of date, and an entry that carries none is accepted, as it always was. With `required: true` an entry without a valid signature is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`: use it once every page of yours that embeds a composition signs its context. Signatures cannot be required before you have made a secret (`rotatePartnerEntryContextSecret`): the answer is 409, so that you cannot lock your own compositions out of taking entries. The change reaches every part of the gateway within a minute. Saving the same choice twice leaves the same state, so a retry is harmless and `Idempotency-Key` is optional. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
3040
|
+
* Require a signed context, or stop requiring it
|
|
3041
|
+
*/
|
|
3042
|
+
updatePartnerEntryContextSigning(requestParameters, initOverrides) {
|
|
3043
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
3044
|
+
const response = yield this.updatePartnerEntryContextSigningRaw(requestParameters, initOverrides);
|
|
3045
|
+
return yield response.value();
|
|
3046
|
+
});
|
|
3047
|
+
}
|
|
2874
3048
|
/**
|
|
2875
3049
|
* Changes who gets the emails, which events you want by email and by webhook, and the address of your webhook. A key you leave out of the body is left as it was; send only what changes. **Email.** `emailRecipients` is the list of addresses (at most five). While it is empty the emails about invoices go to the billing emails of your billing profile (your contact email when there are none), and the others to your contact email. The events about money and about the standing of your account are always emailed, whatever `emailEvents` says; it narrows the others. **Webhook.** `webhookUrl` is where Widgetic sends a signed `POST` for each event, so that your own system can act on it (mark an invoice paid, warn your team that credits are low). The address must be `https` on the standard port, on a public site, and must not redirect. Setting an address when you have no secret yet makes one, and the answer carries it as `webhookSecret`: **keep it now, it is shown once**. `webhookEvents` narrows what is sent. Each call has a JSON body, `{ \"id\": \"evt_...\", \"type\": \"invoice.paid\", \"createdAt\": \"...\", \"partnerId\": \"...\", \"data\": { ... } }` (`data` is the `data` of `PartnerNotification`), and these headers: `webhook-id` (the same as `id`, and the same on every retry), `webhook-timestamp` (seconds since 1970) and `webhook-signature` (`v1,` and a base64 HMAC-SHA256). It is the Standard Webhooks scheme, so any of its libraries verifies it. By hand: take your secret without the `whsec_` prefix, decode it from base64, and sign the text `<webhook-id>.<webhook-timestamp>.<the raw body>` with it; the header holds `v1,<base64 of the result>` (two signatures separated by a space while a rotated secret overlaps). Reject a `webhook-timestamp` that is more than five minutes old. Answer with a 2xx status within ten seconds. Anything else is tried again, eight attempts in all over about two days (`listPartnerNotificationDeliveries` shows each). Delivery is at least once: if your answer was lost the same event arrives again with the same `id`, so drop what you have already handled by it. Changing the settings needs an API key with full access: they decide where your notifications go. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
2876
3050
|
* Choose where your notifications go
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Do not edit the class manually.
|
|
11
11
|
*/
|
|
12
12
|
import * as runtime from '../runtime';
|
|
13
|
-
import type { AddPartnerCreditsRequest, ConfigureAutoReloadRequest, GetPartnerCreditBalance200Response, GetPartnerDesignDefaults200Response, ListPartnerPresets200Response, MyPartners, PartnerAnalyticsByManagedUser, PartnerAnalyticsSummary, PartnerAnalyticsTimeline, PartnerAnalyticsTopWidgets, PartnerContract, PartnerNotificationDelivery, PartnerNotificationDeliveryLog, PartnerNotificationPage, PartnerNotificationSettings, PartnerNotificationSettingsChange, PartnerPreset, PartnerPresetRemoval, PartnerStorageDestination, PartnerStorageRemoval, PartnerStorageUsage, SetPartnerDesignDefaultsRequest, SetPartnerPresetRequest, SetPartnerStorageDestinationRequest, UpdatePartnerNotificationSettingsRequest } from '../models/index';
|
|
13
|
+
import type { AddPartnerCreditsRequest, ConfigureAutoReloadRequest, GetPartnerCreditBalance200Response, GetPartnerDesignDefaults200Response, ListPartnerPresets200Response, MyPartners, PartnerAnalyticsByManagedUser, PartnerAnalyticsSummary, PartnerAnalyticsTimeline, PartnerAnalyticsTopWidgets, PartnerContract, PartnerEntryContextSecret, PartnerEntryContextSigning, PartnerNotificationDelivery, PartnerNotificationDeliveryLog, PartnerNotificationPage, PartnerNotificationSettings, PartnerNotificationSettingsChange, PartnerNotificationTestEventRequest, PartnerNotificationTestEventResult, PartnerPreset, PartnerPresetRemoval, PartnerStorageDestination, PartnerStorageRemoval, PartnerStorageUsage, SetPartnerDesignDefaultsRequest, SetPartnerPresetRequest, SetPartnerStorageDestinationRequest, UpdatePartnerEntryContextSigningRequest, UpdatePartnerNotificationSettingsRequest } from '../models/index';
|
|
14
14
|
export interface AddPartnerCreditsOperationRequest {
|
|
15
15
|
partnerId: string;
|
|
16
16
|
addPartnerCreditsRequest: AddPartnerCreditsRequest;
|
|
@@ -71,6 +71,9 @@ export interface GetPartnerCreditTransactionsRequest {
|
|
|
71
71
|
export interface GetPartnerDesignDefaults0Request {
|
|
72
72
|
partnerId: string;
|
|
73
73
|
}
|
|
74
|
+
export interface GetPartnerEntryContextSigning0Request {
|
|
75
|
+
partnerId: string;
|
|
76
|
+
}
|
|
74
77
|
export interface GetPartnerNotificationSettings0Request {
|
|
75
78
|
partnerId: string;
|
|
76
79
|
}
|
|
@@ -106,10 +109,19 @@ export interface ReplayPartnerNotificationDelivery0Request {
|
|
|
106
109
|
deliveryId: string;
|
|
107
110
|
idempotencyKey?: string;
|
|
108
111
|
}
|
|
112
|
+
export interface RotatePartnerEntryContextSecret0Request {
|
|
113
|
+
partnerId: string;
|
|
114
|
+
idempotencyKey?: string;
|
|
115
|
+
}
|
|
109
116
|
export interface RotatePartnerWebhookSecret0Request {
|
|
110
117
|
partnerId: string;
|
|
111
118
|
idempotencyKey?: string;
|
|
112
119
|
}
|
|
120
|
+
export interface SendPartnerNotificationTestEvent0Request {
|
|
121
|
+
partnerId: string;
|
|
122
|
+
partnerNotificationTestEventRequest: PartnerNotificationTestEventRequest;
|
|
123
|
+
idempotencyKey?: string;
|
|
124
|
+
}
|
|
113
125
|
export interface SetPartnerDesignDefaults0Request {
|
|
114
126
|
partnerId: string;
|
|
115
127
|
setPartnerDesignDefaultsRequest: SetPartnerDesignDefaultsRequest;
|
|
@@ -123,6 +135,11 @@ export interface SetPartnerStorageDestination0Request {
|
|
|
123
135
|
partnerId: string;
|
|
124
136
|
setPartnerStorageDestinationRequest: SetPartnerStorageDestinationRequest;
|
|
125
137
|
}
|
|
138
|
+
export interface UpdatePartnerEntryContextSigning0Request {
|
|
139
|
+
partnerId: string;
|
|
140
|
+
updatePartnerEntryContextSigningRequest: UpdatePartnerEntryContextSigningRequest;
|
|
141
|
+
idempotencyKey?: string;
|
|
142
|
+
}
|
|
126
143
|
export interface UpdatePartnerNotificationSettings0Request {
|
|
127
144
|
partnerId: string;
|
|
128
145
|
updatePartnerNotificationSettingsRequest: UpdatePartnerNotificationSettingsRequest;
|
|
@@ -263,6 +280,16 @@ export declare class PartnersApi extends runtime.BaseAPI {
|
|
|
263
280
|
* Read partner-wide design defaults
|
|
264
281
|
*/
|
|
265
282
|
getPartnerDesignDefaults(requestParameters: GetPartnerDesignDefaults0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<GetPartnerDesignDefaults200Response>;
|
|
283
|
+
/**
|
|
284
|
+
* Says whether you have a secret to sign the `context` of your embeds with, when it was made, whether the secret it replaced is still accepted, and whether an entry without a valid signature is refused (`required`). The secret itself is never part of the answer: it is shown once, when it is made (`rotatePartnerEntryContextSecret`, which also explains what signing is for and how to sign). Signing covers the entries written through the gateway into the compositions of your managed users and into those of your own account. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
|
|
285
|
+
* See how the context of your embeds is signed
|
|
286
|
+
*/
|
|
287
|
+
getPartnerEntryContextSigningRaw(requestParameters: GetPartnerEntryContextSigning0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PartnerEntryContextSigning>>;
|
|
288
|
+
/**
|
|
289
|
+
* Says whether you have a secret to sign the `context` of your embeds with, when it was made, whether the secret it replaced is still accepted, and whether an entry without a valid signature is refused (`required`). The secret itself is never part of the answer: it is shown once, when it is made (`rotatePartnerEntryContextSecret`, which also explains what signing is for and how to sign). Signing covers the entries written through the gateway into the compositions of your managed users and into those of your own account. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
|
|
290
|
+
* See how the context of your embeds is signed
|
|
291
|
+
*/
|
|
292
|
+
getPartnerEntryContextSigning(requestParameters: GetPartnerEntryContextSigning0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PartnerEntryContextSigning>;
|
|
266
293
|
/**
|
|
267
294
|
* Returns who gets the emails, which events you want by email and by webhook, the address of your webhook, and whether it has a secret to sign with. The secret itself is never returned: it is shown once, when it is made. `events` lists every kind of event there is, for a settings screen. The caller must be the person who administers the partner (an API key of that account works, with the `partner:read` scope), or a Widgetic administrator.
|
|
268
295
|
* Where your notifications go
|
|
@@ -353,6 +380,16 @@ export declare class PartnersApi extends runtime.BaseAPI {
|
|
|
353
380
|
* Send a webhook delivery again
|
|
354
381
|
*/
|
|
355
382
|
replayPartnerNotificationDelivery(requestParameters: ReplayPartnerNotificationDelivery0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PartnerNotificationDelivery>;
|
|
383
|
+
/**
|
|
384
|
+
* Makes a secret to sign the `context` of your embeds with, and returns it in `secret`: **keep it now, it is shown once** and cannot be read again. Keep it on your server only: whoever holds it can write contexts your compositions accept. Call this again to make a new secret; the one it replaces is still accepted for a day, so that your server can switch without an entry being refused (making another within that day ends the overlap with the first). **What signing is for.** `<widgetic composition-id=\"...\" context=\'{\"customerId\":\"c_42\"}\'>` hands attribution to a widget, which sends it with every entry it saves. The page is yours but the browser is the visitor\'s: anybody can change that attribute and file an entry under another customer\'s id. When your server signs the context, the gateway refuses an entry whose context was changed, and the entries you keep hold attribution your server wrote. **How to sign** (on your server, for each page you render): 1. Take the context to give the widget. It may hold text and whole numbers only (within ±2^53, written without a fraction or an exponent). 2. Choose when the signature stops being good: `widgetic_exp`, in seconds since 1970 (UTC), no more than seven days from now. A minute of difference between clocks is forgiven. 3. Write the text to sign, with no spaces except those inside values: `widgetic-context.v1.<compositionId>.<widgetic_exp>.<json>`. `<compositionId>` is the id of the composition in lower case. `<json>` is the context as JSON with the keys in character-code order (so `Z` comes before `a`, and `10` before `9`), no spaces, strings escaped as JSON escapes them, and the two keys of the signature left out. 4. Sign that text: HMAC-SHA256 with the 32 bytes the secret stands for (the base64 text after `ctxsec_`), and write the result as base64url without padding. 5. Give the widget the context with two keys added: `widgetic_exp` and `widgetic_sig` (the signature). The whole attribute, the two keys included, stays within the limits of any context: at most 20 keys, 2048 bytes of JSON, strings up to 500 characters. The two keys take two of the 20 keys and 87 bytes of the 2048. A test vector, to check your code against before you rely on it. Secret `ctxsec_AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=` (the bytes 0 to 31), composition `7c9e6679-7425-40de-944b-e07fc1f90ae7`, `widgetic_exp` 1792000000 and context `{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` sign the text `widgetic-context.v1.7c9e6679-7425-40de-944b-e07fc1f90ae7.1792000000.{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` and give the signature `j6g7151F54tl9C8oEY9levaYSppHME4fAPZ7WPwL8C8`. (The secret is the example\'s, not a real one.) **What the gateway does with an entry.** When you have a secret, an entry whose context carries a signature is checked: a signature that does not match is refused with 403 `CONTEXT_SIGNATURE_INVALID`, and one that is past `widgetic_exp` with 403 `CONTEXT_SIGNATURE_EXPIRED`. When you also require signatures (`updatePartnerEntryContextSigning`) an entry whose context carries none is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`. The two keys are taken out before the entry is stored or announced: your entries and your `entry.created` events hold the context you wrote. A change you make reaches every part of the gateway within a minute. **What it does not do.** A signed context that has been seen (a page\'s source is public) can be sent again by anyone until `widgetic_exp`; when you must not accept the same context twice, put a value that is new for each page view in it (a `submissionId` you made up) and keep the ones you have seen. The signature covers the entries that reach Widgetic\'s gateway: a widget that writes straight into its own database does not pass through it. Retry this call with the same `Idempotency-Key` if its answer was lost: the answer, secret included, is then given again, and no second secret is made. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
385
|
+
* Make a secret to sign the context of your embeds
|
|
386
|
+
*/
|
|
387
|
+
rotatePartnerEntryContextSecretRaw(requestParameters: RotatePartnerEntryContextSecret0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PartnerEntryContextSecret>>;
|
|
388
|
+
/**
|
|
389
|
+
* Makes a secret to sign the `context` of your embeds with, and returns it in `secret`: **keep it now, it is shown once** and cannot be read again. Keep it on your server only: whoever holds it can write contexts your compositions accept. Call this again to make a new secret; the one it replaces is still accepted for a day, so that your server can switch without an entry being refused (making another within that day ends the overlap with the first). **What signing is for.** `<widgetic composition-id=\"...\" context=\'{\"customerId\":\"c_42\"}\'>` hands attribution to a widget, which sends it with every entry it saves. The page is yours but the browser is the visitor\'s: anybody can change that attribute and file an entry under another customer\'s id. When your server signs the context, the gateway refuses an entry whose context was changed, and the entries you keep hold attribution your server wrote. **How to sign** (on your server, for each page you render): 1. Take the context to give the widget. It may hold text and whole numbers only (within ±2^53, written without a fraction or an exponent). 2. Choose when the signature stops being good: `widgetic_exp`, in seconds since 1970 (UTC), no more than seven days from now. A minute of difference between clocks is forgiven. 3. Write the text to sign, with no spaces except those inside values: `widgetic-context.v1.<compositionId>.<widgetic_exp>.<json>`. `<compositionId>` is the id of the composition in lower case. `<json>` is the context as JSON with the keys in character-code order (so `Z` comes before `a`, and `10` before `9`), no spaces, strings escaped as JSON escapes them, and the two keys of the signature left out. 4. Sign that text: HMAC-SHA256 with the 32 bytes the secret stands for (the base64 text after `ctxsec_`), and write the result as base64url without padding. 5. Give the widget the context with two keys added: `widgetic_exp` and `widgetic_sig` (the signature). The whole attribute, the two keys included, stays within the limits of any context: at most 20 keys, 2048 bytes of JSON, strings up to 500 characters. The two keys take two of the 20 keys and 87 bytes of the 2048. A test vector, to check your code against before you rely on it. Secret `ctxsec_AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8=` (the bytes 0 to 31), composition `7c9e6679-7425-40de-944b-e07fc1f90ae7`, `widgetic_exp` 1792000000 and context `{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` sign the text `widgetic-context.v1.7c9e6679-7425-40de-944b-e07fc1f90ae7.1792000000.{\"customerId\":\"c_42\",\"plan\":\"pro\",\"seats\":3}` and give the signature `j6g7151F54tl9C8oEY9levaYSppHME4fAPZ7WPwL8C8`. (The secret is the example\'s, not a real one.) **What the gateway does with an entry.** When you have a secret, an entry whose context carries a signature is checked: a signature that does not match is refused with 403 `CONTEXT_SIGNATURE_INVALID`, and one that is past `widgetic_exp` with 403 `CONTEXT_SIGNATURE_EXPIRED`. When you also require signatures (`updatePartnerEntryContextSigning`) an entry whose context carries none is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`. The two keys are taken out before the entry is stored or announced: your entries and your `entry.created` events hold the context you wrote. A change you make reaches every part of the gateway within a minute. **What it does not do.** A signed context that has been seen (a page\'s source is public) can be sent again by anyone until `widgetic_exp`; when you must not accept the same context twice, put a value that is new for each page view in it (a `submissionId` you made up) and keep the ones you have seen. The signature covers the entries that reach Widgetic\'s gateway: a widget that writes straight into its own database does not pass through it. Retry this call with the same `Idempotency-Key` if its answer was lost: the answer, secret included, is then given again, and no second secret is made. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
390
|
+
* Make a secret to sign the context of your embeds
|
|
391
|
+
*/
|
|
392
|
+
rotatePartnerEntryContextSecret(requestParameters: RotatePartnerEntryContextSecret0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PartnerEntryContextSecret>;
|
|
356
393
|
/**
|
|
357
394
|
* Makes a new secret to sign your webhook with, and returns it in `webhookSecret`: **keep it now, it is shown once** and cannot be read again. Use it when the secret was lost, or may have leaked. The secret you had keeps signing beside the new one for a day, so that your receiver can switch without a call being rejected: during that day each call carries two signatures (see `updatePartnerNotificationSettings` for how they are verified). Rotating again within the day ends the overlap with the first secret. Retry this call with the same `Idempotency-Key` if its answer was lost: the answer, secret included, is then given again, and no second secret is made. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
358
395
|
* Make a new secret for your webhook
|
|
@@ -363,6 +400,16 @@ export declare class PartnersApi extends runtime.BaseAPI {
|
|
|
363
400
|
* Make a new secret for your webhook
|
|
364
401
|
*/
|
|
365
402
|
rotatePartnerWebhookSecret(requestParameters: RotatePartnerWebhookSecret0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PartnerNotificationSettingsChange>;
|
|
403
|
+
/**
|
|
404
|
+
* Sends ONE signed call, right now, to the webhook address you saved under notification settings, with a sample of what an event of the type you name carries, and answers how it went: whether your receiver answered with a 2xx status, which status, how long it took, and why not when it did not arrive. Use it to write and try your receiver (above all the signature check) before a real event happens. The call is made like every other: it is signed with your current secret (and the previous one while a rotation overlaps), it carries the headers `webhook-id`, `webhook-timestamp`, `webhook-signature` and `x-widgetic-event` (the event type), and its body is `{ \"id\", \"type\", \"createdAt\", \"partnerId\", \"data\" }`. Three things differ. `id` starts with `evt_test_` and is new every time, so a receiver that remembers ids can tell a test from an event and drop it. `data` holds made-up values of the shape a real event of that type carries (`PartnerNotification` describes each), never anything about your account. And the call is made once: it is not tried again, nothing is stored, and it appears neither in the delivery log nor in the notification list. It is sent whatever `webhookEvents` says: a test is not filtered by what you subscribed to. The answer is 200 whether or not your receiver took the call (read `delivered`); a call that gets no answer within ten seconds is given up and reported as a `timeout`. A webhook address and a signing secret must be saved first (`updatePartnerNotificationSettings`); until then the answer is 409. This needs an API key with full access, and `Idempotency-Key` is required: a retry with the same key gets the first answer back and no second call is made. The caller must be the person who administers the partner, or a Widgetic administrator. Five tests a minute.
|
|
405
|
+
* Send a test event to your webhook
|
|
406
|
+
*/
|
|
407
|
+
sendPartnerNotificationTestEventRaw(requestParameters: SendPartnerNotificationTestEvent0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PartnerNotificationTestEventResult>>;
|
|
408
|
+
/**
|
|
409
|
+
* Sends ONE signed call, right now, to the webhook address you saved under notification settings, with a sample of what an event of the type you name carries, and answers how it went: whether your receiver answered with a 2xx status, which status, how long it took, and why not when it did not arrive. Use it to write and try your receiver (above all the signature check) before a real event happens. The call is made like every other: it is signed with your current secret (and the previous one while a rotation overlaps), it carries the headers `webhook-id`, `webhook-timestamp`, `webhook-signature` and `x-widgetic-event` (the event type), and its body is `{ \"id\", \"type\", \"createdAt\", \"partnerId\", \"data\" }`. Three things differ. `id` starts with `evt_test_` and is new every time, so a receiver that remembers ids can tell a test from an event and drop it. `data` holds made-up values of the shape a real event of that type carries (`PartnerNotification` describes each), never anything about your account. And the call is made once: it is not tried again, nothing is stored, and it appears neither in the delivery log nor in the notification list. It is sent whatever `webhookEvents` says: a test is not filtered by what you subscribed to. The answer is 200 whether or not your receiver took the call (read `delivered`); a call that gets no answer within ten seconds is given up and reported as a `timeout`. A webhook address and a signing secret must be saved first (`updatePartnerNotificationSettings`); until then the answer is 409. This needs an API key with full access, and `Idempotency-Key` is required: a retry with the same key gets the first answer back and no second call is made. The caller must be the person who administers the partner, or a Widgetic administrator. Five tests a minute.
|
|
410
|
+
* Send a test event to your webhook
|
|
411
|
+
*/
|
|
412
|
+
sendPartnerNotificationTestEvent(requestParameters: SendPartnerNotificationTestEvent0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PartnerNotificationTestEventResult>;
|
|
366
413
|
/**
|
|
367
414
|
* Send `{ \"design\": { ... } }` or `{ \"design\": null }` to remove. New compositions merge this layer over the widget base and under each managed user\'s default and the request body.
|
|
368
415
|
* Set or clear partner-wide design defaults
|
|
@@ -393,6 +440,16 @@ export declare class PartnersApi extends runtime.BaseAPI {
|
|
|
393
440
|
* Set where a partner\'s uploaded files are stored
|
|
394
441
|
*/
|
|
395
442
|
setPartnerStorageDestination(requestParameters: SetPartnerStorageDestination0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PartnerStorageDestination>;
|
|
443
|
+
/**
|
|
444
|
+
* Chooses what the gateway does with an entry whose `context` carries no valid signature. With `required: false` (the default) an entry that carries a signature is checked and refused when the signature is wrong or out of date, and an entry that carries none is accepted, as it always was. With `required: true` an entry without a valid signature is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`: use it once every page of yours that embeds a composition signs its context. Signatures cannot be required before you have made a secret (`rotatePartnerEntryContextSecret`): the answer is 409, so that you cannot lock your own compositions out of taking entries. The change reaches every part of the gateway within a minute. Saving the same choice twice leaves the same state, so a retry is harmless and `Idempotency-Key` is optional. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
445
|
+
* Require a signed context, or stop requiring it
|
|
446
|
+
*/
|
|
447
|
+
updatePartnerEntryContextSigningRaw(requestParameters: UpdatePartnerEntryContextSigning0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PartnerEntryContextSigning>>;
|
|
448
|
+
/**
|
|
449
|
+
* Chooses what the gateway does with an entry whose `context` carries no valid signature. With `required: false` (the default) an entry that carries a signature is checked and refused when the signature is wrong or out of date, and an entry that carries none is accepted, as it always was. With `required: true` an entry without a valid signature is refused with 403 `CONTEXT_SIGNATURE_REQUIRED`: use it once every page of yours that embeds a composition signs its context. Signatures cannot be required before you have made a secret (`rotatePartnerEntryContextSecret`): the answer is 409, so that you cannot lock your own compositions out of taking entries. The change reaches every part of the gateway within a minute. Saving the same choice twice leaves the same state, so a retry is harmless and `Idempotency-Key` is optional. This needs an API key with full access. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
450
|
+
* Require a signed context, or stop requiring it
|
|
451
|
+
*/
|
|
452
|
+
updatePartnerEntryContextSigning(requestParameters: UpdatePartnerEntryContextSigning0Request, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PartnerEntryContextSigning>;
|
|
396
453
|
/**
|
|
397
454
|
* Changes who gets the emails, which events you want by email and by webhook, and the address of your webhook. A key you leave out of the body is left as it was; send only what changes. **Email.** `emailRecipients` is the list of addresses (at most five). While it is empty the emails about invoices go to the billing emails of your billing profile (your contact email when there are none), and the others to your contact email. The events about money and about the standing of your account are always emailed, whatever `emailEvents` says; it narrows the others. **Webhook.** `webhookUrl` is where Widgetic sends a signed `POST` for each event, so that your own system can act on it (mark an invoice paid, warn your team that credits are low). The address must be `https` on the standard port, on a public site, and must not redirect. Setting an address when you have no secret yet makes one, and the answer carries it as `webhookSecret`: **keep it now, it is shown once**. `webhookEvents` narrows what is sent. Each call has a JSON body, `{ \"id\": \"evt_...\", \"type\": \"invoice.paid\", \"createdAt\": \"...\", \"partnerId\": \"...\", \"data\": { ... } }` (`data` is the `data` of `PartnerNotification`), and these headers: `webhook-id` (the same as `id`, and the same on every retry), `webhook-timestamp` (seconds since 1970) and `webhook-signature` (`v1,` and a base64 HMAC-SHA256). It is the Standard Webhooks scheme, so any of its libraries verifies it. By hand: take your secret without the `whsec_` prefix, decode it from base64, and sign the text `<webhook-id>.<webhook-timestamp>.<the raw body>` with it; the header holds `v1,<base64 of the result>` (two signatures separated by a space while a rotated secret overlaps). Reject a `webhook-timestamp` that is more than five minutes old. Answer with a 2xx status within ten seconds. Anything else is tried again, eight attempts in all over about two days (`listPartnerNotificationDeliveries` shows each). Delivery is at least once: if your answer was lost the same event arrives again with the same `id`, so drop what you have already handled by it. Changing the settings needs an API key with full access: they decide where your notifications go. The caller must be the person who administers the partner, or a Widgetic administrator.
|
|
398
455
|
* Choose where your notifications go
|