-
Notifications
You must be signed in to change notification settings - Fork 267
Adds support for additional/unknown properties on project/service config (Take 2) #6481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Copilot reviewed 22 out of 22 changed files in this pull request and generated no comments.
Azure Dev CLI Install InstructionsInstall scriptsMacOS/Linux
bash: pwsh: WindowsPowerShell install MSI install Standalone Binary
MSI
Documentationlearn.microsoft.com documentationtitle: Azure Developer CLI reference
|
PR Summary: Add AdditionalProperties Support for Extension Framework
Enables extension authors to add custom configuration fields to project and service configs without breaking existing functionality.
Use Cases:
1. Project-Level Extension Configuration
Developer building a custom deployment extension needs project-wide settings:
Extension reads these via
project.AdditionalProperties["deploymentStrategy"]and modifies deployment behavior accordingly.2. Service-Level Extension Configuration
Developer building a monitoring extension that works with any service type:
Extension processes any service regardless of host type, reading
service.AdditionalProperties["monitoring"]to configure service-specific monitoring rules.Key Changes:
• Added
AdditionalPropertiesfield toProjectConfigandServiceConfigstructs usingyaml:",inline"tag for seamless YAML integration• Enhanced protobuf schema with
additional_propertiesfields in bothProjectConfigandServiceConfigmessages• Updated mapper registry to convert
AdditionalProperties↔additional_propertiesfor extension wire protocol communication• Preserved existing behavior - only writes additional properties to YAML when they differ from defaults (uses mergo pattern)
• Full round-trip support - YAML ↔ Go structs ↔ protobuf ↔ extensions with data integrity maintained
Extension Author Benefits:
• Add custom fields to
azure.yamlwithout schema violations• Access additional properties via gRPC extension framework
• Clean separation between core config and extension-specific data
• Type-safe configuration extraction using existing config system
• Works with any service type (containerapp, appservice, staticwebapp, etc.)
Based on the comprehensive implementation we've completed, here's a summary you can append to your pull request description:
New gRPC Configuration Management Services
This implementation enables extensions to store and manage custom configuration data at both project and service levels, providing the foundation for rich extension capabilities while maintaining clean separation from core Azure Developer CLI configuration schema.
New Project Service RPC Methods
Project-Level Configuration:
GetConfigSection- Retrieve configuration sections using dot-notation pathsGetConfigValue- Retrieve individual configuration valuesSetConfigSection- Set/update entire configuration sectionsSetConfigValue- Set/update individual configuration valuesUnsetConfig- Remove configuration sections or valuesService-Level Configuration:
GetServiceConfigSection- Retrieve service-specific configuration sectionsGetServiceConfigValue- Retrieve service-specific configuration valuesSetServiceConfigSection- Set/update service configuration sectionsSetServiceConfigValue- Set/update service configuration valuesUnsetServiceConfig- Remove service configuration sections or valuesKey Features
"database.connection.host"AdditionalProperties