From 123053bb61c20e4f81d16b31597bd629bb08a41f Mon Sep 17 00:00:00 2001 From: Rob Sterner Date: Wed, 7 Feb 2024 16:41:42 -0500 Subject: [PATCH] adds rollbar --- .gitignore | 2 + Gemfile | 2 + Gemfile.lock | 2 + config/credentials/development.yml.enc | 2 +- config/credentials/production.yml.enc | 2 +- config/credentials/test.yml.enc | 2 +- config/initializers/rollbar.rb | 71 ++++++++++++++++++++++++++ 7 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 config/initializers/rollbar.rb diff --git a/.gitignore b/.gitignore index 74e743ec..7892803f 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,5 @@ spec/examples.txt .DS_Store /config/credentials/production.key +config/credentials/test.key +config/credentials/development.key diff --git a/Gemfile b/Gemfile index 79d31939..7d743ff6 100644 --- a/Gemfile +++ b/Gemfile @@ -37,6 +37,8 @@ gem "view_component" gem "bootsnap", require: false gem "faker" +gem 'rollbar' + # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] # gem "image_processing", "~> 1.2" diff --git a/Gemfile.lock b/Gemfile.lock index e125135b..63aee54d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -243,6 +243,7 @@ GEM request_store (1.5.1) rack (>= 1.4) rexml (3.2.6) + rollbar (3.5.1) rspec-core (3.12.2) rspec-support (~> 3.12.0) rspec-expectations (3.12.3) @@ -350,6 +351,7 @@ DEPENDENCIES rack-cors rails (= 7.1.2) rails-controller-testing + rollbar rspec-rails selenium-webdriver shoulda-matchers (~> 5.0) diff --git a/config/credentials/development.yml.enc b/config/credentials/development.yml.enc index 0ea2ffb0..7ccf8e16 100644 --- a/config/credentials/development.yml.enc +++ b/config/credentials/development.yml.enc @@ -1 +1 @@ -OGwKRI9dH43bb+eLhmX+v9F+Wbv7gAZWZq+yJ1qSDv3y9/ec9m+v2KVt1Kod/6XNvTWIjNKHcoU/3h70HUljqKOJ2Tn37fu8knWI7WC9Wmzaab4vt6nGGBPtERjNzW5ootlNGCGv8bDl7Z/5FHJzw0cSPALA7n0knIusqGmfnplBcR2TjeRKdPmvrjlPhYbOXbxPKnfjSTWXCYdJF1u89opzLtQH6mg2Gkl1rtsSQKbbaTf/yAF2I5SkGNfhbDIYBQVZpniuAyWVQPY/xlrVjeiv1cMki8n+z8YXDtucnwU7eqNvqk7h1Q2DnHC1W6+ZR+J8jSHW3oOmrelwt0GUl5BsaYoJyFRzXr6t9WvzLkWblMiuAYCMK5cG/1i5qxeQ99vdhJEEZoyurVBtvftkW4hfO0AmfSyed5blYyQOZwbjfFgmlpc8b65nqHQN/hCJPgprYWkst/MijH+OTVNtulBDLq70TMeTuC5toHpeMJNvnFkbGbTOK2izsV1KP/1eUmIfl7U7+Isl/JW9oRnMhcq8SRPyhhYGzFkioNCLezcpkwVkMdzJX3adarNTzgK/z3obRB17DSkYnwheQR4M3ZBoTlyJ3/yrKUG7mhXb+a32qulHlgISssA0XtiZmAn0DQRnepcotHs+QMxEDqKxfxXUTlSkf9xXFqKeNj4PuPbLiqMeXr4jbdplw9ZAfpCTP9jQ7V3JE2lCuV2SrO37USDZa0n7a6/xkcwdWXevk6V3w+vB4okAQgGVWQkPUxm4722yRSwf6wqRDntaLnFuFZRl+3lgPedO7mgY0MreLUV6MwKWkAVqWldzjwQs8kTfGNFYlk3ZioGNlLKvljzhCA==--QiJngedjyOCb0s14--rhpDcTz4hGj+Fadoexa19g== \ No newline at end of file +tcdjwuhQ5Q/kF0EllpyIimYkQbu/lTqWUgSo/TauoXO5W6aaAi3JqZO9b5rs5oQDcuTmyM06n63N57QvQbF0JY/MSHRWqnLGjg073oQdiJZ6yUgBpewV4PQ5OWLSxLC4kZDsubji8NU5zY+s7WxuZ76tq6zKHDTL8IfsWjGCq2qINbiGiVhgzpCu7GN5dZMjAO0+9UHJV8SZ8t3SH06mmXiOVf3DwGMkt3iO4N9YYMDMrK2WueR4ifBnQsE/z2CSJ8wiA3dvbalTtUoc3RVB8APF3kLIfsSemQdpQUwUMDNnZ04s7JdTazhUvpTvHs15shAZKCKzDsVvxtV/LPOx368bH6vj0pMLH6Todgt2HyqLGfRlAz6cutAc/6aZvA8f175sOZ4gt1AZs+f3/BhzH0xn+TjVnHmyF6FOaJglUnLGhtLY0UK1+KP48EK3WEtvR6yU27gVcQm6LpJoYKQvwfgFrMxn19WWWTy6a1ooLSnZjmVhQoJ5tnO5naHzJkF5BP1vUCEeDEY3di6m9vkkulPZX9oOWbsy822iOfcKzXEcYneuAQI+Qsw4R7Bb44ww+x9PaWfQyMoPdcSKdetd+X2JShpsL042pl+Iui6gxCqPw6gMpQ3fcE3Fdc6afly5f0JrYmdKZSG1krZC/ftl2R9BTWVbBGIF+HsYOlC6/d0y6xAB+HbWoK0HVh/H8HikvpGQkqDM8SS66m+pPJmOn42srefN35+S+zvKaZYK7VbkwBzmKZwXCwP/HtyL5+Hg68eILnm5uQ5Q7u89mizRuR9U1YlCtOsP1f0bv2jy4qxb46SLYU58das2T9R4qO3ZVasJAn0Wc+evvYtCNif67N+TUW27dkU7QdqSVlP10hlUHh7PlJ0Y4l8=--DlednnZIjbSKM9jF--CsrSpmsVyfd+oqeC3ANe8Q== \ No newline at end of file diff --git a/config/credentials/production.yml.enc b/config/credentials/production.yml.enc index 9c77840b..315c56ff 100644 --- a/config/credentials/production.yml.enc +++ b/config/credentials/production.yml.enc @@ -1 +1 @@ -QrT3SG+8PQqZhQtdMEEPHsYH8BRPu7cFmbijADSejmFiJD/JJ9x13hmOjIMUGWYUOoNW5LuEWaRWnDz+fyxsBe7vsVddgyd0DI1UsvrMEvnHbzk3MF4rbbta500W0hcPaWIyxJZB9mgV0HkgNUCH9gqEuJEmmvZBh1TxTiN2XKhE9Fo/3Qxmv6nkQyR5Bg4Ad5fkrDNni6DBt0x7Rw54usYXcbAKQYbtAp/EfAeJkkSUTSVpotV+1J/Lq7dtz6LttTMkaUQlLCTLhX4wt3IwBjm0EhI5jINl3VxV0gQKuk61bZGjvXI19TQ3n9BGjXq1ymAVXyO5R2Va+jVMX5zjkip1cC8LsqFVPnXHISMtdivNj60wvNOvJrPpbtrxgale9t4hw1Ge7TjEWcAdOGlnO18aMMAQkFMuusxPf2lBLgiqdYpySX+qLziGlo/PmEGJwFHX5KyUYbPe85onq/kEzb/kOx9I0cyKXgPKIsEm7aYW5jaBrbSRtG3tb1unQe1ZZEpC4owPnAEET+aqrPsOt8Bjcw4yuxdvVZxI6vgHL3M0hE1kPCKcmQdHioxyN2nPeCnXdsuSLCVBBvdxhgu8aQMQ8HWzxpH+fk9PQHRvF56zaK8MjbyQ7qCrFtZCaV9JsgI7fUl5l7l7UfNOHOaurFzxOMeYyOu41AuGCCpa445d26XilXCYbiWD/6MQD6e8Dvlj6QpKY5344YP/jwBlaQlYXJZ+JgcroPsVKObHpI5k3TjNUxLLWgvHn0hb7sflOxNSyifFjeSkpLJ/KZRZlcGR55RIoGO7FTyXbuX2w++1H+35mSNCdGSg61mHKvP8yNEGzhADtCo7zh7+bJ4GvhGIzexaRGqwoJJ/C5MPYGuNrJWMgtksctuJNsefgeyYRQmp/zzz/+j32jfEk6/wgsMwkgJHwfYvhWBpkjjk/qRHsvPEe/XobcyVgsdPJkRJMbry5XqaDsYx/8GurghuPTR1AAMSemt50MAR0GJmhW1AuTnSL6xeKj957HXYEUi/dzI1oY3nXvQ+EOnzXehq7R1JA6QH3E88Jc66zSN3zCfaBi4dJgiJKYk8X0IDts3gLsSRWhDj0sLmO3zb83bpIe+HURXjxKOxeTmhRScWg4NWZhzG/gjryohlhr/LvDKvSUDM1aZqUyBgLSNLoGg5kig1W/9CC634OSM43Gy1pNWeJJW5Z2aW+ezGSyMI/3KGfN8lJ8IKXIWh--0Cc1NC6zDRY3KPHG--3S/s//rQNUB7NWfmm0GGIw== \ No newline at end of file +02Ba5mqQ3zE/nylwHISqqSe4FhguNOogRsR3VB6Nm5iQ13fqPDhQmN2MVyroGOInapyhlEte8QDlOx8Nz/BaEnHYkaGK5GDZT/omIR64+0S0MXXnvTXWFxFdJCH2UtDiwnuT9e/0SVZp56aOS7g3c2UAphXpr4fdLWoSjxTEzSFB91mLaCy6r4urZ4H0+V6qSoMbw8hiV5n//zOJXQcfWfRrZxizPOKbD0MwL3VksxtBY20uVcEv/kRCewjr3/mnhOTr46wCSJL+1EHUlfaUsEbqHEViK1JpqCIl1Lbjz8r+oW4aLLo+uwJGKnCI96D9wosSpK819+v72tRT/nrvkYoEUVEN2PaNIDu9eEHwuDFXg8igIJHUoGT0mmxLE1o1MuwJGEPzGMESB4A693Py51E+7kLjKBFJEzdNu4Wk1khnKZrgjGPI2pg7r5caRIQFvjjzMndE3FT3/vK+YjywoI9+VfAhTxbbsalS5UDBAoqtHv4n1/eCaZlHiUbXqJGL3M0Cv5K9V91Cm9nra1weY2E6DphJ1Hb0hiphNtOO5hlvZyOYoz7z0uih7rbH/dSk6s6MC4/5X6W602L5b1cTMNKSiYVpk0S7NipS8TrnU6m+keVcuQjW6zsonu8LcHBz6BS0wPK4QQdOWXVmHcnwTa9H5Rv8ZeUWYO2iBPMyr3Z9aVeu01St8NGHICAZn0IkVpBSXcX3xbpTSy+raV9vE64I9wpovToRw65XSho2CWJskeNrQIQJ/nRC2C8oMVpzIVO0Zu59pY/FY1EHAhYh+ym/mpU+7SFoX/Xu2xuttTFSPA2Bla2nR6mVE1zfWSt2Hs+eQa6gm3MiHGLpm03c17B5hcFkWc7UcTYu/EBuNZQZpWnPHf+fSKPsBPeHSFv8RlhMapL7wVKjrKy8h+/4n5k3CXQ+tVUQ5OADyrH0gAf+qFfvNmSJmNyy4ZTBoG63kynCO3WmjwoO4j+h5JWrT/Amv6s7ijxUsUkVrNZwUJSVsPVQkYdoL+8927Ql/JMishUmatiRmu+6aCfHStOP3qpN6Gv0L6hWCx2MjTMdCgBiBfKvdEyubu+NuHjcvubAeEySpvP2M5xqrPb/mUbCBuxBdLwF3tXJnjnX7G+nw7+yvFeMIObY3eeDAUzeikj7+ZF6gBLpKpoT3+qBcZ47cKP8jGxWAZp8MX9qn8CcCp5XwcriTI0XuXv68/dnc5hawMv3+k99UrzjQw3pn0pj3W8ZAt6IFgWctRn4v2fsTvgjRPZNFZDkYbpGXtWbWkDq573EHFD+AznfXVkc9vdVHrU0--mrgcB3APdM04ReFr--e7299YQzQk3mLeQPnapm/A== \ No newline at end of file diff --git a/config/credentials/test.yml.enc b/config/credentials/test.yml.enc index 0ea2ffb0..09278f10 100644 --- a/config/credentials/test.yml.enc +++ b/config/credentials/test.yml.enc @@ -1 +1 @@ -OGwKRI9dH43bb+eLhmX+v9F+Wbv7gAZWZq+yJ1qSDv3y9/ec9m+v2KVt1Kod/6XNvTWIjNKHcoU/3h70HUljqKOJ2Tn37fu8knWI7WC9Wmzaab4vt6nGGBPtERjNzW5ootlNGCGv8bDl7Z/5FHJzw0cSPALA7n0knIusqGmfnplBcR2TjeRKdPmvrjlPhYbOXbxPKnfjSTWXCYdJF1u89opzLtQH6mg2Gkl1rtsSQKbbaTf/yAF2I5SkGNfhbDIYBQVZpniuAyWVQPY/xlrVjeiv1cMki8n+z8YXDtucnwU7eqNvqk7h1Q2DnHC1W6+ZR+J8jSHW3oOmrelwt0GUl5BsaYoJyFRzXr6t9WvzLkWblMiuAYCMK5cG/1i5qxeQ99vdhJEEZoyurVBtvftkW4hfO0AmfSyed5blYyQOZwbjfFgmlpc8b65nqHQN/hCJPgprYWkst/MijH+OTVNtulBDLq70TMeTuC5toHpeMJNvnFkbGbTOK2izsV1KP/1eUmIfl7U7+Isl/JW9oRnMhcq8SRPyhhYGzFkioNCLezcpkwVkMdzJX3adarNTzgK/z3obRB17DSkYnwheQR4M3ZBoTlyJ3/yrKUG7mhXb+a32qulHlgISssA0XtiZmAn0DQRnepcotHs+QMxEDqKxfxXUTlSkf9xXFqKeNj4PuPbLiqMeXr4jbdplw9ZAfpCTP9jQ7V3JE2lCuV2SrO37USDZa0n7a6/xkcwdWXevk6V3w+vB4okAQgGVWQkPUxm4722yRSwf6wqRDntaLnFuFZRl+3lgPedO7mgY0MreLUV6MwKWkAVqWldzjwQs8kTfGNFYlk3ZioGNlLKvljzhCA==--QiJngedjyOCb0s14--rhpDcTz4hGj+Fadoexa19g== \ No newline at end of file +ZhBIGijfSCkZSW9W1yg/3WxALJjsVAwDp78yuSpHv7rbYwoerZgTqVHYKCW1qnV2SndNg11zpBIoBOCfM4kWOS/jV9CHx7BWo1q5wQFwgQnbtoYknq+qU5ve1j17J4hSyavByHpa67wICxiporSwQBFYgPRnZbdErShRB7o4BikMC5vuTiZJ4A/E2u8QFP6QTPu956n031Vnx8pyN+YUUvlrBQXktz4mHyznIkJ+eLL88v+v6HNBBalU9WcztJhwDznOg1sYJ+J159FfTUDk6mzeM2DIRjBtV/wDonU4nEU2EP4eTH3PPCK5n6k3+1YSMIDOwOAqJDYEDEF/OjFfaSfkmr0Rx/nGb3b+bcdEzh1Fueo1G9PFvGwayQ+5vV/6ZahUV7/1jmTdlRaubAog8xxmAjVitxnfMmMOpQv5M18gfR+lH5h9cKsTFtmL3VmuWxUhSRDZ62U91yT2LPbozglmFddce0n9r4AMOKo0iEC9+KKnhyHJgOA0N6M0s2alTvgrS846OTxzBFQ9E8G2uA5U9RLFNIaFZ6mnVdjo/V2STaROq1yghIZ1RbgMP6FLE00a0kUDhwBIqdfMiUqhXLPIbGsKvUaAgUD1CskrW03kzVDaEnNGjbE6PQ6nWYM/nxdgevPhC5YzpCh9y8+d1p+qZufPutbyw3PT7UGxEc/XXidtliJVpGdFlX4kaKyXyHt8gLROTBTOmE7Nt02S8gKnQQKs960X/VaKYJ0WXfR1Bh7Sz/dT8lVqbsDhZEbyFqrHRl0XffQKtfvMAicfQnheGhIpaB6e5cWJr1aEKTMjOOuR7UzLj1h9rv/rIE+maM2ggIWldTczidmDv9waBL87jOhi52p87cUKtH9p8kc1uIi3/DL0QHI=--JCfDH8q195rfaiJ3--RXaCeZYqrPLbCAgBC4FDVQ== \ No newline at end of file diff --git a/config/initializers/rollbar.rb b/config/initializers/rollbar.rb new file mode 100644 index 00000000..905042c7 --- /dev/null +++ b/config/initializers/rollbar.rb @@ -0,0 +1,71 @@ +Rollbar.configure do |config| + # Without configuration, Rollbar is enabled in all environments. + # To disable in specific environments, set config.enabled=false. + + config.access_token = Rails.application.credentials.rollbar_access_token + + # only enable in production + unless Rails.env.production? + config.enabled = false + end + + # By default, Rollbar will try to call the `current_user` controller method + # to fetch the logged-in user object, and then call that object's `id` + # method to fetch this property. To customize: + config.person_method = "current_user" + # config.person_id_method = "my_id" + + # Additionally, you may specify the following: + config.person_username_method = "name" + config.person_email_method = "email" + + # If you want to attach custom data to all exception and message reports, + # provide a lambda like the following. It should return a hash. + # config.custom_data_method = lambda { {:some_key => "some_value" } } + + # Add exception class names to the exception_level_filters hash to + # change the level that exception is reported at. Note that if an exception + # has already been reported and logged the level will need to be changed + # via the rollbar interface. + # Valid levels: 'critical', 'error', 'warning', 'info', 'debug', 'ignore' + # 'ignore' will cause the exception to not be reported at all. + # config.exception_level_filters.merge!('MyCriticalException' => 'critical') + # + # You can also specify a callable, which will be called with the exception instance. + # config.exception_level_filters.merge!('MyCriticalException' => lambda { |e| 'critical' }) + + # Enable asynchronous reporting (uses girl_friday or Threading if girl_friday + # is not installed) + # config.use_async = true + # Supply your own async handler: + # config.async_handler = Proc.new { |payload| + # Thread.new { Rollbar.process_from_async_handler(payload) } + # } + + # Enable asynchronous reporting (using sucker_punch) + # config.use_sucker_punch + + # Enable delayed reporting (using Sidekiq) + # config.use_sidekiq + # You can supply custom Sidekiq options: + # config.use_sidekiq 'queue' => 'default' + + # If your application runs behind a proxy server, you can set proxy parameters here. + # If https_proxy is set in your environment, that will be used. Settings here have precedence. + # The :host key is mandatory and must include the URL scheme (e.g. 'http://'), all other fields + # are optional. + # + # config.proxy = { + # host: 'http://some.proxy.server', + # port: 80, + # user: 'username_if_auth_required', + # password: 'password_if_auth_required' + # } + + # If you run your staging application instance in production environment then + # you'll want to override the environment reported by `Rails.env` with an + # environment variable like this: `ROLLBAR_ENV=staging`. This is a recommended + # setup for Heroku. See: + # https://devcenter.heroku.com/articles/deploying-to-a-custom-rails-environment + config.environment = ENV['ROLLBAR_ENV'].presence || Rails.env +end