pgbus 0.19.4 → 0.20.1
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/CHANGELOG.md +9 -0
- data/README.md +97 -7
- data/Rakefile +6 -1
- data/app/controllers/pgbus/dashboard_controller.rb +2 -0
- data/app/controllers/pgbus/workflow_definitions_controller.rb +28 -0
- data/app/controllers/pgbus/workflows_controller.rb +197 -0
- data/app/frontend/pgbus/modules/charts.js +148 -4
- data/app/frontend/pgbus/modules/charts.min.js +1 -1
- data/app/frontend/pgbus/modules/charts.min.js.map +1 -1
- data/app/frontend/pgbus/style.css +1 -1
- data/app/helpers/pgbus/button_helper.rb +4 -2
- data/app/helpers/pgbus/workflow_insights_helper.rb +129 -0
- data/app/helpers/pgbus/workflows_helper.rb +165 -0
- data/app/models/pgbus/blocked_execution.rb +12 -0
- data/app/models/pgbus/uniqueness_key.rb +88 -3
- data/app/models/pgbus/workflow_entry.rb +172 -0
- data/app/models/pgbus/workflow_event.rb +43 -0
- data/app/models/pgbus/workflow_signal.rb +77 -0
- data/app/models/pgbus/workflow_step.rb +149 -0
- data/app/views/layouts/pgbus/application.html.erb +2 -0
- data/app/views/pgbus/dashboard/_stats_cards.html.erb +17 -0
- data/app/views/pgbus/workflows/_actions.html.erb +59 -0
- data/app/views/pgbus/workflows/_events_table.html.erb +24 -0
- data/app/views/pgbus/workflows/_filters.html.erb +29 -0
- data/app/views/pgbus/workflows/_signal_form.html.erb +31 -0
- data/app/views/pgbus/workflows/_signals_table.html.erb +40 -0
- data/app/views/pgbus/workflows/_status_filter.html.erb +12 -0
- data/app/views/pgbus/workflows/_steps_table.html.erb +79 -0
- data/app/views/pgbus/workflows/_timeline.html.erb +49 -0
- data/app/views/pgbus/workflows/_workflows_table.html.erb +59 -0
- data/app/views/pgbus/workflows/attention.html.erb +88 -0
- data/app/views/pgbus/workflows/definitions/_by_revision.html.erb +52 -0
- data/app/views/pgbus/workflows/definitions/_duration_table.html.erb +18 -0
- data/app/views/pgbus/workflows/definitions/_funnel.html.erb +49 -0
- data/app/views/pgbus/workflows/definitions/_pipeline.html.erb +16 -0
- data/app/views/pgbus/workflows/definitions/_step_card.html.erb +31 -0
- data/app/views/pgbus/workflows/definitions/_throughput_table.html.erb +32 -0
- data/app/views/pgbus/workflows/definitions/_window.html.erb +17 -0
- data/app/views/pgbus/workflows/definitions/index.html.erb +71 -0
- data/app/views/pgbus/workflows/definitions/not_found.html.erb +5 -0
- data/app/views/pgbus/workflows/definitions/show.html.erb +80 -0
- data/app/views/pgbus/workflows/index.html.erb +15 -0
- data/app/views/pgbus/workflows/not_found.html.erb +5 -0
- data/app/views/pgbus/workflows/show.html.erb +93 -0
- data/config/i18n-tasks.yml +6 -0
- data/config/locales/da.yml +445 -0
- data/config/locales/de.yml +445 -0
- data/config/locales/en.yml +445 -0
- data/config/locales/es.yml +445 -0
- data/config/locales/fi.yml +445 -0
- data/config/locales/fr.yml +445 -0
- data/config/locales/it.yml +445 -0
- data/config/locales/ja.yml +445 -0
- data/config/locales/nb.yml +445 -0
- data/config/locales/nl.yml +445 -0
- data/config/locales/pt.yml +445 -0
- data/config/locales/sv.yml +445 -0
- data/config/routes.rb +26 -0
- data/lib/generators/pgbus/add_workflow_signals_generator.rb +56 -0
- data/lib/generators/pgbus/add_workflows_generator.rb +54 -0
- data/lib/generators/pgbus/templates/add_workflow_signals.rb.erb +51 -0
- data/lib/generators/pgbus/templates/add_workflows.rb.erb +150 -0
- data/lib/generators/pgbus/templates/migration.rb.erb +127 -0
- data/lib/pgbus/active_job/adapter.rb +81 -3
- data/lib/pgbus/active_job/delivery.rb +63 -0
- data/lib/pgbus/active_job/executor.rb +20 -8
- data/lib/pgbus/concurrency/blocked_execution.rb +14 -6
- data/lib/pgbus/configuration/workflow_settings.rb +99 -0
- data/lib/pgbus/configuration.rb +64 -4
- data/lib/pgbus/dead_letter_header.rb +9 -1
- data/lib/pgbus/generators/migration_detector.rb +40 -0
- data/lib/pgbus/instrumentation.rb +33 -0
- data/lib/pgbus/integrations/appsignal/dashboard.json +157 -1
- data/lib/pgbus/integrations/appsignal/subscriber.rb +16 -1
- data/lib/pgbus/mcp/rack_app.rb +7 -2
- data/lib/pgbus/mcp/runner.rb +2 -1
- data/lib/pgbus/mcp/serialization.rb +25 -0
- data/lib/pgbus/mcp/server.rb +53 -10
- data/lib/pgbus/mcp/tools/deploy_tasks_tool.rb +1 -10
- data/lib/pgbus/mcp/tools/workflow_cancel_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_definitions_tool.rb +36 -0
- data/lib/pgbus/mcp/tools/workflow_detail_tool.rb +38 -0
- data/lib/pgbus/mcp/tools/workflow_resume_at_tool.rb +32 -0
- data/lib/pgbus/mcp/tools/workflow_resume_tool.rb +24 -0
- data/lib/pgbus/mcp/tools/workflow_run_now_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_signal_tool.rb +77 -0
- data/lib/pgbus/mcp/tools/workflow_skip_step_tool.rb +23 -0
- data/lib/pgbus/mcp/tools/workflow_stats_tool.rb +42 -0
- data/lib/pgbus/mcp/tools/workflows_attention_tool.rb +42 -0
- data/lib/pgbus/mcp/tools/workflows_tool.rb +60 -0
- data/lib/pgbus/mcp/workflow_insights_payload.rb +15 -0
- data/lib/pgbus/mcp/workflow_payloads.rb +53 -0
- data/lib/pgbus/mcp/write_tool.rb +134 -0
- data/lib/pgbus/mcp.rb +15 -0
- data/lib/pgbus/metrics/backends/statsd.rb +6 -0
- data/lib/pgbus/metrics/subscriber.rb +14 -1
- data/lib/pgbus/metrics/workflow_metrics.rb +75 -0
- data/lib/pgbus/process/consumer.rb +2 -1
- data/lib/pgbus/process/dispatcher.rb +39 -3
- data/lib/pgbus/process/worker.rb +10 -1
- data/lib/pgbus/recurring/schedule.rb +1 -1
- data/lib/pgbus/streams/presence.rb +65 -36
- data/lib/pgbus/uniqueness.rb +23 -6
- data/lib/pgbus/version.rb +1 -1
- data/lib/pgbus/web/data_source/workflow_actions.rb +109 -0
- data/lib/pgbus/web/data_source/workflow_insights.rb +99 -0
- data/lib/pgbus/web/data_source/workflow_list.rb +291 -0
- data/lib/pgbus/web/data_source.rb +126 -15
- data/lib/pgbus/web/workflow_action_plan.rb +62 -0
- data/lib/pgbus/web/workflow_insights_queries.rb +250 -0
- data/lib/pgbus/web/workflow_insights_report.rb +171 -0
- data/lib/pgbus/web/workflow_payload.rb +36 -0
- data/lib/pgbus/web/workflow_query.rb +82 -0
- data/lib/pgbus/web/workflow_state.rb +89 -0
- data/lib/pgbus/web/workflow_timeline.rb +130 -0
- data/lib/pgbus/web/workflow_window.rb +51 -0
- data/lib/pgbus/workflow/batch_finished_job.rb +21 -0
- data/lib/pgbus/workflow/dsl.rb +105 -0
- data/lib/pgbus/workflow/error_capture.rb +63 -0
- data/lib/pgbus/workflow/exception_policy.rb +170 -0
- data/lib/pgbus/workflow/fan_out.rb +157 -0
- data/lib/pgbus/workflow/fan_out_definition.rb +41 -0
- data/lib/pgbus/workflow/flow_control.rb +94 -0
- data/lib/pgbus/workflow/instance.rb +183 -0
- data/lib/pgbus/workflow/outside_verbs.rb +138 -0
- data/lib/pgbus/workflow/payload.rb +53 -0
- data/lib/pgbus/workflow/registry.rb +53 -0
- data/lib/pgbus/workflow/removed_step.rb +14 -0
- data/lib/pgbus/workflow/runner.rb +218 -0
- data/lib/pgbus/workflow/signal_matcher.rb +53 -0
- data/lib/pgbus/workflow/signals.rb +132 -0
- data/lib/pgbus/workflow/states.rb +119 -0
- data/lib/pgbus/workflow/step_context.rb +58 -0
- data/lib/pgbus/workflow/step_definition.rb +133 -0
- data/lib/pgbus/workflow/step_execution.rb +242 -0
- data/lib/pgbus/workflow/step_job.rb +28 -0
- data/lib/pgbus/workflow/step_outcome.rb +151 -0
- data/lib/pgbus/workflow/steps.rb +103 -0
- data/lib/pgbus/workflow/sweep.rb +156 -0
- data/lib/pgbus/workflow/test_helpers.rb +152 -0
- data/lib/pgbus/workflow/wait_timeout.rb +94 -0
- data/lib/pgbus/workflow/waiting.rb +82 -0
- data/lib/pgbus/workflow.rb +183 -0
- data/sig/pgbus/configuration.rbs +23 -0
- metadata +92 -1
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pgbus
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.20.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mikael Henriksson
|
|
@@ -145,6 +145,8 @@ files:
|
|
|
145
145
|
- app/controllers/pgbus/processes_controller.rb
|
|
146
146
|
- app/controllers/pgbus/queues_controller.rb
|
|
147
147
|
- app/controllers/pgbus/recurring_tasks_controller.rb
|
|
148
|
+
- app/controllers/pgbus/workflow_definitions_controller.rb
|
|
149
|
+
- app/controllers/pgbus/workflows_controller.rb
|
|
148
150
|
- app/frontend/pgbus/application.js
|
|
149
151
|
- app/frontend/pgbus/application.min.js
|
|
150
152
|
- app/frontend/pgbus/application.min.js.map
|
|
@@ -165,6 +167,8 @@ files:
|
|
|
165
167
|
- app/helpers/pgbus/insights_helper.rb
|
|
166
168
|
- app/helpers/pgbus/processes_helper.rb
|
|
167
169
|
- app/helpers/pgbus/streams_helper.rb
|
|
170
|
+
- app/helpers/pgbus/workflow_insights_helper.rb
|
|
171
|
+
- app/helpers/pgbus/workflows_helper.rb
|
|
168
172
|
- app/models/pgbus/application_record.rb
|
|
169
173
|
- app/models/pgbus/batch_entry.rb
|
|
170
174
|
- app/models/pgbus/batch_execution.rb
|
|
@@ -182,6 +186,10 @@ files:
|
|
|
182
186
|
- app/models/pgbus/stream_queue.rb
|
|
183
187
|
- app/models/pgbus/stream_stat.rb
|
|
184
188
|
- app/models/pgbus/uniqueness_key.rb
|
|
189
|
+
- app/models/pgbus/workflow_entry.rb
|
|
190
|
+
- app/models/pgbus/workflow_event.rb
|
|
191
|
+
- app/models/pgbus/workflow_signal.rb
|
|
192
|
+
- app/models/pgbus/workflow_step.rb
|
|
185
193
|
- app/views/layouts/pgbus/application.html.erb
|
|
186
194
|
- app/views/pgbus/batches/_batches_table.html.erb
|
|
187
195
|
- app/views/pgbus/batches/_progress.html.erb
|
|
@@ -235,6 +243,29 @@ files:
|
|
|
235
243
|
- app/views/pgbus/recurring_tasks/show.html.erb
|
|
236
244
|
- app/views/pgbus/shared/_empty_row.html.erb
|
|
237
245
|
- app/views/pgbus/shared/_pager.html.erb
|
|
246
|
+
- app/views/pgbus/workflows/_actions.html.erb
|
|
247
|
+
- app/views/pgbus/workflows/_events_table.html.erb
|
|
248
|
+
- app/views/pgbus/workflows/_filters.html.erb
|
|
249
|
+
- app/views/pgbus/workflows/_signal_form.html.erb
|
|
250
|
+
- app/views/pgbus/workflows/_signals_table.html.erb
|
|
251
|
+
- app/views/pgbus/workflows/_status_filter.html.erb
|
|
252
|
+
- app/views/pgbus/workflows/_steps_table.html.erb
|
|
253
|
+
- app/views/pgbus/workflows/_timeline.html.erb
|
|
254
|
+
- app/views/pgbus/workflows/_workflows_table.html.erb
|
|
255
|
+
- app/views/pgbus/workflows/attention.html.erb
|
|
256
|
+
- app/views/pgbus/workflows/definitions/_by_revision.html.erb
|
|
257
|
+
- app/views/pgbus/workflows/definitions/_duration_table.html.erb
|
|
258
|
+
- app/views/pgbus/workflows/definitions/_funnel.html.erb
|
|
259
|
+
- app/views/pgbus/workflows/definitions/_pipeline.html.erb
|
|
260
|
+
- app/views/pgbus/workflows/definitions/_step_card.html.erb
|
|
261
|
+
- app/views/pgbus/workflows/definitions/_throughput_table.html.erb
|
|
262
|
+
- app/views/pgbus/workflows/definitions/_window.html.erb
|
|
263
|
+
- app/views/pgbus/workflows/definitions/index.html.erb
|
|
264
|
+
- app/views/pgbus/workflows/definitions/not_found.html.erb
|
|
265
|
+
- app/views/pgbus/workflows/definitions/show.html.erb
|
|
266
|
+
- app/views/pgbus/workflows/index.html.erb
|
|
267
|
+
- app/views/pgbus/workflows/not_found.html.erb
|
|
268
|
+
- app/views/pgbus/workflows/show.html.erb
|
|
238
269
|
- config/i18n-tasks.yml
|
|
239
270
|
- config/locales/da.yml
|
|
240
271
|
- config/locales/de.yml
|
|
@@ -268,6 +299,8 @@ files:
|
|
|
268
299
|
- lib/generators/pgbus/add_stream_queues_generator.rb
|
|
269
300
|
- lib/generators/pgbus/add_stream_stats_generator.rb
|
|
270
301
|
- lib/generators/pgbus/add_uniqueness_keys_generator.rb
|
|
302
|
+
- lib/generators/pgbus/add_workflow_signals_generator.rb
|
|
303
|
+
- lib/generators/pgbus/add_workflows_generator.rb
|
|
271
304
|
- lib/generators/pgbus/install_generator.rb
|
|
272
305
|
- lib/generators/pgbus/migrate_job_locks_generator.rb
|
|
273
306
|
- lib/generators/pgbus/migration_path.rb
|
|
@@ -287,6 +320,8 @@ files:
|
|
|
287
320
|
- lib/generators/pgbus/templates/add_stream_queues.rb.erb
|
|
288
321
|
- lib/generators/pgbus/templates/add_stream_stats.rb.erb
|
|
289
322
|
- lib/generators/pgbus/templates/add_uniqueness_keys.rb.erb
|
|
323
|
+
- lib/generators/pgbus/templates/add_workflow_signals.rb.erb
|
|
324
|
+
- lib/generators/pgbus/templates/add_workflows.rb.erb
|
|
290
325
|
- lib/generators/pgbus/templates/deploy_tasks.yml.erb
|
|
291
326
|
- lib/generators/pgbus/templates/initializer.rb.erb
|
|
292
327
|
- lib/generators/pgbus/templates/migrate_job_locks_to_uniqueness_keys.rb.erb
|
|
@@ -304,6 +339,7 @@ files:
|
|
|
304
339
|
- lib/pgbus/active_job/adapter.rb
|
|
305
340
|
- lib/pgbus/active_job/batch_id.rb
|
|
306
341
|
- lib/pgbus/active_job/current_attributes.rb
|
|
342
|
+
- lib/pgbus/active_job/delivery.rb
|
|
307
343
|
- lib/pgbus/active_job/executor.rb
|
|
308
344
|
- lib/pgbus/autovacuum_tuning.rb
|
|
309
345
|
- lib/pgbus/batch.rb
|
|
@@ -331,6 +367,7 @@ files:
|
|
|
331
367
|
- lib/pgbus/configuration/presence_settings.rb
|
|
332
368
|
- lib/pgbus/configuration/snapshot.rb
|
|
333
369
|
- lib/pgbus/configuration/stream_authorization.rb
|
|
370
|
+
- lib/pgbus/configuration/workflow_settings.rb
|
|
334
371
|
- lib/pgbus/current_attributes.rb
|
|
335
372
|
- lib/pgbus/database_tasks_guard.rb
|
|
336
373
|
- lib/pgbus/dead_letter_header.rb
|
|
@@ -376,6 +413,7 @@ files:
|
|
|
376
413
|
- lib/pgbus/mcp/rack_app.rb
|
|
377
414
|
- lib/pgbus/mcp/redactor.rb
|
|
378
415
|
- lib/pgbus/mcp/runner.rb
|
|
416
|
+
- lib/pgbus/mcp/serialization.rb
|
|
379
417
|
- lib/pgbus/mcp/server.rb
|
|
380
418
|
- lib/pgbus/mcp/tools/concurrency_tool.rb
|
|
381
419
|
- lib/pgbus/mcp/tools/deploy_tasks_tool.rb
|
|
@@ -391,12 +429,27 @@ files:
|
|
|
391
429
|
- lib/pgbus/mcp/tools/recurring_tool.rb
|
|
392
430
|
- lib/pgbus/mcp/tools/stats_tool.rb
|
|
393
431
|
- lib/pgbus/mcp/tools/throughput_tool.rb
|
|
432
|
+
- lib/pgbus/mcp/tools/workflow_cancel_tool.rb
|
|
433
|
+
- lib/pgbus/mcp/tools/workflow_definitions_tool.rb
|
|
434
|
+
- lib/pgbus/mcp/tools/workflow_detail_tool.rb
|
|
435
|
+
- lib/pgbus/mcp/tools/workflow_resume_at_tool.rb
|
|
436
|
+
- lib/pgbus/mcp/tools/workflow_resume_tool.rb
|
|
437
|
+
- lib/pgbus/mcp/tools/workflow_run_now_tool.rb
|
|
438
|
+
- lib/pgbus/mcp/tools/workflow_signal_tool.rb
|
|
439
|
+
- lib/pgbus/mcp/tools/workflow_skip_step_tool.rb
|
|
440
|
+
- lib/pgbus/mcp/tools/workflow_stats_tool.rb
|
|
441
|
+
- lib/pgbus/mcp/tools/workflows_attention_tool.rb
|
|
442
|
+
- lib/pgbus/mcp/tools/workflows_tool.rb
|
|
443
|
+
- lib/pgbus/mcp/workflow_insights_payload.rb
|
|
444
|
+
- lib/pgbus/mcp/workflow_payloads.rb
|
|
445
|
+
- lib/pgbus/mcp/write_tool.rb
|
|
394
446
|
- lib/pgbus/metrics.rb
|
|
395
447
|
- lib/pgbus/metrics/backend.rb
|
|
396
448
|
- lib/pgbus/metrics/backends/prometheus.rb
|
|
397
449
|
- lib/pgbus/metrics/backends/statsd.rb
|
|
398
450
|
- lib/pgbus/metrics/prometheus_exporter.rb
|
|
399
451
|
- lib/pgbus/metrics/subscriber.rb
|
|
452
|
+
- lib/pgbus/metrics/workflow_metrics.rb
|
|
400
453
|
- lib/pgbus/outbox.rb
|
|
401
454
|
- lib/pgbus/outbox/poller.rb
|
|
402
455
|
- lib/pgbus/pgmq_schema.rb
|
|
@@ -475,6 +528,9 @@ files:
|
|
|
475
528
|
- lib/pgbus/web/data_source/list_counts.rb
|
|
476
529
|
- lib/pgbus/web/data_source/process_list.rb
|
|
477
530
|
- lib/pgbus/web/data_source/queue_summary.rb
|
|
531
|
+
- lib/pgbus/web/data_source/workflow_actions.rb
|
|
532
|
+
- lib/pgbus/web/data_source/workflow_insights.rb
|
|
533
|
+
- lib/pgbus/web/data_source/workflow_list.rb
|
|
478
534
|
- lib/pgbus/web/dead_letter_reason.rb
|
|
479
535
|
- lib/pgbus/web/deploy_task_state.rb
|
|
480
536
|
- lib/pgbus/web/event_state.rb
|
|
@@ -509,6 +565,41 @@ files:
|
|
|
509
565
|
- lib/pgbus/web/streamer/stream_counter.rb
|
|
510
566
|
- lib/pgbus/web/streamer/stream_event_dispatcher.rb
|
|
511
567
|
- lib/pgbus/web/time_format.rb
|
|
568
|
+
- lib/pgbus/web/workflow_action_plan.rb
|
|
569
|
+
- lib/pgbus/web/workflow_insights_queries.rb
|
|
570
|
+
- lib/pgbus/web/workflow_insights_report.rb
|
|
571
|
+
- lib/pgbus/web/workflow_payload.rb
|
|
572
|
+
- lib/pgbus/web/workflow_query.rb
|
|
573
|
+
- lib/pgbus/web/workflow_state.rb
|
|
574
|
+
- lib/pgbus/web/workflow_timeline.rb
|
|
575
|
+
- lib/pgbus/web/workflow_window.rb
|
|
576
|
+
- lib/pgbus/workflow.rb
|
|
577
|
+
- lib/pgbus/workflow/batch_finished_job.rb
|
|
578
|
+
- lib/pgbus/workflow/dsl.rb
|
|
579
|
+
- lib/pgbus/workflow/error_capture.rb
|
|
580
|
+
- lib/pgbus/workflow/exception_policy.rb
|
|
581
|
+
- lib/pgbus/workflow/fan_out.rb
|
|
582
|
+
- lib/pgbus/workflow/fan_out_definition.rb
|
|
583
|
+
- lib/pgbus/workflow/flow_control.rb
|
|
584
|
+
- lib/pgbus/workflow/instance.rb
|
|
585
|
+
- lib/pgbus/workflow/outside_verbs.rb
|
|
586
|
+
- lib/pgbus/workflow/payload.rb
|
|
587
|
+
- lib/pgbus/workflow/registry.rb
|
|
588
|
+
- lib/pgbus/workflow/removed_step.rb
|
|
589
|
+
- lib/pgbus/workflow/runner.rb
|
|
590
|
+
- lib/pgbus/workflow/signal_matcher.rb
|
|
591
|
+
- lib/pgbus/workflow/signals.rb
|
|
592
|
+
- lib/pgbus/workflow/states.rb
|
|
593
|
+
- lib/pgbus/workflow/step_context.rb
|
|
594
|
+
- lib/pgbus/workflow/step_definition.rb
|
|
595
|
+
- lib/pgbus/workflow/step_execution.rb
|
|
596
|
+
- lib/pgbus/workflow/step_job.rb
|
|
597
|
+
- lib/pgbus/workflow/step_outcome.rb
|
|
598
|
+
- lib/pgbus/workflow/steps.rb
|
|
599
|
+
- lib/pgbus/workflow/sweep.rb
|
|
600
|
+
- lib/pgbus/workflow/test_helpers.rb
|
|
601
|
+
- lib/pgbus/workflow/wait_timeout.rb
|
|
602
|
+
- lib/pgbus/workflow/waiting.rb
|
|
512
603
|
- lib/puma/plugin/pgbus_streams.rb
|
|
513
604
|
- lib/tasks/pgbus_autovacuum.rake
|
|
514
605
|
- lib/tasks/pgbus_doctor.rake
|