Skip to content

Feature/config updates#777

Merged
frasermolyneux merged 1 commit into
mainfrom
feature/config-updates
Feb 23, 2026
Merged

Feature/config updates#777
frasermolyneux merged 1 commit into
mainfrom
feature/config-updates

Conversation

@frasermolyneux

Copy link
Copy Markdown
Owner

This pull request introduces Azure App Configuration as a centralized configuration provider for the .NET 9 Azure Functions app, replacing direct environment variable usage for most app settings. It also updates the FTP certificate thumbprint configuration to use a new key name and ensures case-insensitive comparison. Several Terraform variables and settings are cleaned up to reflect the new configuration approach.

Azure App Configuration Integration:

  • The app now connects to Azure App Configuration if AzureAppConfiguration:Endpoint is set, loading configuration keys with environment-specific labels and supporting Key Vault references. This is implemented in Program.cs and documented in .github/copilot-instructions.md. [1] [2]
  • Added the Microsoft.Extensions.Configuration.AzureAppConfiguration NuGet package to enable this integration.

Configuration Key Updates:

  • The FTP certificate thumbprint setting is renamed from xtremeidiots_ftp_certificate_thumbprint to XtremeIdiots:FtpCertificateThumbprint throughout the codebase, and comparisons are now case-insensitive and null-safe. [1] [2] [3] [4]

Terraform and Infrastructure Cleanup:

  • Removed direct app setting assignments for API URLs, audiences, and FTP certificate thumbprint in terraform/function_app.tf, reflecting the move to centralized configuration.
  • Removed the geo_location_api variable and related data from terraform/tfvars/dev.tfvars, terraform/tfvars/prd.tfvars, and terraform/variables.tf. [1] [2] [3]

…ings and remove deprecated geo-location API configurations
Copilot AI review requested due to automatic review settings February 23, 2026 22:33
@github-actions

Copy link
Copy Markdown
Contributor

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
nuget/Microsoft.Extensions.Configuration.AzureAppConfiguration 8.1.2 UnknownUnknown

Scanned Files

  • src/XtremeIdiots.Portal.Repository.App/XtremeIdiots.Portal.Repository.App.csproj

@github-actions

Copy link
Copy Markdown
Contributor

🏗️ Terraform Plan

🌍 Environment: dev

✅ Validate — Passed

✅ Plan

Count
➕ Add 5
📋 Resource Details
Action Resource
➕ Create azurerm_linux_function_app.function_app
➕ Create azurerm_monitor_activity_log_alert.rg_resource_health
➕ Create azurerm_role_assignment.app-to-storage
➕ Create azurerm_storage_account.function_app_storage
➕ Create random_id.environment_id

@sonarqubecloud

Copy link
Copy Markdown

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request migrates the application from direct environment variable configuration to Azure App Configuration as a centralized configuration provider. The changes introduce a bootstrap pattern where the app connects to Azure App Configuration (when AzureAppConfiguration:Endpoint is set) to load environment-specific settings, including Key Vault references. Additionally, the FTP certificate thumbprint configuration key is standardized and made more robust with case-insensitive and null-safe comparison.

Changes:

  • Integrated Azure App Configuration with environment-specific label selectors for centralized configuration management
  • Renamed and improved FTP certificate thumbprint configuration from xtremeidiots_ftp_certificate_thumbprint to XtremeIdiots:FtpCertificateThumbprint with case-insensitive comparison
  • Removed hardcoded API settings and GeoLocation API variables from Terraform, moving them to Azure App Configuration

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/copilot-instructions.md Updated architecture and configuration documentation to reflect Azure App Configuration integration
terraform/variables.tf Removed geo_location_api variable as settings moved to Azure App Configuration
terraform/tfvars/dev.tfvars Removed GeoLocation API configuration block
terraform/tfvars/prd.tfvars Removed GeoLocation API configuration block
terraform/function_app.tf Removed direct app setting assignments for API URLs and audiences, now loaded from Azure App Configuration
src/XtremeIdiots.Portal.Repository.App/XtremeIdiots.Portal.Repository.App.csproj Added Microsoft.Extensions.Configuration.AzureAppConfiguration package v8.1.2
src/XtremeIdiots.Portal.Repository.App/Program.cs Implemented Azure App Configuration bootstrap with environment-specific label selectors and Key Vault integration
src/XtremeIdiots.Portal.Repository.App/Functions/UpdateLiveLogFile.cs Updated FTP certificate thumbprint to new key name with null-safe and case-insensitive comparison
src/XtremeIdiots.Portal.Repository.App/Functions/UpdateBanFileMonitorConfig.cs Updated FTP certificate thumbprint to new key name with null-safe and case-insensitive comparison (2 locations)

Comment thread .github/copilot-instructions.md
@frasermolyneux frasermolyneux merged commit a062c43 into main Feb 23, 2026
24 checks passed
@frasermolyneux frasermolyneux deleted the feature/config-updates branch February 23, 2026 22:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants