webhookdb 1.3.1 → 1.5.0
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.
- checksums.yaml +4 -4
- data/admin-dist/assets/{index-6aebf805.js → index-9306dd28.js} +39 -39
- data/admin-dist/index.html +1 -1
- data/data/messages/templates/errors/generic_backfill.email.liquid +30 -0
- data/data/messages/templates/errors/icalendar_fetch.email.liquid +8 -2
- data/data/messages/templates/specs/with_fields.email.liquid +6 -0
- data/db/migrations/026_undo_integration_backfill_cursor.rb +2 -0
- data/db/migrations/032_remove_db_defaults.rb +2 -0
- data/db/migrations/043_text_search.rb +2 -0
- data/db/migrations/045_system_log.rb +15 -0
- data/db/migrations/046_indices.rb +14 -0
- data/db/migrations/047_sync_parallelism.rb +9 -0
- data/db/migrations/048_sync_stats.rb +9 -0
- data/db/migrations/049_error_handlers.rb +18 -0
- data/db/migrations/050_logged_webhook_indices.rb +25 -0
- data/db/migrations/051_partitioning.rb +9 -0
- data/integration/async_spec.rb +0 -2
- data/integration/service_integrations_spec.rb +0 -2
- data/lib/amigo/durable_job.rb +2 -2
- data/lib/amigo/job_in_context.rb +12 -0
- data/lib/webhookdb/admin.rb +6 -0
- data/lib/webhookdb/admin_api/data_provider.rb +1 -0
- data/lib/webhookdb/admin_api/entities.rb +8 -0
- data/lib/webhookdb/aggregate_result.rb +1 -1
- data/lib/webhookdb/api/entities.rb +6 -2
- data/lib/webhookdb/api/error_handlers.rb +104 -0
- data/lib/webhookdb/api/helpers.rb +25 -1
- data/lib/webhookdb/api/icalproxy.rb +22 -0
- data/lib/webhookdb/api/install.rb +2 -1
- data/lib/webhookdb/api/organizations.rb +6 -0
- data/lib/webhookdb/api/saved_queries.rb +1 -0
- data/lib/webhookdb/api/saved_views.rb +1 -0
- data/lib/webhookdb/api/service_integrations.rb +2 -1
- data/lib/webhookdb/api/sync_targets.rb +1 -1
- data/lib/webhookdb/api/system.rb +5 -0
- data/lib/webhookdb/api/webhook_subscriptions.rb +1 -0
- data/lib/webhookdb/api.rb +4 -1
- data/lib/webhookdb/apps.rb +4 -0
- data/lib/webhookdb/async/autoscaler.rb +10 -0
- data/lib/webhookdb/async/job.rb +4 -0
- data/lib/webhookdb/async/scheduled_job.rb +4 -0
- data/lib/webhookdb/async.rb +2 -0
- data/lib/webhookdb/backfiller.rb +17 -4
- data/lib/webhookdb/concurrent.rb +96 -0
- data/lib/webhookdb/connection_cache.rb +57 -10
- data/lib/webhookdb/console.rb +1 -1
- data/lib/webhookdb/customer/reset_code.rb +1 -1
- data/lib/webhookdb/customer.rb +5 -4
- data/lib/webhookdb/database_document.rb +1 -1
- data/lib/webhookdb/db_adapter/default_sql.rb +1 -14
- data/lib/webhookdb/db_adapter/partition.rb +14 -0
- data/lib/webhookdb/db_adapter/partitioning.rb +8 -0
- data/lib/webhookdb/db_adapter/pg.rb +77 -5
- data/lib/webhookdb/db_adapter/snowflake.rb +15 -6
- data/lib/webhookdb/db_adapter.rb +25 -3
- data/lib/webhookdb/dbutil.rb +2 -0
- data/lib/webhookdb/errors.rb +34 -0
- data/lib/webhookdb/fixtures/logged_webhooks.rb +4 -0
- data/lib/webhookdb/fixtures/organization_error_handlers.rb +20 -0
- data/lib/webhookdb/http.rb +30 -16
- data/lib/webhookdb/icalendar.rb +30 -9
- data/lib/webhookdb/jobs/amigo_test_jobs.rb +1 -1
- data/lib/webhookdb/jobs/backfill.rb +21 -25
- data/lib/webhookdb/jobs/create_mirror_table.rb +3 -4
- data/lib/webhookdb/jobs/deprecated_jobs.rb +3 -0
- data/lib/webhookdb/jobs/emailer.rb +2 -1
- data/lib/webhookdb/jobs/front_signalwire_message_channel_sync_inbound.rb +15 -0
- data/lib/webhookdb/jobs/icalendar_delete_stale_cancelled_events.rb +7 -2
- data/lib/webhookdb/jobs/icalendar_enqueue_syncs.rb +74 -11
- data/lib/webhookdb/jobs/icalendar_enqueue_syncs_for_urls.rb +22 -0
- data/lib/webhookdb/jobs/icalendar_sync.rb +21 -9
- data/lib/webhookdb/jobs/increase_event_handler.rb +3 -2
- data/lib/webhookdb/jobs/{logged_webhook_replay.rb → logged_webhooks_replay.rb} +5 -3
- data/lib/webhookdb/jobs/message_dispatched.rb +1 -0
- data/lib/webhookdb/jobs/model_event_system_log_tracker.rb +112 -0
- data/lib/webhookdb/jobs/monitor_metrics.rb +29 -0
- data/lib/webhookdb/jobs/organization_database_migration_notify.rb +32 -0
- data/lib/webhookdb/jobs/organization_database_migration_run.rb +4 -6
- data/lib/webhookdb/jobs/organization_error_handler_dispatch.rb +26 -0
- data/lib/webhookdb/jobs/prepare_database_connections.rb +1 -0
- data/lib/webhookdb/jobs/process_webhook.rb +11 -12
- data/lib/webhookdb/jobs/renew_watch_channel.rb +10 -10
- data/lib/webhookdb/jobs/replication_migration.rb +5 -2
- data/lib/webhookdb/jobs/reset_code_create_dispatch.rb +1 -2
- data/lib/webhookdb/jobs/scheduled_backfills.rb +2 -2
- data/lib/webhookdb/jobs/send_invite.rb +3 -2
- data/lib/webhookdb/jobs/send_test_webhook.rb +1 -3
- data/lib/webhookdb/jobs/send_webhook.rb +4 -5
- data/lib/webhookdb/jobs/stale_row_deleter.rb +31 -0
- data/lib/webhookdb/jobs/sync_target_enqueue_scheduled.rb +3 -0
- data/lib/webhookdb/jobs/sync_target_run_sync.rb +9 -15
- data/lib/webhookdb/jobs/{webhook_subscription_delivery_attempt.rb → webhook_subscription_delivery_event.rb} +5 -8
- data/lib/webhookdb/liquid/expose.rb +1 -1
- data/lib/webhookdb/liquid/filters.rb +1 -1
- data/lib/webhookdb/liquid/partial.rb +2 -2
- data/lib/webhookdb/logged_webhook/resilient.rb +3 -3
- data/lib/webhookdb/logged_webhook.rb +16 -2
- data/lib/webhookdb/message/email_transport.rb +1 -1
- data/lib/webhookdb/message/transport.rb +1 -1
- data/lib/webhookdb/message.rb +55 -4
- data/lib/webhookdb/messages/error_generic_backfill.rb +47 -0
- data/lib/webhookdb/messages/error_icalendar_fetch.rb +5 -0
- data/lib/webhookdb/messages/error_signalwire_send_sms.rb +2 -0
- data/lib/webhookdb/messages/specs.rb +16 -0
- data/lib/webhookdb/organization/alerting.rb +56 -6
- data/lib/webhookdb/organization/database_migration.rb +2 -2
- data/lib/webhookdb/organization/db_builder.rb +5 -4
- data/lib/webhookdb/organization/error_handler.rb +141 -0
- data/lib/webhookdb/organization.rb +76 -10
- data/lib/webhookdb/postgres/model.rb +1 -0
- data/lib/webhookdb/postgres/model_utilities.rb +2 -0
- data/lib/webhookdb/postgres.rb +3 -4
- data/lib/webhookdb/replicator/base.rb +202 -68
- data/lib/webhookdb/replicator/base_stale_row_deleter.rb +165 -0
- data/lib/webhookdb/replicator/column.rb +2 -0
- data/lib/webhookdb/replicator/email_octopus_contact_v1.rb +0 -1
- data/lib/webhookdb/replicator/fake.rb +106 -88
- data/lib/webhookdb/replicator/front_signalwire_message_channel_app_v1.rb +131 -61
- data/lib/webhookdb/replicator/github_repo_v1_mixin.rb +17 -0
- data/lib/webhookdb/replicator/icalendar_calendar_v1.rb +197 -32
- data/lib/webhookdb/replicator/icalendar_event_v1.rb +20 -44
- data/lib/webhookdb/replicator/icalendar_event_v1_partitioned.rb +33 -0
- data/lib/webhookdb/replicator/intercom_contact_v1.rb +1 -0
- data/lib/webhookdb/replicator/intercom_conversation_v1.rb +1 -0
- data/lib/webhookdb/replicator/intercom_v1_mixin.rb +49 -6
- data/lib/webhookdb/replicator/partitionable_mixin.rb +116 -0
- data/lib/webhookdb/replicator/shopify_v1_mixin.rb +1 -1
- data/lib/webhookdb/replicator/signalwire_message_v1.rb +31 -1
- data/lib/webhookdb/replicator/sponsy_v1_mixin.rb +1 -1
- data/lib/webhookdb/replicator/transistor_episode_stats_v1.rb +0 -1
- data/lib/webhookdb/replicator/transistor_episode_v1.rb +11 -5
- data/lib/webhookdb/replicator/webhook_request.rb +8 -0
- data/lib/webhookdb/replicator.rb +6 -3
- data/lib/webhookdb/service/helpers.rb +4 -0
- data/lib/webhookdb/service/middleware.rb +6 -2
- data/lib/webhookdb/service/view_api.rb +1 -1
- data/lib/webhookdb/service.rb +10 -10
- data/lib/webhookdb/service_integration.rb +19 -1
- data/lib/webhookdb/signalwire.rb +1 -1
- data/lib/webhookdb/spec_helpers/async.rb +0 -4
- data/lib/webhookdb/spec_helpers/sentry.rb +32 -0
- data/lib/webhookdb/spec_helpers/shared_examples_for_replicators.rb +239 -64
- data/lib/webhookdb/spec_helpers.rb +1 -0
- data/lib/webhookdb/sync_target.rb +202 -34
- data/lib/webhookdb/system_log_event.rb +9 -0
- data/lib/webhookdb/tasks/admin.rb +1 -1
- data/lib/webhookdb/tasks/annotate.rb +1 -1
- data/lib/webhookdb/tasks/db.rb +13 -1
- data/lib/webhookdb/tasks/docs.rb +1 -1
- data/lib/webhookdb/tasks/fixture.rb +1 -1
- data/lib/webhookdb/tasks/message.rb +1 -1
- data/lib/webhookdb/tasks/regress.rb +1 -1
- data/lib/webhookdb/tasks/release.rb +1 -1
- data/lib/webhookdb/tasks/sidekiq.rb +1 -1
- data/lib/webhookdb/tasks/specs.rb +1 -1
- data/lib/webhookdb/version.rb +1 -1
- data/lib/webhookdb/webhook_subscription.rb +3 -4
- data/lib/webhookdb.rb +34 -8
- metadata +114 -64
- data/lib/webhookdb/jobs/customer_created_notify_internal.rb +0 -22
- data/lib/webhookdb/jobs/organization_database_migration_notify_finished.rb +0 -21
- data/lib/webhookdb/jobs/organization_database_migration_notify_started.rb +0 -21
- /data/lib/webhookdb/jobs/{logged_webhook_resilient_replay.rb → logged_webhooks_resilient_replay.rb} +0 -0
- /data/lib/webhookdb/jobs/{webhook_resource_notify_integrations.rb → webhookdb_resource_notify_integrations.rb} +0 -0
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webhookdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- WebhookDB
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-03-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,42 +16,42 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '7.
|
19
|
+
version: '7.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '7.
|
26
|
+
version: '7.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: appydays
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 0.12.2
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 0.12.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: aws-sdk-pricing
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '1.
|
47
|
+
version: '1.70'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '1.
|
54
|
+
version: '1.70'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: aws-sdk-sts
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,34 +108,48 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '1.8'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: browser
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '6.2'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '6.2'
|
111
125
|
- !ruby/object:Gem::Dependency
|
112
126
|
name: clipboard
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
114
128
|
requirements:
|
115
129
|
- - "~>"
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: '1.
|
131
|
+
version: '1.4'
|
118
132
|
type: :runtime
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: '1.
|
138
|
+
version: '1.4'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: concurrent-ruby
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - "~>"
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '1.
|
145
|
+
version: '1.3'
|
132
146
|
type: :runtime
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - "~>"
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '1.
|
152
|
+
version: '1.3'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
154
|
name: down
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,14 +240,28 @@ dependencies:
|
|
226
240
|
requirements:
|
227
241
|
- - "~>"
|
228
242
|
- !ruby/object:Gem::Version
|
229
|
-
version: '0.
|
243
|
+
version: '0.22'
|
244
|
+
type: :runtime
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - "~>"
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0.22'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: httpx
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - "~>"
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '1.4'
|
230
258
|
type: :runtime
|
231
259
|
prerelease: false
|
232
260
|
version_requirements: !ruby/object:Gem::Requirement
|
233
261
|
requirements:
|
234
262
|
- - "~>"
|
235
263
|
- !ruby/object:Gem::Version
|
236
|
-
version: '
|
264
|
+
version: '1.4'
|
237
265
|
- !ruby/object:Gem::Dependency
|
238
266
|
name: ice_cube
|
239
267
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,28 +282,28 @@ dependencies:
|
|
254
282
|
requirements:
|
255
283
|
- - "~>"
|
256
284
|
- !ruby/object:Gem::Version
|
257
|
-
version: '2.
|
285
|
+
version: '2.10'
|
258
286
|
type: :runtime
|
259
287
|
prerelease: false
|
260
288
|
version_requirements: !ruby/object:Gem::Requirement
|
261
289
|
requirements:
|
262
290
|
- - "~>"
|
263
291
|
- !ruby/object:Gem::Version
|
264
|
-
version: '2.
|
292
|
+
version: '2.10'
|
265
293
|
- !ruby/object:Gem::Dependency
|
266
294
|
name: liquid
|
267
295
|
requirement: !ruby/object:Gem::Requirement
|
268
296
|
requirements:
|
269
297
|
- - "~>"
|
270
298
|
- !ruby/object:Gem::Version
|
271
|
-
version: '5.
|
299
|
+
version: '5.6'
|
272
300
|
type: :runtime
|
273
301
|
prerelease: false
|
274
302
|
version_requirements: !ruby/object:Gem::Requirement
|
275
303
|
requirements:
|
276
304
|
- - "~>"
|
277
305
|
- !ruby/object:Gem::Version
|
278
|
-
version: '5.
|
306
|
+
version: '5.6'
|
279
307
|
- !ruby/object:Gem::Dependency
|
280
308
|
name: mail
|
281
309
|
requirement: !ruby/object:Gem::Requirement
|
@@ -310,42 +338,42 @@ dependencies:
|
|
310
338
|
requirements:
|
311
339
|
- - "~>"
|
312
340
|
- !ruby/object:Gem::Version
|
313
|
-
version: '1.
|
341
|
+
version: '1.13'
|
314
342
|
type: :runtime
|
315
343
|
prerelease: false
|
316
344
|
version_requirements: !ruby/object:Gem::Requirement
|
317
345
|
requirements:
|
318
346
|
- - "~>"
|
319
347
|
- !ruby/object:Gem::Version
|
320
|
-
version: '1.
|
348
|
+
version: '1.13'
|
321
349
|
- !ruby/object:Gem::Dependency
|
322
350
|
name: money
|
323
351
|
requirement: !ruby/object:Gem::Requirement
|
324
352
|
requirements:
|
325
353
|
- - "~>"
|
326
354
|
- !ruby/object:Gem::Version
|
327
|
-
version: '6.
|
355
|
+
version: '6.19'
|
328
356
|
type: :runtime
|
329
357
|
prerelease: false
|
330
358
|
version_requirements: !ruby/object:Gem::Requirement
|
331
359
|
requirements:
|
332
360
|
- - "~>"
|
333
361
|
- !ruby/object:Gem::Version
|
334
|
-
version: '6.
|
362
|
+
version: '6.19'
|
335
363
|
- !ruby/object:Gem::Dependency
|
336
364
|
name: nokogiri
|
337
365
|
requirement: !ruby/object:Gem::Requirement
|
338
366
|
requirements:
|
339
367
|
- - "~>"
|
340
368
|
- !ruby/object:Gem::Version
|
341
|
-
version: '1.
|
369
|
+
version: '1.18'
|
342
370
|
type: :runtime
|
343
371
|
prerelease: false
|
344
372
|
version_requirements: !ruby/object:Gem::Requirement
|
345
373
|
requirements:
|
346
374
|
- - "~>"
|
347
375
|
- !ruby/object:Gem::Version
|
348
|
-
version: '1.
|
376
|
+
version: '1.18'
|
349
377
|
- !ruby/object:Gem::Dependency
|
350
378
|
name: oj
|
351
379
|
requirement: !ruby/object:Gem::Requirement
|
@@ -380,70 +408,70 @@ dependencies:
|
|
380
408
|
requirements:
|
381
409
|
- - "~>"
|
382
410
|
- !ruby/object:Gem::Version
|
383
|
-
version: '2.
|
411
|
+
version: '2.21'
|
384
412
|
type: :runtime
|
385
413
|
prerelease: false
|
386
414
|
version_requirements: !ruby/object:Gem::Requirement
|
387
415
|
requirements:
|
388
416
|
- - "~>"
|
389
417
|
- !ruby/object:Gem::Version
|
390
|
-
version: '2.
|
418
|
+
version: '2.21'
|
391
419
|
- !ruby/object:Gem::Dependency
|
392
420
|
name: platform-api
|
393
421
|
requirement: !ruby/object:Gem::Requirement
|
394
422
|
requirements:
|
395
423
|
- - "~>"
|
396
424
|
- !ruby/object:Gem::Version
|
397
|
-
version: '3.
|
425
|
+
version: '3.7'
|
398
426
|
type: :runtime
|
399
427
|
prerelease: false
|
400
428
|
version_requirements: !ruby/object:Gem::Requirement
|
401
429
|
requirements:
|
402
430
|
- - "~>"
|
403
431
|
- !ruby/object:Gem::Version
|
404
|
-
version: '3.
|
432
|
+
version: '3.7'
|
405
433
|
- !ruby/object:Gem::Dependency
|
406
434
|
name: premailer
|
407
435
|
requirement: !ruby/object:Gem::Requirement
|
408
436
|
requirements:
|
409
437
|
- - "~>"
|
410
438
|
- !ruby/object:Gem::Version
|
411
|
-
version: '1.
|
439
|
+
version: '1.27'
|
412
440
|
type: :runtime
|
413
441
|
prerelease: false
|
414
442
|
version_requirements: !ruby/object:Gem::Requirement
|
415
443
|
requirements:
|
416
444
|
- - "~>"
|
417
445
|
- !ruby/object:Gem::Version
|
418
|
-
version: '1.
|
446
|
+
version: '1.27'
|
419
447
|
- !ruby/object:Gem::Dependency
|
420
448
|
name: pry
|
421
449
|
requirement: !ruby/object:Gem::Requirement
|
422
450
|
requirements:
|
423
451
|
- - "~>"
|
424
452
|
- !ruby/object:Gem::Version
|
425
|
-
version: '0.
|
453
|
+
version: '0.15'
|
426
454
|
type: :runtime
|
427
455
|
prerelease: false
|
428
456
|
version_requirements: !ruby/object:Gem::Requirement
|
429
457
|
requirements:
|
430
458
|
- - "~>"
|
431
459
|
- !ruby/object:Gem::Version
|
432
|
-
version: '0.
|
460
|
+
version: '0.15'
|
433
461
|
- !ruby/object:Gem::Dependency
|
434
462
|
name: puma
|
435
463
|
requirement: !ruby/object:Gem::Requirement
|
436
464
|
requirements:
|
437
465
|
- - "~>"
|
438
466
|
- !ruby/object:Gem::Version
|
439
|
-
version: '6.
|
467
|
+
version: '6.5'
|
440
468
|
type: :runtime
|
441
469
|
prerelease: false
|
442
470
|
version_requirements: !ruby/object:Gem::Requirement
|
443
471
|
requirements:
|
444
472
|
- - "~>"
|
445
473
|
- !ruby/object:Gem::Version
|
446
|
-
version: '6.
|
474
|
+
version: '6.5'
|
447
475
|
- !ruby/object:Gem::Dependency
|
448
476
|
name: rack-cors
|
449
477
|
requirement: !ruby/object:Gem::Requirement
|
@@ -534,70 +562,70 @@ dependencies:
|
|
534
562
|
requirements:
|
535
563
|
- - "~>"
|
536
564
|
- !ruby/object:Gem::Version
|
537
|
-
version: '0.
|
565
|
+
version: '0.23'
|
538
566
|
type: :runtime
|
539
567
|
prerelease: false
|
540
568
|
version_requirements: !ruby/object:Gem::Requirement
|
541
569
|
requirements:
|
542
570
|
- - "~>"
|
543
571
|
- !ruby/object:Gem::Version
|
544
|
-
version: '0.
|
572
|
+
version: '0.23'
|
545
573
|
- !ruby/object:Gem::Dependency
|
546
574
|
name: semantic_logger
|
547
575
|
requirement: !ruby/object:Gem::Requirement
|
548
576
|
requirements:
|
549
577
|
- - "~>"
|
550
578
|
- !ruby/object:Gem::Version
|
551
|
-
version: '4.
|
579
|
+
version: '4.16'
|
552
580
|
type: :runtime
|
553
581
|
prerelease: false
|
554
582
|
version_requirements: !ruby/object:Gem::Requirement
|
555
583
|
requirements:
|
556
584
|
- - "~>"
|
557
585
|
- !ruby/object:Gem::Version
|
558
|
-
version: '4.
|
586
|
+
version: '4.16'
|
559
587
|
- !ruby/object:Gem::Dependency
|
560
588
|
name: sentry-ruby
|
561
589
|
requirement: !ruby/object:Gem::Requirement
|
562
590
|
requirements:
|
563
591
|
- - "~>"
|
564
592
|
- !ruby/object:Gem::Version
|
565
|
-
version: '5.
|
593
|
+
version: '5.22'
|
566
594
|
type: :runtime
|
567
595
|
prerelease: false
|
568
596
|
version_requirements: !ruby/object:Gem::Requirement
|
569
597
|
requirements:
|
570
598
|
- - "~>"
|
571
599
|
- !ruby/object:Gem::Version
|
572
|
-
version: '5.
|
600
|
+
version: '5.22'
|
573
601
|
- !ruby/object:Gem::Dependency
|
574
602
|
name: sentry-sidekiq
|
575
603
|
requirement: !ruby/object:Gem::Requirement
|
576
604
|
requirements:
|
577
605
|
- - "~>"
|
578
606
|
- !ruby/object:Gem::Version
|
579
|
-
version: '5.
|
607
|
+
version: '5.22'
|
580
608
|
type: :runtime
|
581
609
|
prerelease: false
|
582
610
|
version_requirements: !ruby/object:Gem::Requirement
|
583
611
|
requirements:
|
584
612
|
- - "~>"
|
585
613
|
- !ruby/object:Gem::Version
|
586
|
-
version: '5.
|
614
|
+
version: '5.22'
|
587
615
|
- !ruby/object:Gem::Dependency
|
588
616
|
name: sequel
|
589
617
|
requirement: !ruby/object:Gem::Requirement
|
590
618
|
requirements:
|
591
619
|
- - "~>"
|
592
620
|
- !ruby/object:Gem::Version
|
593
|
-
version: '5.
|
621
|
+
version: '5.88'
|
594
622
|
type: :runtime
|
595
623
|
prerelease: false
|
596
624
|
version_requirements: !ruby/object:Gem::Requirement
|
597
625
|
requirements:
|
598
626
|
- - "~>"
|
599
627
|
- !ruby/object:Gem::Version
|
600
|
-
version: '5.
|
628
|
+
version: '5.88'
|
601
629
|
- !ruby/object:Gem::Dependency
|
602
630
|
name: sequel-annotate
|
603
631
|
requirement: !ruby/object:Gem::Requirement
|
@@ -646,14 +674,14 @@ dependencies:
|
|
646
674
|
requirements:
|
647
675
|
- - "~>"
|
648
676
|
- !ruby/object:Gem::Version
|
649
|
-
version: '1.
|
677
|
+
version: '1.6'
|
650
678
|
type: :runtime
|
651
679
|
prerelease: false
|
652
680
|
version_requirements: !ruby/object:Gem::Requirement
|
653
681
|
requirements:
|
654
682
|
- - "~>"
|
655
683
|
- !ruby/object:Gem::Version
|
656
|
-
version: '1.
|
684
|
+
version: '1.6'
|
657
685
|
- !ruby/object:Gem::Dependency
|
658
686
|
name: sequel-soft-deletes
|
659
687
|
requirement: !ruby/object:Gem::Requirement
|
@@ -702,20 +730,14 @@ dependencies:
|
|
702
730
|
requirements:
|
703
731
|
- - "~>"
|
704
732
|
- !ruby/object:Gem::Version
|
705
|
-
version: '1.
|
706
|
-
- - ">="
|
707
|
-
- !ruby/object:Gem::Version
|
708
|
-
version: 1.6.2
|
733
|
+
version: '1.9'
|
709
734
|
type: :runtime
|
710
735
|
prerelease: false
|
711
736
|
version_requirements: !ruby/object:Gem::Requirement
|
712
737
|
requirements:
|
713
738
|
- - "~>"
|
714
739
|
- !ruby/object:Gem::Version
|
715
|
-
version: '1.
|
716
|
-
- - ">="
|
717
|
-
- !ruby/object:Gem::Version
|
718
|
-
version: 1.6.2
|
740
|
+
version: '1.9'
|
719
741
|
- !ruby/object:Gem::Dependency
|
720
742
|
name: sidekiq-cron
|
721
743
|
requirement: !ruby/object:Gem::Requirement
|
@@ -750,14 +772,14 @@ dependencies:
|
|
750
772
|
requirements:
|
751
773
|
- - "~>"
|
752
774
|
- !ruby/object:Gem::Version
|
753
|
-
version: '10.
|
775
|
+
version: '10.15'
|
754
776
|
type: :runtime
|
755
777
|
prerelease: false
|
756
778
|
version_requirements: !ruby/object:Gem::Requirement
|
757
779
|
requirements:
|
758
780
|
- - "~>"
|
759
781
|
- !ruby/object:Gem::Version
|
760
|
-
version: '10.
|
782
|
+
version: '10.15'
|
761
783
|
- !ruby/object:Gem::Dependency
|
762
784
|
name: uuidx
|
763
785
|
requirement: !ruby/object:Gem::Requirement
|
@@ -802,7 +824,7 @@ executables: []
|
|
802
824
|
extensions: []
|
803
825
|
extra_rdoc_files: []
|
804
826
|
files:
|
805
|
-
- admin-dist/assets/index-
|
827
|
+
- admin-dist/assets/index-9306dd28.js
|
806
828
|
- admin-dist/favicon.ico
|
807
829
|
- admin-dist/index.html
|
808
830
|
- admin-dist/manifest.json
|
@@ -817,6 +839,7 @@ files:
|
|
817
839
|
- data/messages/partials/signoff.liquid
|
818
840
|
- data/messages/replicators/url-recorder.liquid
|
819
841
|
- data/messages/styles/v1.liquid
|
842
|
+
- data/messages/templates/errors/generic_backfill.email.liquid
|
820
843
|
- data/messages/templates/errors/icalendar_fetch.email.liquid
|
821
844
|
- data/messages/templates/errors/signalwire_send_sms.email.liquid
|
822
845
|
- data/messages/templates/invite.email.liquid
|
@@ -828,6 +851,7 @@ files:
|
|
828
851
|
- data/messages/templates/specs/basic.fake.liquid
|
829
852
|
- data/messages/templates/specs/with_field.email.liquid
|
830
853
|
- data/messages/templates/specs/with_field.fake.liquid
|
854
|
+
- data/messages/templates/specs/with_fields.email.liquid
|
831
855
|
- data/messages/templates/specs/with_include.email.liquid
|
832
856
|
- data/messages/templates/specs/with_partial.email.liquid
|
833
857
|
- data/messages/templates/verification.email.liquid
|
@@ -888,6 +912,13 @@ files:
|
|
888
912
|
- db/migrations/042_sint_lock.rb
|
889
913
|
- db/migrations/043_text_search.rb
|
890
914
|
- db/migrations/044_oauth_session_token_cache.rb
|
915
|
+
- db/migrations/045_system_log.rb
|
916
|
+
- db/migrations/046_indices.rb
|
917
|
+
- db/migrations/047_sync_parallelism.rb
|
918
|
+
- db/migrations/048_sync_stats.rb
|
919
|
+
- db/migrations/049_error_handlers.rb
|
920
|
+
- db/migrations/050_logged_webhook_indices.rb
|
921
|
+
- db/migrations/051_partitioning.rb
|
891
922
|
- integration/async_spec.rb
|
892
923
|
- integration/auth_spec.rb
|
893
924
|
- integration/database_spec.rb
|
@@ -895,6 +926,7 @@ files:
|
|
895
926
|
- integration/service_integrations_spec.rb
|
896
927
|
- integration/system_spec.rb
|
897
928
|
- lib/amigo/durable_job.rb
|
929
|
+
- lib/amigo/job_in_context.rb
|
898
930
|
- lib/pry/clipboard.rb
|
899
931
|
- lib/sequel/advisory_lock.rb
|
900
932
|
- lib/sequel/plugins/text_searchable.rb
|
@@ -913,7 +945,9 @@ files:
|
|
913
945
|
- lib/webhookdb/api/db.rb
|
914
946
|
- lib/webhookdb/api/demo.rb
|
915
947
|
- lib/webhookdb/api/entities.rb
|
948
|
+
- lib/webhookdb/api/error_handlers.rb
|
916
949
|
- lib/webhookdb/api/helpers.rb
|
950
|
+
- lib/webhookdb/api/icalproxy.rb
|
917
951
|
- lib/webhookdb/api/install.rb
|
918
952
|
- lib/webhookdb/api/me.rb
|
919
953
|
- lib/webhookdb/api/organizations.rb
|
@@ -939,6 +973,7 @@ files:
|
|
939
973
|
- lib/webhookdb/backfill_job/service_integration_lock.rb
|
940
974
|
- lib/webhookdb/backfiller.rb
|
941
975
|
- lib/webhookdb/cloudflare.rb
|
976
|
+
- lib/webhookdb/concurrent.rb
|
942
977
|
- lib/webhookdb/connection_cache.rb
|
943
978
|
- lib/webhookdb/console.rb
|
944
979
|
- lib/webhookdb/convertkit.rb
|
@@ -949,6 +984,8 @@ files:
|
|
949
984
|
- lib/webhookdb/db_adapter.rb
|
950
985
|
- lib/webhookdb/db_adapter/column_types.rb
|
951
986
|
- lib/webhookdb/db_adapter/default_sql.rb
|
987
|
+
- lib/webhookdb/db_adapter/partition.rb
|
988
|
+
- lib/webhookdb/db_adapter/partitioning.rb
|
952
989
|
- lib/webhookdb/db_adapter/pg.rb
|
953
990
|
- lib/webhookdb/db_adapter/snowflake.rb
|
954
991
|
- lib/webhookdb/dbutil.rb
|
@@ -957,6 +994,7 @@ files:
|
|
957
994
|
- lib/webhookdb/email_octopus.rb
|
958
995
|
- lib/webhookdb/enumerable.rb
|
959
996
|
- lib/webhookdb/envfixer.rb
|
997
|
+
- lib/webhookdb/errors.rb
|
960
998
|
- lib/webhookdb/fixtures.rb
|
961
999
|
- lib/webhookdb/fixtures/backfill_jobs.rb
|
962
1000
|
- lib/webhookdb/fixtures/customers.rb
|
@@ -967,6 +1005,7 @@ files:
|
|
967
1005
|
- lib/webhookdb/fixtures/message_deliveries.rb
|
968
1006
|
- lib/webhookdb/fixtures/oauth_sessions.rb
|
969
1007
|
- lib/webhookdb/fixtures/organization_database_migrations.rb
|
1008
|
+
- lib/webhookdb/fixtures/organization_error_handlers.rb
|
970
1009
|
- lib/webhookdb/fixtures/organization_memberships.rb
|
971
1010
|
- lib/webhookdb/fixtures/organizations.rb
|
972
1011
|
- lib/webhookdb/fixtures/reset_codes.rb
|
@@ -994,22 +1033,25 @@ files:
|
|
994
1033
|
- lib/webhookdb/jobs/backfill.rb
|
995
1034
|
- lib/webhookdb/jobs/create_mirror_table.rb
|
996
1035
|
- lib/webhookdb/jobs/create_stripe_customer.rb
|
997
|
-
- lib/webhookdb/jobs/customer_created_notify_internal.rb
|
998
1036
|
- lib/webhookdb/jobs/demo_mode_sync_data.rb
|
999
1037
|
- lib/webhookdb/jobs/deprecated_jobs.rb
|
1000
1038
|
- lib/webhookdb/jobs/developer_alert_handle.rb
|
1001
1039
|
- lib/webhookdb/jobs/durable_job_recheck_poller.rb
|
1002
1040
|
- lib/webhookdb/jobs/emailer.rb
|
1041
|
+
- lib/webhookdb/jobs/front_signalwire_message_channel_sync_inbound.rb
|
1003
1042
|
- lib/webhookdb/jobs/icalendar_delete_stale_cancelled_events.rb
|
1004
1043
|
- lib/webhookdb/jobs/icalendar_enqueue_syncs.rb
|
1044
|
+
- lib/webhookdb/jobs/icalendar_enqueue_syncs_for_urls.rb
|
1005
1045
|
- lib/webhookdb/jobs/icalendar_sync.rb
|
1006
1046
|
- lib/webhookdb/jobs/increase_event_handler.rb
|
1007
|
-
- lib/webhookdb/jobs/
|
1008
|
-
- lib/webhookdb/jobs/
|
1047
|
+
- lib/webhookdb/jobs/logged_webhooks_replay.rb
|
1048
|
+
- lib/webhookdb/jobs/logged_webhooks_resilient_replay.rb
|
1009
1049
|
- lib/webhookdb/jobs/message_dispatched.rb
|
1010
|
-
- lib/webhookdb/jobs/
|
1011
|
-
- lib/webhookdb/jobs/
|
1050
|
+
- lib/webhookdb/jobs/model_event_system_log_tracker.rb
|
1051
|
+
- lib/webhookdb/jobs/monitor_metrics.rb
|
1052
|
+
- lib/webhookdb/jobs/organization_database_migration_notify.rb
|
1012
1053
|
- lib/webhookdb/jobs/organization_database_migration_run.rb
|
1054
|
+
- lib/webhookdb/jobs/organization_error_handler_dispatch.rb
|
1013
1055
|
- lib/webhookdb/jobs/prepare_database_connections.rb
|
1014
1056
|
- lib/webhookdb/jobs/process_webhook.rb
|
1015
1057
|
- lib/webhookdb/jobs/renew_watch_channel.rb
|
@@ -1019,11 +1061,12 @@ files:
|
|
1019
1061
|
- lib/webhookdb/jobs/send_invite.rb
|
1020
1062
|
- lib/webhookdb/jobs/send_test_webhook.rb
|
1021
1063
|
- lib/webhookdb/jobs/send_webhook.rb
|
1064
|
+
- lib/webhookdb/jobs/stale_row_deleter.rb
|
1022
1065
|
- lib/webhookdb/jobs/sync_target_enqueue_scheduled.rb
|
1023
1066
|
- lib/webhookdb/jobs/sync_target_run_sync.rb
|
1024
1067
|
- lib/webhookdb/jobs/trim_logged_webhooks.rb
|
1025
|
-
- lib/webhookdb/jobs/
|
1026
|
-
- lib/webhookdb/jobs/
|
1068
|
+
- lib/webhookdb/jobs/webhook_subscription_delivery_event.rb
|
1069
|
+
- lib/webhookdb/jobs/webhookdb_resource_notify_integrations.rb
|
1027
1070
|
- lib/webhookdb/json.rb
|
1028
1071
|
- lib/webhookdb/liquid/expose.rb
|
1029
1072
|
- lib/webhookdb/liquid/filters.rb
|
@@ -1039,6 +1082,7 @@ files:
|
|
1039
1082
|
- lib/webhookdb/message/liquid_drops.rb
|
1040
1083
|
- lib/webhookdb/message/template.rb
|
1041
1084
|
- lib/webhookdb/message/transport.rb
|
1085
|
+
- lib/webhookdb/messages/error_generic_backfill.rb
|
1042
1086
|
- lib/webhookdb/messages/error_icalendar_fetch.rb
|
1043
1087
|
- lib/webhookdb/messages/error_signalwire_send_sms.rb
|
1044
1088
|
- lib/webhookdb/messages/invite.rb
|
@@ -1060,6 +1104,7 @@ files:
|
|
1060
1104
|
- lib/webhookdb/organization/alerting.rb
|
1061
1105
|
- lib/webhookdb/organization/database_migration.rb
|
1062
1106
|
- lib/webhookdb/organization/db_builder.rb
|
1107
|
+
- lib/webhookdb/organization/error_handler.rb
|
1063
1108
|
- lib/webhookdb/organization_membership.rb
|
1064
1109
|
- lib/webhookdb/phone_number.rb
|
1065
1110
|
- lib/webhookdb/plaid.rb
|
@@ -1078,6 +1123,7 @@ files:
|
|
1078
1123
|
- lib/webhookdb/replicator/atom_single_feed_v1.rb
|
1079
1124
|
- lib/webhookdb/replicator/aws_pricing_v1.rb
|
1080
1125
|
- lib/webhookdb/replicator/base.rb
|
1126
|
+
- lib/webhookdb/replicator/base_stale_row_deleter.rb
|
1081
1127
|
- lib/webhookdb/replicator/column.rb
|
1082
1128
|
- lib/webhookdb/replicator/convertkit_broadcast_v1.rb
|
1083
1129
|
- lib/webhookdb/replicator/convertkit_subscriber_v1.rb
|
@@ -1102,6 +1148,7 @@ files:
|
|
1102
1148
|
- lib/webhookdb/replicator/github_repository_event_v1.rb
|
1103
1149
|
- lib/webhookdb/replicator/icalendar_calendar_v1.rb
|
1104
1150
|
- lib/webhookdb/replicator/icalendar_event_v1.rb
|
1151
|
+
- lib/webhookdb/replicator/icalendar_event_v1_partitioned.rb
|
1105
1152
|
- lib/webhookdb/replicator/increase_account_number_v1.rb
|
1106
1153
|
- lib/webhookdb/replicator/increase_account_transfer_v1.rb
|
1107
1154
|
- lib/webhookdb/replicator/increase_account_v1.rb
|
@@ -1118,6 +1165,7 @@ files:
|
|
1118
1165
|
- lib/webhookdb/replicator/intercom_marketplace_root_v1.rb
|
1119
1166
|
- lib/webhookdb/replicator/intercom_v1_mixin.rb
|
1120
1167
|
- lib/webhookdb/replicator/oauth_refresh_access_token_mixin.rb
|
1168
|
+
- lib/webhookdb/replicator/partitionable_mixin.rb
|
1121
1169
|
- lib/webhookdb/replicator/plivo_sms_inbound_v1.rb
|
1122
1170
|
- lib/webhookdb/replicator/postmark_inbound_message_v1.rb
|
1123
1171
|
- lib/webhookdb/replicator/postmark_outbound_message_event_v1.rb
|
@@ -1178,6 +1226,7 @@ files:
|
|
1178
1226
|
- lib/webhookdb/spec_helpers/integration.rb
|
1179
1227
|
- lib/webhookdb/spec_helpers/message.rb
|
1180
1228
|
- lib/webhookdb/spec_helpers/postgres.rb
|
1229
|
+
- lib/webhookdb/spec_helpers/sentry.rb
|
1181
1230
|
- lib/webhookdb/spec_helpers/service.rb
|
1182
1231
|
- lib/webhookdb/spec_helpers/shared_examples_for_columns.rb
|
1183
1232
|
- lib/webhookdb/spec_helpers/shared_examples_for_replicators.rb
|
@@ -1186,6 +1235,7 @@ files:
|
|
1186
1235
|
- lib/webhookdb/stripe.rb
|
1187
1236
|
- lib/webhookdb/subscription.rb
|
1188
1237
|
- lib/webhookdb/sync_target.rb
|
1238
|
+
- lib/webhookdb/system_log_event.rb
|
1189
1239
|
- lib/webhookdb/tasks.rb
|
1190
1240
|
- lib/webhookdb/tasks/admin.rb
|
1191
1241
|
- lib/webhookdb/tasks/annotate.rb
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "webhookdb/async/job"
|
4
|
-
|
5
|
-
class Webhookdb::Jobs::CustomerCreatedNotifyInternal
|
6
|
-
extend Webhookdb::Async::Job
|
7
|
-
|
8
|
-
on "webhookdb.customer.created"
|
9
|
-
|
10
|
-
def _perform(event)
|
11
|
-
customer = self.lookup_model(Webhookdb::Customer, event)
|
12
|
-
Webhookdb::DeveloperAlert.new(
|
13
|
-
subsystem: "Customer Created",
|
14
|
-
emoji: ":hook:",
|
15
|
-
fallback: "New customer created: #{customer.inspect}",
|
16
|
-
fields: [
|
17
|
-
{title: "Id", value: customer.id, short: true},
|
18
|
-
{title: "Email", value: customer.email, short: true},
|
19
|
-
],
|
20
|
-
).emit
|
21
|
-
end
|
22
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "webhookdb/async/job"
|
4
|
-
require "webhookdb/messages/org_database_migration_finished"
|
5
|
-
|
6
|
-
class Webhookdb::Jobs::OrganizationDatabaseMigrationNotifyFinished
|
7
|
-
extend Webhookdb::Async::Job
|
8
|
-
|
9
|
-
on "webhookdb.organization.databasemigration.updated"
|
10
|
-
|
11
|
-
def _perform(event)
|
12
|
-
dbm = self.lookup_model(Webhookdb::Organization::DatabaseMigration, event)
|
13
|
-
case event.payload[1]
|
14
|
-
when changed(:finished_at, from: nil)
|
15
|
-
Webhookdb::Idempotency.once_ever.under_key("org-dbmigration-finish-#{dbm.id}") do
|
16
|
-
msg = Webhookdb::Messages::OrgDatabaseMigrationFinished.new(dbm)
|
17
|
-
dbm.organization.admin_customers.each { |c| msg.dispatch_email(c) }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|