Module: RailsErrorDashboard

Defined in:
lib/rails_error_dashboard/error_reporter.rb,
lib/rails_error_dashboard.rb,
lib/rails_error_dashboard/engine.rb,
lib/rails_error_dashboard/plugin.rb,
lib/rails_error_dashboard/version.rb,
lib/rails_error_dashboard/configuration.rb,
lib/rails_error_dashboard/plugin_registry.rb,
app/models/rails_error_dashboard/error_log.rb,
lib/rails_error_dashboard/commands/log_error.rb,
lib/rails_error_dashboard/queries/errors_list.rb,
app/jobs/rails_error_dashboard/application_job.rb,
lib/rails_error_dashboard/commands/resolve_error.rb,
lib/rails_error_dashboard/plugins/metrics_plugin.rb,
lib/rails_error_dashboard/queries/errors_list_v2.rb,
lib/rails_error_dashboard/queries/filter_options.rb,
lib/rails_error_dashboard/queries/analytics_stats.rb,
lib/rails_error_dashboard/queries/dashboard_stats.rb,
app/models/rails_error_dashboard/error_logs_record.rb,
lib/rails_error_dashboard/middleware/error_catcher.rb,
lib/rails_error_dashboard/plugins/audit_log_plugin.rb,
app/models/rails_error_dashboard/application_record.rb,
app/helpers/rails_error_dashboard/application_helper.rb,
app/mailers/rails_error_dashboard/application_mailer.rb,
lib/rails_error_dashboard/queries/developer_insights.rb,
lib/rails_error_dashboard/services/platform_detector.rb,
lib/rails_error_dashboard/value_objects/error_context.rb,
lib/rails_error_dashboard/commands/batch_delete_errors.rb,
app/controllers/rails_error_dashboard/errors_controller.rb,
lib/rails_error_dashboard/commands/batch_resolve_errors.rb,
lib/rails_error_dashboard/plugins/jira_integration_plugin.rb,
app/jobs/rails_error_dashboard/email_error_notification_job.rb,
app/jobs/rails_error_dashboard/slack_error_notification_job.rb,
app/mailers/rails_error_dashboard/error_notification_mailer.rb,
app/controllers/rails_error_dashboard/application_controller.rb,
app/jobs/rails_error_dashboard/discord_error_notification_job.rb,
app/jobs/rails_error_dashboard/webhook_error_notification_job.rb,
lib/generators/rails_error_dashboard/install/install_generator.rb,
app/jobs/rails_error_dashboard/pagerduty_error_notification_job.rb

Overview

Rack Middleware: Final safety net for uncaught errors This catches errors that somehow escape controller error handling Positioned at the Rack layer (outermost layer of Rails)

Middleware stack order (outer to inner):

  1. ErrorCatcher (this file) ← Catches everything

  2. ActionDispatch middleware

  3. Rails routing

  4. Controllers (with ErrorHandler concern)

This ensures NO error goes unreported

Defined Under Namespace

Modules: ApplicationHelper, Commands, Generators, Middleware, Plugins, Queries, Services, ValueObjects Classes: ApplicationController, ApplicationJob, ApplicationMailer, ApplicationRecord, Configuration, DiscordErrorNotificationJob, EmailErrorNotificationJob, Engine, ErrorLog, ErrorLogsRecord, ErrorNotificationMailer, ErrorReporter, ErrorsController, PagerdutyErrorNotificationJob, Plugin, PluginRegistry, SlackErrorNotificationJob, WebhookErrorNotificationJob

Constant Summary collapse

VERSION =
"0.1.0"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.configurationObject

Returns the value of attribute configuration.



31
32
33
# File 'lib/rails_error_dashboard.rb', line 31

def configuration
  @configuration
end

Class Method Details

.configure {|configuration| ... } ⇒ Object

Yields:



34
35
36
37
# File 'lib/rails_error_dashboard.rb', line 34

def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
end

.pluginsArray<Plugin>

Get all registered plugins

Returns:

  • (Array<Plugin>)

    List of registered plugins



54
55
56
# File 'lib/rails_error_dashboard.rb', line 54

def self.plugins
  PluginRegistry.plugins
end

.register_plugin(plugin) ⇒ Boolean

Register a plugin

Parameters:

  • plugin (Plugin)

    The plugin instance to register

Returns:

  • (Boolean)

    True if registered successfully, false otherwise



42
43
44
# File 'lib/rails_error_dashboard.rb', line 42

def self.register_plugin(plugin)
  PluginRegistry.register(plugin)
end

.unregister_plugin(plugin_name) ⇒ Object

Unregister a plugin by name

Parameters:

  • plugin_name (String)

    The name of the plugin to unregister



48
49
50
# File 'lib/rails_error_dashboard.rb', line 48

def self.unregister_plugin(plugin_name)
  PluginRegistry.unregister(plugin_name)
end