From 7a93a07eaade08395d660f1fd3afdedb15623cdd Mon Sep 17 00:00:00 2001 From: David Young Date: Fri, 27 Mar 2026 12:49:21 +0000 Subject: [PATCH] Added DFE Analytics gem and setup --- template.rb | 8 +++++++ templates/dfe_analytics.rb | 45 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 templates/dfe_analytics.rb diff --git a/template.rb b/template.rb index dd76919..0aa4377 100644 --- a/template.rb +++ b/template.rb @@ -26,6 +26,8 @@ def apply_template! setup_adrs # Put last for correct ordering in README setup_semantic_logger + setup_dfe_analytics + fix_ci fix_setup bundle_with_checksums @@ -157,6 +159,12 @@ def setup_semantic_logger apply 'templates/semantic_logger.rb' end +def setup_dfe_analytics + say("\n=== DfE Analytics ===") + + apply 'templates/dfe_analytics.rb' +end + def fix_ci say "\n=== Fixing CI configuration ===" gsub_file("config/ci.rb", "yarn audit", "yarn npm audit") diff --git a/templates/dfe_analytics.rb b/templates/dfe_analytics.rb new file mode 100644 index 0000000..5796283 --- /dev/null +++ b/templates/dfe_analytics.rb @@ -0,0 +1,45 @@ +gem 'dfe-analytics', github: 'DFE-Digital/dfe-analytics', tag: 'v1.15.8' + +bundle_command("install --quiet") + +run "rails generate dfe:analytics:install" + +airbyte_config = <<-RUBY + # Set a config file for Airbyte + config.airbyte_stream_config_path = 'config/analytics_airbyte_stream_config.json' + +RUBY +# FIXME: Uncomment this whent he version is updated +# insert_into_file("config/initializers/dfe_analytics.rb", airbyte_config, after: "DfE::Analytics.configure do |config|\n" ) + +azure_federated_auth_config = <<-RUBY + # FIXME: Review this setting to ensure it's appropriate for your application + # Use Azure Federated Auth [see docs](https://github.com/DFE-Digital/dfe-analytics?tab=readme-ov-file#31-workload-identity-federation) + config.azure_federated_auth = true + +RUBY +gsub_file("config/initializers/dfe_analytics.rb", " # config.azure_federated_auth = false", azure_federated_auth_config) + +log_only_config = <<-RUBY + # FIXME: Review this setting to ensure it's appropriate for your application + config.log_only = Rails.env.local? + +RUBY +gsub_file("config/initializers/dfe_analytics.rb", " # config.log_only = true", log_only_config) + +async_config = <<-RUBY + # FIXME: Review this setting to ensure it's appropriate for your application + config.async = !Rails.env.local? +RUBY +gsub_file("config/initializers/dfe_analytics.rb", " # config.async = true", async_config) + +queue_config = <<-RUBY + config.queue = :dfe_analytics +RUBY +gsub_file("config/initializers/dfe_analytics.rb", " # config.queue = :default", queue_config) + +inject_into_file( + "app/controllers/application_controller.rb", + "include DfE::Analytics::Requests\n".indent(2), + after: "class ApplicationController < ActionController::Base\n" +) \ No newline at end of file