rails_error_dashboard 0.1.1 → 0.1.4

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +92 -21
  3. data/app/assets/stylesheets/rails_error_dashboard/_catppuccin_mocha.scss +107 -0
  4. data/app/assets/stylesheets/rails_error_dashboard/_components.scss +625 -0
  5. data/app/assets/stylesheets/rails_error_dashboard/_layout.scss +257 -0
  6. data/app/assets/stylesheets/rails_error_dashboard/_theme_variables.scss +203 -0
  7. data/app/assets/stylesheets/rails_error_dashboard/application.css.map +7 -0
  8. data/app/assets/stylesheets/rails_error_dashboard/application.scss +61 -0
  9. data/app/controllers/rails_error_dashboard/errors_controller.rb +135 -1
  10. data/app/helpers/rails_error_dashboard/application_helper.rb +80 -4
  11. data/app/helpers/rails_error_dashboard/backtrace_helper.rb +91 -0
  12. data/app/helpers/rails_error_dashboard/overview_helper.rb +78 -0
  13. data/app/helpers/rails_error_dashboard/user_agent_helper.rb +118 -0
  14. data/app/models/rails_error_dashboard/error_comment.rb +27 -0
  15. data/app/models/rails_error_dashboard/error_log.rb +159 -0
  16. data/app/views/layouts/rails_error_dashboard/application.html.erb +39 -1
  17. data/app/views/layouts/rails_error_dashboard.html.erb +796 -299
  18. data/app/views/layouts/rails_error_dashboard_old_backup.html.erb +383 -0
  19. data/app/views/rails_error_dashboard/errors/_error_row.html.erb +2 -0
  20. data/app/views/rails_error_dashboard/errors/_pattern_insights.html.erb +4 -4
  21. data/app/views/rails_error_dashboard/errors/_timeline.html.erb +167 -0
  22. data/app/views/rails_error_dashboard/errors/analytics.html.erb +439 -22
  23. data/app/views/rails_error_dashboard/errors/index.html.erb +127 -11
  24. data/app/views/rails_error_dashboard/errors/overview.html.erb +253 -0
  25. data/app/views/rails_error_dashboard/errors/platform_comparison.html.erb +29 -18
  26. data/app/views/rails_error_dashboard/errors/show.html.erb +353 -54
  27. data/config/routes.rb +11 -1
  28. data/db/migrate/20251226020000_add_workflow_fields_to_error_logs.rb +27 -0
  29. data/db/migrate/20251226020100_create_error_comments.rb +18 -0
  30. data/lib/generators/rails_error_dashboard/install/install_generator.rb +8 -2
  31. data/lib/generators/rails_error_dashboard/install/templates/initializer.rb +21 -0
  32. data/lib/generators/rails_error_dashboard/uninstall/uninstall_generator.rb +317 -0
  33. data/lib/rails_error_dashboard/commands/batch_delete_errors.rb +1 -1
  34. data/lib/rails_error_dashboard/commands/batch_resolve_errors.rb +2 -2
  35. data/lib/rails_error_dashboard/commands/log_error.rb +47 -9
  36. data/lib/rails_error_dashboard/commands/resolve_error.rb +1 -1
  37. data/lib/rails_error_dashboard/configuration.rb +8 -0
  38. data/lib/rails_error_dashboard/error_reporter.rb +4 -4
  39. data/lib/rails_error_dashboard/logger.rb +105 -0
  40. data/lib/rails_error_dashboard/middleware/error_catcher.rb +2 -2
  41. data/lib/rails_error_dashboard/plugin.rb +3 -3
  42. data/lib/rails_error_dashboard/plugin_registry.rb +2 -2
  43. data/lib/rails_error_dashboard/plugins/jira_integration_plugin.rb +1 -1
  44. data/lib/rails_error_dashboard/plugins/metrics_plugin.rb +1 -1
  45. data/lib/rails_error_dashboard/queries/dashboard_stats.rb +109 -1
  46. data/lib/rails_error_dashboard/queries/errors_list.rb +134 -7
  47. data/lib/rails_error_dashboard/queries/mttr_stats.rb +111 -0
  48. data/lib/rails_error_dashboard/queries/recurring_issues.rb +97 -0
  49. data/lib/rails_error_dashboard/services/backtrace_parser.rb +113 -0
  50. data/lib/rails_error_dashboard/version.rb +1 -1
  51. data/lib/rails_error_dashboard.rb +5 -0
  52. data/lib/tasks/rails_error_dashboard_tasks.rake +85 -4
  53. metadata +36 -2
@@ -1,4 +1,85 @@
1
- # desc "Explaining what the task does"
2
- # task :rails_error_dashboard do
3
- # # Task goes here
4
- # end
1
+ # frozen_string_literal: true
2
+
3
+ namespace :rails_error_dashboard do
4
+ namespace :db do
5
+ desc "Drop all Rails Error Dashboard database tables (⚠️ DESTRUCTIVE - deletes all error data)"
6
+ task drop: :environment do
7
+ puts "\n"
8
+ puts "=" * 80
9
+ puts " ⚠️ Rails Error Dashboard - Drop Database Tables"
10
+ puts "=" * 80
11
+ puts "\n"
12
+
13
+ # List tables that will be dropped
14
+ tables_to_drop = [
15
+ "rails_error_dashboard_error_comments",
16
+ "rails_error_dashboard_error_occurrences",
17
+ "rails_error_dashboard_cascade_patterns",
18
+ "rails_error_dashboard_error_baselines",
19
+ "rails_error_dashboard_error_logs"
20
+ ]
21
+
22
+ existing_tables = tables_to_drop.select do |table|
23
+ ActiveRecord::Base.connection.table_exists?(table)
24
+ end
25
+
26
+ if existing_tables.empty?
27
+ puts "No Rails Error Dashboard tables found in the database."
28
+ puts "\n"
29
+ exit 0
30
+ end
31
+
32
+ puts "The following tables will be PERMANENTLY DELETED:"
33
+ existing_tables.each do |table|
34
+ record_count = ActiveRecord::Base.connection.execute("SELECT COUNT(*) FROM #{table}").first.values.first rescue 0
35
+ puts " • #{table} (#{record_count} records)"
36
+ end
37
+ puts "\n"
38
+ puts "⚠️ This action CANNOT be undone!"
39
+ puts "\n"
40
+
41
+ # Ask for confirmation
42
+ print "Type 'DELETE ALL DATA' to confirm: "
43
+ confirmation = $stdin.gets.chomp
44
+
45
+ if confirmation != "DELETE ALL DATA"
46
+ puts "\n"
47
+ puts "Cancelled. No tables were dropped."
48
+ puts "\n"
49
+ exit 0
50
+ end
51
+
52
+ puts "\n"
53
+ puts "Dropping tables..."
54
+
55
+ # Drop tables in reverse order (respects foreign keys)
56
+ dropped_count = 0
57
+ existing_tables.reverse.each do |table|
58
+ begin
59
+ ActiveRecord::Base.connection.drop_table(table, if_exists: true)
60
+ puts " ✓ Dropped #{table}"
61
+ dropped_count += 1
62
+ rescue => e
63
+ puts " ✗ Failed to drop #{table}: #{e.message}"
64
+ end
65
+ end
66
+
67
+ puts "\n"
68
+ puts "=" * 80
69
+ puts " ✅ Successfully dropped #{dropped_count} table(s)"
70
+ puts "=" * 80
71
+ puts "\n"
72
+ puts "Next steps:"
73
+ puts " 1. Remove gem 'rails_error_dashboard' from Gemfile"
74
+ puts " 2. Run: bundle install"
75
+ puts " 3. Remove initializer: config/initializers/rails_error_dashboard.rb"
76
+ puts " 4. Remove route from config/routes.rb"
77
+ puts " 5. Delete migration files: db/migrate/*rails_error_dashboard*.rb"
78
+ puts " 6. Restart your Rails server"
79
+ puts "\n"
80
+ puts "Or use the automated uninstaller:"
81
+ puts " rails generate rails_error_dashboard:uninstall"
82
+ puts "\n"
83
+ end
84
+ end
85
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_error_dashboard
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anjan Jagirdar
@@ -65,6 +65,20 @@ dependencies:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
67
  version: '6.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: chartkick
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '5.0'
75
+ type: :runtime
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '5.0'
68
82
  - !ruby/object:Gem::Dependency
69
83
  name: httparty
70
84
  requirement: !ruby/object:Gem::Requirement
@@ -253,10 +267,19 @@ files:
253
267
  - MIT-LICENSE
254
268
  - README.md
255
269
  - Rakefile
270
+ - app/assets/stylesheets/rails_error_dashboard/_catppuccin_mocha.scss
271
+ - app/assets/stylesheets/rails_error_dashboard/_components.scss
272
+ - app/assets/stylesheets/rails_error_dashboard/_layout.scss
273
+ - app/assets/stylesheets/rails_error_dashboard/_theme_variables.scss
256
274
  - app/assets/stylesheets/rails_error_dashboard/application.css
275
+ - app/assets/stylesheets/rails_error_dashboard/application.css.map
276
+ - app/assets/stylesheets/rails_error_dashboard/application.scss
257
277
  - app/controllers/rails_error_dashboard/application_controller.rb
258
278
  - app/controllers/rails_error_dashboard/errors_controller.rb
259
279
  - app/helpers/rails_error_dashboard/application_helper.rb
280
+ - app/helpers/rails_error_dashboard/backtrace_helper.rb
281
+ - app/helpers/rails_error_dashboard/overview_helper.rb
282
+ - app/helpers/rails_error_dashboard/user_agent_helper.rb
260
283
  - app/jobs/rails_error_dashboard/application_job.rb
261
284
  - app/jobs/rails_error_dashboard/async_error_logging_job.rb
262
285
  - app/jobs/rails_error_dashboard/baseline_alert_job.rb
@@ -269,19 +292,23 @@ files:
269
292
  - app/mailers/rails_error_dashboard/error_notification_mailer.rb
270
293
  - app/models/rails_error_dashboard/cascade_pattern.rb
271
294
  - app/models/rails_error_dashboard/error_baseline.rb
295
+ - app/models/rails_error_dashboard/error_comment.rb
272
296
  - app/models/rails_error_dashboard/error_log.rb
273
297
  - app/models/rails_error_dashboard/error_logs_record.rb
274
298
  - app/models/rails_error_dashboard/error_occurrence.rb
275
299
  - app/views/layouts/rails_error_dashboard.html.erb
276
300
  - app/views/layouts/rails_error_dashboard/application.html.erb
301
+ - app/views/layouts/rails_error_dashboard_old_backup.html.erb
277
302
  - app/views/rails_error_dashboard/error_notification_mailer/error_alert.html.erb
278
303
  - app/views/rails_error_dashboard/error_notification_mailer/error_alert.text.erb
279
304
  - app/views/rails_error_dashboard/errors/_error_row.html.erb
280
305
  - app/views/rails_error_dashboard/errors/_pattern_insights.html.erb
281
306
  - app/views/rails_error_dashboard/errors/_stats.html.erb
307
+ - app/views/rails_error_dashboard/errors/_timeline.html.erb
282
308
  - app/views/rails_error_dashboard/errors/analytics.html.erb
283
309
  - app/views/rails_error_dashboard/errors/correlation.html.erb
284
310
  - app/views/rails_error_dashboard/errors/index.html.erb
311
+ - app/views/rails_error_dashboard/errors/overview.html.erb
285
312
  - app/views/rails_error_dashboard/errors/platform_comparison.html.erb
286
313
  - app/views/rails_error_dashboard/errors/show.html.erb
287
314
  - config/routes.rb
@@ -295,11 +322,14 @@ files:
295
322
  - db/migrate/20251225100236_create_error_occurrences.rb
296
323
  - db/migrate/20251225101920_create_cascade_patterns.rb
297
324
  - db/migrate/20251225102500_create_error_baselines.rb
325
+ - db/migrate/20251226020000_add_workflow_fields_to_error_logs.rb
326
+ - db/migrate/20251226020100_create_error_comments.rb
298
327
  - lib/generators/rails_error_dashboard/install/install_generator.rb
299
328
  - lib/generators/rails_error_dashboard/install/templates/README
300
329
  - lib/generators/rails_error_dashboard/install/templates/initializer.rb
301
330
  - lib/generators/rails_error_dashboard/solid_queue/solid_queue_generator.rb
302
331
  - lib/generators/rails_error_dashboard/solid_queue/templates/queue.yml
332
+ - lib/generators/rails_error_dashboard/uninstall/uninstall_generator.rb
303
333
  - lib/rails_error_dashboard.rb
304
334
  - lib/rails_error_dashboard/commands/batch_delete_errors.rb
305
335
  - lib/rails_error_dashboard/commands/batch_resolve_errors.rb
@@ -308,6 +338,7 @@ files:
308
338
  - lib/rails_error_dashboard/configuration.rb
309
339
  - lib/rails_error_dashboard/engine.rb
310
340
  - lib/rails_error_dashboard/error_reporter.rb
341
+ - lib/rails_error_dashboard/logger.rb
311
342
  - lib/rails_error_dashboard/middleware/error_catcher.rb
312
343
  - lib/rails_error_dashboard/plugin.rb
313
344
  - lib/rails_error_dashboard/plugin_registry.rb
@@ -322,8 +353,11 @@ files:
322
353
  - lib/rails_error_dashboard/queries/error_correlation.rb
323
354
  - lib/rails_error_dashboard/queries/errors_list.rb
324
355
  - lib/rails_error_dashboard/queries/filter_options.rb
356
+ - lib/rails_error_dashboard/queries/mttr_stats.rb
325
357
  - lib/rails_error_dashboard/queries/platform_comparison.rb
358
+ - lib/rails_error_dashboard/queries/recurring_issues.rb
326
359
  - lib/rails_error_dashboard/queries/similar_errors.rb
360
+ - lib/rails_error_dashboard/services/backtrace_parser.rb
327
361
  - lib/rails_error_dashboard/services/baseline_alert_throttler.rb
328
362
  - lib/rails_error_dashboard/services/baseline_calculator.rb
329
363
  - lib/rails_error_dashboard/services/cascade_detector.rb
@@ -354,7 +388,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
388
  - !ruby/object:Gem::Version
355
389
  version: '0'
356
390
  requirements: []
357
- rubygems_version: 3.7.2
391
+ rubygems_version: 3.6.9
358
392
  specification_version: 4
359
393
  summary: Self-hosted Rails error monitoring — free, forever. Zero SaaS fees, zero
360
394
  lock-in.