From 67c7074bfe9f088d77f5dc3dac0fe5ebe4169956 Mon Sep 17 00:00:00 2001 From: Andre Arko Date: Fri, 13 Dec 2024 00:32:38 -0800 Subject: [PATCH] add some URLs that give us request debug info --- Gemfile | 2 +- app/controllers/requests_controller.rb | 25 +++++++++++++++++++++++++ config/routes.rb | 1 + 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 app/controllers/requests_controller.rb diff --git a/Gemfile b/Gemfile index 784c0e29..a53ca2e3 100644 --- a/Gemfile +++ b/Gemfile @@ -37,7 +37,6 @@ group :development do end group :production do - gem "cloudflare-rails", "~> 6.2" gem "honeybadger", "~> 5.26" gem "lograge", "~> 0.14.0" gem "rack-attack", "~> 6.7" @@ -47,6 +46,7 @@ gem "better_html", "~> 2.1" gem "bootsnap", "~> 1.18", require: false gem "brotli", "~> 0.6.0" gem "cloudflare", "~> 4.4" +gem "cloudflare-rails", "~> 6.2" gem "data_migrate", "~> 11.2" gem "importmap-rails", "~> 2.0" gem "jb", "~> 0.8.2" diff --git a/app/controllers/requests_controller.rb b/app/controllers/requests_controller.rb new file mode 100644 index 00000000..4a04826f --- /dev/null +++ b/app/controllers/requests_controller.rb @@ -0,0 +1,25 @@ +class RequestsController < ApplicationController + def show + case params[:id] + when "error" + raise "oh no" + when "headers" + render plain: request.headers.to_h.map { |k, v| "#{k}: #{v}" }.sort_by(&:first).join("\n") + when "cloudflare" + render plain: JSON.pretty_generate( + "Rails.configuration.cloudflare": Rails.configuration.cloudflare, + "Importer.cloudflare_ips": CloudflareRails::Importer.cloudflare_ips, + "CloudflareRails::FallbackIps::IPS_V4": CloudflareRails::FallbackIps::IPS_V4, + "CloudflareRails::FallbackIps::IPS_V6": CloudflareRails::FallbackIps::IPS_V6, + "request.headers['REMOTE_ADDR']": request.headers["REMOTE_ADDR"], + "request.forwarded_for": request.forwarded_for, + "request.remote_ip": request.remote_ip, + "request.ip": request.ip, + "request.local?": request.local?, + "request.cloudflare?": request.cloudflare? + ) + else + head :not_found + end + end +end diff --git a/config/routes.rb b/config/routes.rb index 27cc8101..43d235f4 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -6,6 +6,7 @@ end end resources :stats, only: [:index] + resources :requests, only: [:show] get "up" => "rails/health#show"