Module: Svix
- Defined in:
- lib/svix/util.rb,
lib/svix/svix.rb,
lib/svix/errors.rb,
lib/svix/version.rb,
lib/svix/webhook.rb,
lib/svix/internal.rb,
lib/svix/api_error.rb,
lib/svix/api/health.rb,
lib/svix/api/ingest.rb,
lib/svix/api/message.rb,
lib/svix/api/endpoint.rb,
lib/svix/api/connector.rb,
lib/svix/api/streaming.rb,
lib/svix/api/event_type.rb,
lib/svix/api/statistics.rb,
lib/svix/http_error_out.rb,
lib/svix/api/application.rb,
lib/svix/api/environment.rb,
lib/svix/api/integration.rb,
lib/svix/models/event_in.rb,
lib/svix/models/ordering.rb,
lib/svix/models/event_out.rb,
lib/svix/models/replay_in.rb,
lib/svix/models/s3_config.rb,
lib/svix/models/stream_in.rb,
lib/svix/svix_http_client.rb,
lib/svix/validation_error.rb,
lib/svix/api/ingest_source.rb,
lib/svix/models/message_in.rb,
lib/svix/models/recover_in.rb,
lib/svix/models/replay_out.rb,
lib/svix/models/stream_out.rb,
lib/svix/api/authentication.rb,
lib/svix/api/message_poller.rb,
lib/svix/api/streaming_sink.rb,
lib/svix/models/cron_config.rb,
lib/svix/models/endpoint_in.rb,
lib/svix/models/message_out.rb,
lib/svix/models/recover_out.rb,
lib/svix/models/sink_status.rb,
lib/svix/models/svix_config.rb,
lib/svix/models/vapi_config.rb,
lib/svix/models/zoom_config.rb,
lib/svix/api/background_task.rb,
lib/svix/api/ingest_endpoint.rb,
lib/svix/api/message_attempt.rb,
lib/svix/models/connector_in.rb,
lib/svix/models/endpoint_out.rb,
lib/svix/models/slack_config.rb,
lib/svix/models/stream_patch.rb,
lib/svix/api/streaming_events.rb,
lib/svix/api/streaming_stream.rb,
lib/svix/models/api_token_out.rb,
lib/svix/models/connector_out.rb,
lib/svix/models/event_type_in.rb,
lib/svix/models/github_config.rb,
lib/svix/models/rutter_config.rb,
lib/svix/models/stripe_config.rb,
lib/svix/models/telnyx_config.rb,
lib/svix/models/veriff_config.rb,
lib/svix/http_validation_error.rb,
lib/svix/models/application_in.rb,
lib/svix/models/connector_kind.rb,
lib/svix/models/empty_response.rb,
lib/svix/models/endpoint_patch.rb,
lib/svix/models/endpoint_stats.rb,
lib/svix/models/environment_in.rb,
lib/svix/models/event_type_out.rb,
lib/svix/models/hubspot_config.rb,
lib/svix/models/integration_in.rb,
lib/svix/models/message_status.rb,
lib/svix/models/orum_io_config.rb,
lib/svix/models/port_io_config.rb,
lib/svix/models/segment_config.rb,
lib/svix/models/shopify_config.rb,
lib/svix/models/sink_status_in.rb,
lib/svix/models/stream_sink_in.rb,
lib/svix/models/application_out.rb,
lib/svix/models/connector_patch.rb,
lib/svix/models/docusign_config.rb,
lib/svix/models/easypost_config.rb,
lib/svix/models/endpoint_update.rb,
lib/svix/models/environment_out.rb,
lib/svix/models/integration_out.rb,
lib/svix/models/sink_secret_out.rb,
lib/svix/models/stream_sink_out.rb,
lib/svix/models/svix_config_out.rb,
lib/svix/models/vapi_config_out.rb,
lib/svix/models/zoom_config_out.rb,
lib/svix/api/operational_webhook.rb,
lib/svix/models/airwallex_config.rb,
lib/svix/models/checkbook_config.rb,
lib/svix/models/connector_update.rb,
lib/svix/models/event_example_in.rb,
lib/svix/models/event_stream_out.rb,
lib/svix/models/event_type_patch.rb,
lib/svix/models/ingest_source_in.rb,
lib/svix/models/panda_doc_config.rb,
lib/svix/models/rotate_token_out.rb,
lib/svix/models/sink_http_config.rb,
lib/svix/models/slack_config_out.rb,
lib/svix/api/streaming_event_type.rb,
lib/svix/models/adobe_sign_config.rb,
lib/svix/models/application_patch.rb,
lib/svix/models/connector_product.rb,
lib/svix/models/event_type_update.rb,
lib/svix/models/github_config_out.rb,
lib/svix/models/http_patch_config.rb,
lib/svix/models/ingest_source_out.rb,
lib/svix/models/rutter_config_out.rb,
lib/svix/models/sink_transform_in.rb,
lib/svix/models/status_code_class.rb,
lib/svix/models/stream_sink_patch.rb,
lib/svix/models/stripe_config_out.rb,
lib/svix/models/telnyx_config_out.rb,
lib/svix/models/veriff_config_out.rb,
lib/svix/models/app_usage_stats_in.rb,
lib/svix/models/http_attempt_times.rb,
lib/svix/models/hubspot_config_out.rb,
lib/svix/models/ingest_endpoint_in.rb,
lib/svix/models/integration_update.rb,
lib/svix/models/orum_io_config_out.rb,
lib/svix/models/port_io_config_out.rb,
lib/svix/models/segment_config_out.rb,
lib/svix/models/shopify_config_out.rb,
lib/svix/models/app_usage_stats_out.rb,
lib/svix/models/background_task_out.rb,
lib/svix/models/docusign_config_out.rb,
lib/svix/models/easypost_config_out.rb,
lib/svix/models/endpoint_headers_in.rb,
lib/svix/models/endpoint_secret_out.rb,
lib/svix/models/ingest_endpoint_out.rb,
lib/svix/models/integration_key_out.rb,
lib/svix/models/message_attempt_log.rb,
lib/svix/models/message_attempt_out.rb,
lib/svix/models/message_status_text.rb,
lib/svix/models/sink_otel_v1_config.rb,
lib/svix/models/airwallex_config_out.rb,
lib/svix/models/app_portal_access_in.rb,
lib/svix/models/background_task_type.rb,
lib/svix/models/checkbook_config_out.rb,
lib/svix/models/dashboard_access_out.rb,
lib/svix/models/endpoint_headers_out.rb,
lib/svix/models/endpoint_message_out.rb,
lib/svix/models/message_endpoint_out.rb,
lib/svix/models/panda_doc_config_out.rb,
lib/svix/models/polling_endpoint_out.rb,
lib/svix/models/stream_event_type_in.rb,
lib/svix/models/adobe_sign_config_out.rb,
lib/svix/models/app_portal_access_out.rb,
lib/svix/models/app_portal_capability.rb,
lib/svix/models/stream_event_type_out.rb,
lib/svix/models/amazon_s3_patch_config.rb,
lib/svix/models/background_task_status.rb,
lib/svix/models/endpoint_created_event.rb,
lib/svix/models/endpoint_deleted_event.rb,
lib/svix/models/endpoint_enabled_event.rb,
lib/svix/models/endpoint_updated_event.rb,
lib/svix/models/ingest_endpoint_update.rb,
lib/svix/models/rotate_poller_token_in.rb,
lib/svix/models/create_stream_events_in.rb,
lib/svix/models/endpoint_disabled_event.rb,
lib/svix/models/sink_transformation_out.rb,
lib/svix/models/stream_event_type_patch.rb,
lib/svix/models/stream_portal_access_in.rb,
lib/svix/models/create_stream_events_out.rb,
lib/svix/models/event_type_from_open_api.rb,
lib/svix/models/expunge_all_contents_out.rb,
lib/svix/models/list_response_stream_out.rb,
lib/svix/api/operational_webhook_endpoint.rb,
lib/svix/models/aggregate_event_types_out.rb,
lib/svix/models/azure_blob_storage_config.rb,
lib/svix/models/endpoint_disabled_trigger.rb,
lib/svix/models/endpoint_headers_patch_in.rb,
lib/svix/models/endpoint_secret_rotate_in.rb,
lib/svix/models/ingest_endpoint_secret_in.rb,
lib/svix/models/list_response_message_out.rb,
lib/svix/models/message_attempt_log_event.rb,
lib/svix/models/otel_tracing_patch_config.rb,
lib/svix/models/endpoint_transformation_in.rb,
lib/svix/models/http_sink_headers_patch_in.rb,
lib/svix/models/ingest_endpoint_headers_in.rb,
lib/svix/models/ingest_endpoint_secret_out.rb,
lib/svix/models/list_response_endpoint_out.rb,
lib/svix/models/application_token_expire_in.rb,
lib/svix/models/endpoint_created_event_data.rb,
lib/svix/models/endpoint_deleted_event_data.rb,
lib/svix/models/endpoint_enabled_event_data.rb,
lib/svix/models/endpoint_transformation_out.rb,
lib/svix/models/endpoint_updated_event_data.rb,
lib/svix/models/google_cloud_storage_config.rb,
lib/svix/models/ingest_endpoint_headers_out.rb,
lib/svix/models/list_response_connector_out.rb,
lib/svix/models/message_attempt_failed_data.rb,
lib/svix/models/endpoint_disabled_event_data.rb,
lib/svix/models/list_response_event_type_out.rb,
lib/svix/models/message_attempt_trigger_type.rb,
lib/svix/models/polling_endpoint_message_out.rb,
lib/svix/models/endpoint_transformation_patch.rb,
lib/svix/models/event_type_import_open_api_in.rb,
lib/svix/models/list_response_application_out.rb,
lib/svix/models/list_response_integration_out.rb,
lib/svix/models/list_response_stream_sink_out.rb,
lib/svix/models/message_attempt_failing_event.rb,
lib/svix/models/background_task_finished_event.rb,
lib/svix/models/event_type_import_open_api_out.rb,
lib/svix/models/ingest_endpoint_disabled_event.rb,
lib/svix/models/azure_blob_storage_patch_config.rb,
lib/svix/models/background_task_finished_event2.rb,
lib/svix/models/list_response_ingest_source_out.rb,
lib/svix/models/message_attempt_exhausted_event.rb,
lib/svix/models/message_attempt_recovered_event.rb,
lib/svix/models/operational_webhook_endpoint_in.rb,
lib/svix/models/operational_webhook_endpoint_out.rb,
lib/svix/models/google_cloud_storage_patch_config.rb,
lib/svix/models/list_response_background_task_out.rb,
lib/svix/models/list_response_ingest_endpoint_out.rb,
lib/svix/models/list_response_message_attempt_out.rb,
lib/svix/models/polling_endpoint_consumer_seek_in.rb,
lib/svix/models/ingest_endpoint_transformation_out.rb,
lib/svix/models/list_response_endpoint_message_out.rb,
lib/svix/models/list_response_message_endpoint_out.rb,
lib/svix/models/message_attempt_failing_event_data.rb,
lib/svix/models/polling_endpoint_consumer_seek_out.rb,
lib/svix/models/event_type_import_open_api_out_data.rb,
lib/svix/models/ingest_endpoint_disabled_event_data.rb,
lib/svix/models/list_response_stream_event_type_out.rb,
lib/svix/models/operational_webhook_endpoint_update.rb,
lib/svix/models/ingest_endpoint_transformation_patch.rb,
lib/svix/models/ingest_message_attempt_failing_event.rb,
lib/svix/models/message_attempt_exhausted_event_data.rb,
lib/svix/models/message_attempt_recovered_event_data.rb,
lib/svix/models/ingest_message_attempt_exhausted_event.rb,
lib/svix/models/ingest_message_attempt_recovered_event.rb,
lib/svix/models/operational_webhook_endpoint_secret_in.rb,
lib/svix/models/ingest_source_consumer_portal_access_in.rb,
lib/svix/models/operational_webhook_endpoint_headers_in.rb,
lib/svix/models/operational_webhook_endpoint_secret_out.rb,
lib/svix/models/operational_webhook_endpoint_headers_out.rb,
lib/svix/models/ingest_message_attempt_failing_event_data.rb,
lib/svix/models/ingest_message_attempt_exhausted_event_data.rb,
lib/svix/models/ingest_message_attempt_recovered_event_data.rb,
lib/svix/models/list_response_operational_webhook_endpoint_out.rb
Overview
This file is @generated
Defined Under Namespace
Classes: AdobeSignConfig, AdobeSignConfigOut, AggregateEventTypesOut, AirwallexConfig, AirwallexConfigOut, AmazonS3PatchConfig, ApiError, ApiTokenOut, AppPortalAccessIn, AppPortalAccessOut, AppPortalCapability, AppUsageStatsIn, AppUsageStatsOut, Application, ApplicationIn, ApplicationOut, ApplicationPatch, ApplicationTokenExpireIn, Authentication, AzureBlobStorageConfig, AzureBlobStoragePatchConfig, BackgroundTask, BackgroundTaskFinishedEvent, BackgroundTaskFinishedEvent2, BackgroundTaskOut, BackgroundTaskStatus, BackgroundTaskType, CheckbookConfig, CheckbookConfigOut, Client, Connector, ConnectorIn, ConnectorKind, ConnectorOut, ConnectorPatch, ConnectorProduct, ConnectorUpdate, CreateStreamEventsIn, CreateStreamEventsOut, CronConfig, DashboardAccessOut, DocusignConfig, DocusignConfigOut, EasypostConfig, EasypostConfigOut, EmptyResponse, Endpoint, EndpointCreatedEvent, EndpointCreatedEventData, EndpointDeletedEvent, EndpointDeletedEventData, EndpointDisabledEvent, EndpointDisabledEventData, EndpointDisabledTrigger, EndpointEnabledEvent, EndpointEnabledEventData, EndpointHeadersIn, EndpointHeadersOut, EndpointHeadersPatchIn, EndpointIn, EndpointMessageOut, EndpointOut, EndpointPatch, EndpointSecretOut, EndpointSecretRotateIn, EndpointStats, EndpointTransformationIn, EndpointTransformationOut, EndpointTransformationPatch, EndpointUpdate, EndpointUpdatedEvent, EndpointUpdatedEventData, Environment, EnvironmentIn, EnvironmentOut, EventExampleIn, EventIn, EventOut, EventStreamOut, EventType, EventTypeFromOpenApi, EventTypeImportOpenApiIn, EventTypeImportOpenApiOut, EventTypeImportOpenApiOutData, EventTypeIn, EventTypeOut, EventTypePatch, EventTypeUpdate, ExpungeAllContentsOut, GithubConfig, GithubConfigOut, GoogleCloudStorageConfig, GoogleCloudStoragePatchConfig, Health, HttpAttemptTimes, HttpPatchConfig, HttpSinkHeadersPatchIn, HubspotConfig, HubspotConfigOut, Ingest, IngestEndpoint, IngestEndpointDisabledEvent, IngestEndpointDisabledEventData, IngestEndpointHeadersIn, IngestEndpointHeadersOut, IngestEndpointIn, IngestEndpointOut, IngestEndpointSecretIn, IngestEndpointSecretOut, IngestEndpointTransformationOut, IngestEndpointTransformationPatch, IngestEndpointUpdate, IngestMessageAttemptExhaustedEvent, IngestMessageAttemptExhaustedEventData, IngestMessageAttemptFailingEvent, IngestMessageAttemptFailingEventData, IngestMessageAttemptRecoveredEvent, IngestMessageAttemptRecoveredEventData, IngestSource, IngestSourceConsumerPortalAccessIn, IngestSourceIn, IngestSourceInConfig, IngestSourceOut, IngestSourceOutConfig, Integration, IntegrationIn, IntegrationKeyOut, IntegrationOut, IntegrationUpdate, ListResponseApplicationOut, ListResponseBackgroundTaskOut, ListResponseConnectorOut, ListResponseEndpointMessageOut, ListResponseEndpointOut, ListResponseEventTypeOut, ListResponseIngestEndpointOut, ListResponseIngestSourceOut, ListResponseIntegrationOut, ListResponseMessageAttemptOut, ListResponseMessageEndpointOut, ListResponseMessageOut, ListResponseOperationalWebhookEndpointOut, ListResponseStreamEventTypeOut, ListResponseStreamOut, ListResponseStreamSinkOut, Message, MessageAttempt, MessageAttemptExhaustedEvent, MessageAttemptExhaustedEventData, MessageAttemptFailedData, MessageAttemptFailingEvent, MessageAttemptFailingEventData, MessageAttemptLog, MessageAttemptLogEvent, MessageAttemptOut, MessageAttemptRecoveredEvent, MessageAttemptRecoveredEventData, MessageAttemptTriggerType, MessageEndpointOut, MessageIn, MessageOut, MessagePoller, MessageStatus, MessageStatusText, OperationalWebhook, OperationalWebhookEndpoint, OperationalWebhookEndpointHeadersIn, OperationalWebhookEndpointHeadersOut, OperationalWebhookEndpointIn, OperationalWebhookEndpointOut, OperationalWebhookEndpointSecretIn, OperationalWebhookEndpointSecretOut, OperationalWebhookEndpointUpdate, Ordering, OrumIoConfig, OrumIoConfigOut, OtelTracingPatchConfig, PandaDocConfig, PandaDocConfigOut, PollingEndpointConsumerSeekIn, PollingEndpointConsumerSeekOut, PollingEndpointMessageOut, PollingEndpointOut, PortIoConfig, PortIoConfigOut, RecoverIn, RecoverOut, ReplayIn, ReplayOut, RotatePollerTokenIn, RotateTokenOut, RutterConfig, RutterConfigOut, S3Config, SegmentConfig, SegmentConfigOut, ShopifyConfig, ShopifyConfigOut, SinkHttpConfig, SinkOtelV1Config, SinkSecretOut, SinkStatus, SinkStatusIn, SinkTransformIn, SinkTransformationOut, SlackConfig, SlackConfigOut, Statistics, StatusCodeClass, StreamEventTypeIn, StreamEventTypeOut, StreamEventTypePatch, StreamIn, StreamOut, StreamPatch, StreamPortalAccessIn, StreamSinkIn, StreamSinkInConfig, StreamSinkOut, StreamSinkOutConfig, StreamSinkPatch, StreamSinkPatchConfig, Streaming, StreamingEventType, StreamingEvents, StreamingSink, StreamingStream, StripeConfig, StripeConfigOut, SvixConfig, SvixConfigOut, SvixError, SvixHttpClient, SvixOptions, TelnyxConfig, TelnyxConfigOut, VapiConfig, VapiConfigOut, VeriffConfig, VeriffConfigOut, Webhook, WebhookSigningError, WebhookVerificationError, ZoomConfig, ZoomConfigOut
Constant Summary collapse
- VERSION =
"1.83.0"
Class Method Summary collapse
- .deserialize_date(v) ⇒ Object
- .fixed_length_secure_compare(a, b) ⇒ Object
-
.message_in_raw(attributes = {}) ⇒ Object
Creates a [‘MessageIn`] with a raw string payload.
-
.secure_compare(a, b) ⇒ Object
Secure string comparison for strings of variable length.
- .serialize_primitive(v) ⇒ Object
- .serialize_schema_ref(v) ⇒ Object
Class Method Details
.deserialize_date(v) ⇒ Object
51 52 53 |
# File 'lib/svix/util.rb', line 51 def deserialize_date(v) DateTime.rfc3339(v) end |
.fixed_length_secure_compare(a, b) ⇒ Object
12 13 14 |
# File 'lib/svix/util.rb', line 12 def fixed_length_secure_compare(a, b) OpenSSL.fixed_length_secure_compare(a, b) end |
.message_in_raw(attributes = {}) ⇒ Object
Creates a [‘MessageIn`] with a raw string payload.
The payload is not normalized on the server. Normally, payloads are required to be JSON, and Svix will minify the payload before sending the webhook (for example, by removing extraneous whitespace or unnecessarily escaped characters in strings). With this function, the payload will be sent “as is”, without any minification or other processing.
‘attributes` must be a string. An extra attribute `content_type` is accepted that sets the `content-type` header of the webhook sent by Svix, overwriting the default of `application/json` if specified. Other than that, the attributes are forwarded [`MessageIn.new`], so all the same ones are accepted.
21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/svix/api/message.rb', line 21 def (attributes = {}) attributes[:transformations_params] ||= {} attributes[:transformations_params][:rawPayload] = attributes[:payload] attributes[:payload] = {} content_type = attributes.delete(:content_type) if content_type != nil attributes[:transformations_params][:headers] ||= {} attributes[:transformations_params][:headers][:"content-type"] = content_type end MessageIn.new(attributes) end |
.secure_compare(a, b) ⇒ Object
Secure string comparison for strings of variable length.
While a timing attack would not be able to discern the content of a secret compared via secure_compare, it is possible to determine the secret length. This should be considered when using secure_compare to compare weak, short secrets to user input.
35 36 37 |
# File 'lib/svix/util.rb', line 35 def secure_compare(a, b) a.length == b.length && fixed_length_secure_compare(a, b) end |
.serialize_primitive(v) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/svix/util.rb', line 41 def serialize_primitive(v) if v.kind_of?(Time) v.utc.to_datetime.rfc3339 else v end end |
.serialize_schema_ref(v) ⇒ Object
57 58 59 60 61 62 63 64 65 |
# File 'lib/svix/util.rb', line 57 def serialize_schema_ref(v) # Enums are a schema_ref but since we pass them around using the underlying value # we need to check if they have the serialize method before calling it if v.class.method_defined? :serialize v.serialize else v end end |