pg_sql_triggers 1.3.0 → 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.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.erb_lint.yml +0 -0
  3. data/.rspec +0 -0
  4. data/.rubocop.yml +6 -16
  5. data/AGENTS.md +8 -0
  6. data/CHANGELOG.md +354 -0
  7. data/COVERAGE.md +39 -41
  8. data/LICENSE +0 -0
  9. data/README.md +44 -26
  10. data/RELEASE.md +0 -0
  11. data/Rakefile +5 -0
  12. data/app/assets/javascripts/pg_sql_triggers/application.js +0 -0
  13. data/app/assets/javascripts/pg_sql_triggers/trigger_actions.js +0 -0
  14. data/app/assets/stylesheets/pg_sql_triggers/application.css +0 -0
  15. data/app/controllers/concerns/pg_sql_triggers/error_handling.rb +0 -0
  16. data/app/controllers/concerns/pg_sql_triggers/kill_switch_protection.rb +0 -0
  17. data/app/controllers/concerns/pg_sql_triggers/permission_checking.rb +6 -5
  18. data/app/controllers/pg_sql_triggers/application_controller.rb +0 -0
  19. data/app/controllers/pg_sql_triggers/audit_logs_controller.rb +81 -64
  20. data/app/controllers/pg_sql_triggers/dashboard_controller.rb +111 -34
  21. data/app/controllers/pg_sql_triggers/migrations_controller.rb +13 -14
  22. data/app/controllers/pg_sql_triggers/tables_controller.rb +8 -0
  23. data/app/controllers/pg_sql_triggers/triggers_controller.rb +1 -0
  24. data/app/helpers/pg_sql_triggers/dashboard_helper.rb +19 -0
  25. data/app/helpers/pg_sql_triggers/permissions_helper.rb +3 -2
  26. data/app/models/pg_sql_triggers/application_record.rb +0 -0
  27. data/app/models/pg_sql_triggers/audit_log.rb +29 -47
  28. data/app/models/pg_sql_triggers/trigger_registry.rb +137 -74
  29. data/app/views/layouts/pg_sql_triggers/application.html.erb +0 -1
  30. data/app/views/pg_sql_triggers/audit_logs/index.html.erb +9 -5
  31. data/app/views/pg_sql_triggers/dashboard/index.html.erb +107 -27
  32. data/app/views/pg_sql_triggers/shared/_confirmation_modal.html.erb +0 -0
  33. data/app/views/pg_sql_triggers/shared/_kill_switch_status.html.erb +0 -0
  34. data/app/views/pg_sql_triggers/tables/index.html.erb +27 -18
  35. data/app/views/pg_sql_triggers/tables/show.html.erb +0 -2
  36. data/app/views/pg_sql_triggers/triggers/_drop_modal.html.erb +0 -0
  37. data/app/views/pg_sql_triggers/triggers/_re_execute_modal.html.erb +0 -0
  38. data/app/views/pg_sql_triggers/triggers/show.html.erb +33 -0
  39. data/config/initializers/pg_sql_triggers.rb +0 -0
  40. data/config/routes.rb +0 -14
  41. data/db/migrate/{20251222000001_create_pg_sql_triggers_tables.rb → 20251222104327_create_pg_sql_triggers_tables.rb} +0 -0
  42. data/db/migrate/20251229071916_add_timing_to_pg_sql_triggers_registry.rb +0 -0
  43. data/db/migrate/{20260103000001_create_pg_sql_triggers_audit_log.rb → 20260103114508_create_pg_sql_triggers_audit_log.rb} +0 -0
  44. data/db/migrate/20260228162233_add_for_each_to_pg_sql_triggers_registry.rb +8 -0
  45. data/db/migrate/20260412185841_add_constraint_deferral_to_pg_sql_triggers_registry.rb +9 -0
  46. data/docs/README.md +3 -0
  47. data/docs/api-reference.md +176 -152
  48. data/docs/audit-trail.md +1 -1
  49. data/docs/configuration.md +196 -3
  50. data/docs/getting-started.md +31 -16
  51. data/docs/kill-switch.md +0 -0
  52. data/docs/permissions.md +6 -9
  53. data/docs/troubleshooting.md +0 -0
  54. data/docs/ui-guide.md +0 -0
  55. data/docs/usage-guide.md +112 -67
  56. data/docs/web-ui.md +3 -103
  57. data/lib/generators/pg_sql_triggers/install_generator.rb +0 -0
  58. data/lib/generators/pg_sql_triggers/templates/README +0 -0
  59. data/lib/generators/pg_sql_triggers/templates/create_pg_sql_triggers_tables.rb +0 -0
  60. data/lib/generators/pg_sql_triggers/templates/initializer.rb +14 -0
  61. data/lib/generators/pg_sql_triggers/templates/trigger_dsl.rb.tt +11 -0
  62. data/lib/generators/pg_sql_triggers/templates/trigger_migration.rb.erb +0 -0
  63. data/lib/generators/pg_sql_triggers/templates/trigger_migration_full.rb.tt +29 -0
  64. data/lib/generators/pg_sql_triggers/trigger_generator.rb +83 -0
  65. data/lib/generators/pg_sql_triggers/trigger_migration_generator.rb +0 -0
  66. data/lib/pg_sql_triggers/alerting.rb +77 -0
  67. data/lib/pg_sql_triggers/database_introspection.rb +0 -0
  68. data/lib/pg_sql_triggers/deferral_checksum.rb +54 -0
  69. data/lib/pg_sql_triggers/drift/db_queries.rb +26 -13
  70. data/lib/pg_sql_triggers/drift/detector.rb +59 -38
  71. data/lib/pg_sql_triggers/drift/reporter.rb +0 -0
  72. data/lib/pg_sql_triggers/drift.rb +5 -0
  73. data/lib/pg_sql_triggers/dsl/trigger_definition.rb +68 -20
  74. data/lib/pg_sql_triggers/dsl.rb +0 -0
  75. data/lib/pg_sql_triggers/engine.rb +49 -0
  76. data/lib/pg_sql_triggers/errors.rb +0 -0
  77. data/lib/pg_sql_triggers/events_checksum.rb +114 -0
  78. data/lib/pg_sql_triggers/migration.rb +5 -6
  79. data/lib/pg_sql_triggers/migrator/pre_apply_comparator.rb +85 -82
  80. data/lib/pg_sql_triggers/migrator/pre_apply_diff_reporter.rb +0 -0
  81. data/lib/pg_sql_triggers/migrator/safety_validator.rb +34 -12
  82. data/lib/pg_sql_triggers/migrator.rb +137 -94
  83. data/lib/pg_sql_triggers/permissions/checker.rb +12 -15
  84. data/lib/pg_sql_triggers/permissions.rb +1 -0
  85. data/lib/pg_sql_triggers/rake_development_boot.rb +65 -0
  86. data/lib/pg_sql_triggers/registry/manager.rb +60 -21
  87. data/lib/pg_sql_triggers/registry/validator.rb +287 -6
  88. data/lib/pg_sql_triggers/registry.rb +0 -0
  89. data/lib/pg_sql_triggers/schema_dumper_extension.rb +32 -0
  90. data/lib/pg_sql_triggers/sql/kill_switch.rb +154 -275
  91. data/lib/pg_sql_triggers/sql.rb +0 -6
  92. data/lib/pg_sql_triggers/testing/dry_run.rb +0 -0
  93. data/lib/pg_sql_triggers/testing/function_tester.rb +97 -107
  94. data/lib/pg_sql_triggers/testing/safe_executor.rb +0 -0
  95. data/lib/pg_sql_triggers/testing/syntax_validator.rb +0 -0
  96. data/lib/pg_sql_triggers/testing.rb +0 -0
  97. data/lib/pg_sql_triggers/trigger_structure_dumper.rb +111 -0
  98. data/lib/pg_sql_triggers/version.rb +1 -1
  99. data/lib/pg_sql_triggers.rb +21 -1
  100. data/lib/tasks/trigger_migrations.rake +235 -152
  101. data/rakelib/pg_sql_triggers_environment.rake +9 -0
  102. data/scripts/generate_coverage_report.rb +4 -1
  103. data/sig/pg_sql_triggers.rbs +0 -0
  104. metadata +68 -22
  105. data/Goal.md +0 -742
  106. data/app/controllers/pg_sql_triggers/generator_controller.rb +0 -213
  107. data/app/controllers/pg_sql_triggers/sql_capsules_controller.rb +0 -161
  108. data/app/views/pg_sql_triggers/generator/new.html.erb +0 -388
  109. data/app/views/pg_sql_triggers/generator/preview.html.erb +0 -305
  110. data/app/views/pg_sql_triggers/sql_capsules/new.html.erb +0 -81
  111. data/app/views/pg_sql_triggers/sql_capsules/show.html.erb +0 -85
  112. data/lib/generators/trigger/migration_generator.rb +0 -60
  113. data/lib/pg_sql_triggers/generator/form.rb +0 -80
  114. data/lib/pg_sql_triggers/generator/service.rb +0 -339
  115. data/lib/pg_sql_triggers/generator.rb +0 -8
  116. data/lib/pg_sql_triggers/sql/capsule.rb +0 -79
  117. data/lib/pg_sql_triggers/sql/executor.rb +0 -200
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pg_sql_triggers
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - samaswin
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-04-15 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: csv
@@ -141,14 +142,42 @@ dependencies:
141
142
  requirements:
142
143
  - - "~>"
143
144
  - !ruby/object:Gem::Version
144
- version: '1.50'
145
+ version: '1.81'
145
146
  type: :development
146
147
  prerelease: false
147
148
  version_requirements: !ruby/object:Gem::Requirement
148
149
  requirements:
149
150
  - - "~>"
150
151
  - !ruby/object:Gem::Version
151
- version: '1.50'
152
+ version: '1.81'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rubocop-capybara
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: '2.22'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: '2.22'
167
+ - !ruby/object:Gem::Dependency
168
+ name: rubocop-factory_bot
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: '2.28'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: '2.28'
152
181
  - !ruby/object:Gem::Dependency
153
182
  name: rubocop-rails
154
183
  requirement: !ruby/object:Gem::Requirement
@@ -169,14 +198,28 @@ dependencies:
169
198
  requirements:
170
199
  - - "~>"
171
200
  - !ruby/object:Gem::Version
172
- version: '2.20'
201
+ version: '3.5'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '3.5'
209
+ - !ruby/object:Gem::Dependency
210
+ name: rubocop-rspec_rails
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - "~>"
214
+ - !ruby/object:Gem::Version
215
+ version: '2.31'
173
216
  type: :development
174
217
  prerelease: false
175
218
  version_requirements: !ruby/object:Gem::Requirement
176
219
  requirements:
177
220
  - - "~>"
178
221
  - !ruby/object:Gem::Version
179
- version: '2.20'
222
+ version: '2.31'
180
223
  - !ruby/object:Gem::Dependency
181
224
  name: simplecov
182
225
  requirement: !ruby/object:Gem::Requirement
@@ -202,9 +245,9 @@ files:
202
245
  - ".erb_lint.yml"
203
246
  - ".rspec"
204
247
  - ".rubocop.yml"
248
+ - AGENTS.md
205
249
  - CHANGELOG.md
206
250
  - COVERAGE.md
207
- - Goal.md
208
251
  - LICENSE
209
252
  - README.md
210
253
  - RELEASE.md
@@ -218,11 +261,10 @@ files:
218
261
  - app/controllers/pg_sql_triggers/application_controller.rb
219
262
  - app/controllers/pg_sql_triggers/audit_logs_controller.rb
220
263
  - app/controllers/pg_sql_triggers/dashboard_controller.rb
221
- - app/controllers/pg_sql_triggers/generator_controller.rb
222
264
  - app/controllers/pg_sql_triggers/migrations_controller.rb
223
- - app/controllers/pg_sql_triggers/sql_capsules_controller.rb
224
265
  - app/controllers/pg_sql_triggers/tables_controller.rb
225
266
  - app/controllers/pg_sql_triggers/triggers_controller.rb
267
+ - app/helpers/pg_sql_triggers/dashboard_helper.rb
226
268
  - app/helpers/pg_sql_triggers/permissions_helper.rb
227
269
  - app/models/pg_sql_triggers/application_record.rb
228
270
  - app/models/pg_sql_triggers/audit_log.rb
@@ -230,12 +272,8 @@ files:
230
272
  - app/views/layouts/pg_sql_triggers/application.html.erb
231
273
  - app/views/pg_sql_triggers/audit_logs/index.html.erb
232
274
  - app/views/pg_sql_triggers/dashboard/index.html.erb
233
- - app/views/pg_sql_triggers/generator/new.html.erb
234
- - app/views/pg_sql_triggers/generator/preview.html.erb
235
275
  - app/views/pg_sql_triggers/shared/_confirmation_modal.html.erb
236
276
  - app/views/pg_sql_triggers/shared/_kill_switch_status.html.erb
237
- - app/views/pg_sql_triggers/sql_capsules/new.html.erb
238
- - app/views/pg_sql_triggers/sql_capsules/show.html.erb
239
277
  - app/views/pg_sql_triggers/tables/index.html.erb
240
278
  - app/views/pg_sql_triggers/tables/show.html.erb
241
279
  - app/views/pg_sql_triggers/triggers/_drop_modal.html.erb
@@ -243,9 +281,11 @@ files:
243
281
  - app/views/pg_sql_triggers/triggers/show.html.erb
244
282
  - config/initializers/pg_sql_triggers.rb
245
283
  - config/routes.rb
246
- - db/migrate/20251222000001_create_pg_sql_triggers_tables.rb
284
+ - db/migrate/20251222104327_create_pg_sql_triggers_tables.rb
247
285
  - db/migrate/20251229071916_add_timing_to_pg_sql_triggers_registry.rb
248
- - db/migrate/20260103000001_create_pg_sql_triggers_audit_log.rb
286
+ - db/migrate/20260103114508_create_pg_sql_triggers_audit_log.rb
287
+ - db/migrate/20260228162233_add_for_each_to_pg_sql_triggers_registry.rb
288
+ - db/migrate/20260412185841_add_constraint_deferral_to_pg_sql_triggers_registry.rb
249
289
  - docs/README.md
250
290
  - docs/api-reference.md
251
291
  - docs/audit-trail.md
@@ -261,11 +301,15 @@ files:
261
301
  - lib/generators/pg_sql_triggers/templates/README
262
302
  - lib/generators/pg_sql_triggers/templates/create_pg_sql_triggers_tables.rb
263
303
  - lib/generators/pg_sql_triggers/templates/initializer.rb
304
+ - lib/generators/pg_sql_triggers/templates/trigger_dsl.rb.tt
264
305
  - lib/generators/pg_sql_triggers/templates/trigger_migration.rb.erb
306
+ - lib/generators/pg_sql_triggers/templates/trigger_migration_full.rb.tt
307
+ - lib/generators/pg_sql_triggers/trigger_generator.rb
265
308
  - lib/generators/pg_sql_triggers/trigger_migration_generator.rb
266
- - lib/generators/trigger/migration_generator.rb
267
309
  - lib/pg_sql_triggers.rb
310
+ - lib/pg_sql_triggers/alerting.rb
268
311
  - lib/pg_sql_triggers/database_introspection.rb
312
+ - lib/pg_sql_triggers/deferral_checksum.rb
269
313
  - lib/pg_sql_triggers/drift.rb
270
314
  - lib/pg_sql_triggers/drift/db_queries.rb
271
315
  - lib/pg_sql_triggers/drift/detector.rb
@@ -274,9 +318,7 @@ files:
274
318
  - lib/pg_sql_triggers/dsl/trigger_definition.rb
275
319
  - lib/pg_sql_triggers/engine.rb
276
320
  - lib/pg_sql_triggers/errors.rb
277
- - lib/pg_sql_triggers/generator.rb
278
- - lib/pg_sql_triggers/generator/form.rb
279
- - lib/pg_sql_triggers/generator/service.rb
321
+ - lib/pg_sql_triggers/events_checksum.rb
280
322
  - lib/pg_sql_triggers/migration.rb
281
323
  - lib/pg_sql_triggers/migrator.rb
282
324
  - lib/pg_sql_triggers/migrator/pre_apply_comparator.rb
@@ -284,20 +326,22 @@ files:
284
326
  - lib/pg_sql_triggers/migrator/safety_validator.rb
285
327
  - lib/pg_sql_triggers/permissions.rb
286
328
  - lib/pg_sql_triggers/permissions/checker.rb
329
+ - lib/pg_sql_triggers/rake_development_boot.rb
287
330
  - lib/pg_sql_triggers/registry.rb
288
331
  - lib/pg_sql_triggers/registry/manager.rb
289
332
  - lib/pg_sql_triggers/registry/validator.rb
333
+ - lib/pg_sql_triggers/schema_dumper_extension.rb
290
334
  - lib/pg_sql_triggers/sql.rb
291
- - lib/pg_sql_triggers/sql/capsule.rb
292
- - lib/pg_sql_triggers/sql/executor.rb
293
335
  - lib/pg_sql_triggers/sql/kill_switch.rb
294
336
  - lib/pg_sql_triggers/testing.rb
295
337
  - lib/pg_sql_triggers/testing/dry_run.rb
296
338
  - lib/pg_sql_triggers/testing/function_tester.rb
297
339
  - lib/pg_sql_triggers/testing/safe_executor.rb
298
340
  - lib/pg_sql_triggers/testing/syntax_validator.rb
341
+ - lib/pg_sql_triggers/trigger_structure_dumper.rb
299
342
  - lib/pg_sql_triggers/version.rb
300
343
  - lib/tasks/trigger_migrations.rake
344
+ - rakelib/pg_sql_triggers_environment.rake
301
345
  - scripts/generate_coverage_report.rb
302
346
  - sig/pg_sql_triggers.rbs
303
347
  homepage: https://github.com/samaswin/pg_sql_triggers
@@ -309,6 +353,7 @@ metadata:
309
353
  changelog_uri: https://github.com/samaswin/pg_sql_triggers/blob/main/CHANGELOG.md
310
354
  github_repo: ssh://github.com/samaswin/pg_sql_triggers
311
355
  rubygems_mfa_required: 'true'
356
+ post_install_message:
312
357
  rdoc_options: []
313
358
  require_paths:
314
359
  - lib
@@ -323,7 +368,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
323
368
  - !ruby/object:Gem::Version
324
369
  version: '0'
325
370
  requirements: []
326
- rubygems_version: 4.0.3
371
+ rubygems_version: 3.5.22
372
+ signing_key:
327
373
  specification_version: 4
328
374
  summary: A PostgreSQL Trigger Control Plane for Rails
329
375
  test_files: []