Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
2de6c93
Use TryAddSingleton instead of AddSingleton for extension (#643)
amerjusupovic Apr 11, 2025
2b004fb
Fix format (#647)
zhiyuanliang-ms Apr 17, 2025
3d51200
Add request tracing for content type (#646)
amerjusupovic Apr 17, 2025
fb7fb03
Fix test to use new refresh interval api (#650)
amerjusupovic Apr 17, 2025
300f475
Merge from main
rossgrambo Apr 17, 2025
4fd6ee7
Separate content type exclusion logic from IsJson extension (#651)
amerjusupovic Apr 17, 2025
8fdade8
Merge branch 'main' into rossgrambo/merging-main-to-preview
rossgrambo Apr 18, 2025
5910dbf
update package versions to 8.1.2 (#648)
amerjusupovic Apr 21, 2025
65ed480
Revert "Shorten the defeult timeout of individual call to backend (#6…
amerjusupovic Apr 21, 2025
d7a0331
Merge pull request #649 from Azure/rossgrambo/merging-main-to-preview
rossgrambo Apr 22, 2025
bf8b06b
Add activity source to allow OpenTelemetry to collect tracing (#645)
zhiyuanliang-ms Apr 24, 2025
d0d14a5
Removed FeatureFlagId
rossgrambo Apr 25, 2025
4e1f09f
Merge pull request #655 from Azure/rossgrambo/featureFlagId
rossgrambo Apr 29, 2025
bf7d1bc
Merge branch 'preview' of https://github.com/Azure/AppConfiguration-D…
amerjusupovic May 1, 2025
e09cb23
Add support for filtering by tags (#637)
amerjusupovic May 2, 2025
17ed39c
Clarify client factory comment (#660)
amerjusupovic May 7, 2025
22af6e2
Shorten default timeout of individual calls to backend (#657)
amerjusupovic May 9, 2025
7f1c926
Merge branch 'main' of https://github.com/Azure/AppConfiguration-Dotn…
amerjusupovic May 9, 2025
874dad5
Merge branch 'preview' of https://github.com/Azure/AppConfiguration-D…
amerjusupovic May 9, 2025
a2c0bee
renormalize options
amerjusupovic May 9, 2025
b62a34a
Merge pull request #659 from Azure/ajusupovic/merge-preview-to-main
amerjusupovic May 12, 2025
138a760
update package versions to 8.2.0 (#662)
amerjusupovic May 13, 2025
f2cbaca
Add .gitattributes and normalize line endings (#661)
amerjusupovic May 13, 2025
8b883cc
update to 2023-11-01 (#663)
amerjusupovic May 13, 2025
cba86dd
Add integration testing (#634)
amerjusupovic May 27, 2025
96968ab
Support health check (#644)
zhiyuanliang-ms May 29, 2025
b721c9e
Undo package version change
amerjusupovic Jun 3, 2025
a992b59
Merge pull request #670 from Azure/merge-main-to-preview
amerjusupovic Jun 4, 2025
41d8320
Add Copilot instructions (#667)
amerjusupovic Jun 17, 2025
f2128f4
Add CodeQL exclusions for code samples
RichardMuniu Jun 24, 2025
d5a0462
Fix ConfigStoreDemo sample for CodeQL alerts (#677)
amerjusupovic Jun 24, 2025
2de980f
Merge branch 'main' into user/richardmuniu/codeql-exclusions
amerjusupovic Jun 24, 2025
78803ed
Add CodeQL exclusions for code samples
RichardMuniu Jun 24, 2025
bb8fbbb
Add testcase for refresh activity (#665)
zhiyuanliang-ms Jun 29, 2025
4dad36e
Add environment variable to disable feature management schema compati…
amerjusupovic Jul 20, 2025
290b601
version bump 8.3.0 (#682)
zhiyuanliang-ms Jul 23, 2025
ae71811
Merge pull request #684 from Azure/zhiyuanliang/fix-test
zhiyuanliang-ms Jul 31, 2025
ba88464
Fix bug with endpoint failover (#686)
zhiyuanliang-ms Aug 5, 2025
c43aab3
Support comment in json key value (#685)
zhiyuanliang-ms Aug 6, 2025
17f0732
Add request tracing for Aspire usage (#687)
zhiyuanliang-ms Aug 21, 2025
c17524a
version bump 8.4.0 (#690)
zhiyuanliang-ms Aug 21, 2025
e7ca517
Adding Snapshot References Feature (#689)
t-vvidyasaga Sep 5, 2025
d33316e
Merge pull request #695 from Azure/zhiyuanliang/upgrade-dependency
zhiyuanliang-ms Sep 17, 2025
ffc1fbd
Fix integration test bug (#697)
zhiyuanliang-ms Sep 18, 2025
3d3c4d7
Add AddAzureAppConfiguration overload to take endpoint and entra id (…
zhiyuanliang-ms Sep 18, 2025
34576ef
Merge pull request #700 from Azure/zhiyuanliang/dummy-health-check
zhiyuanliang-ms Oct 2, 2025
e409926
merge main
zhiyuanliang-ms Oct 10, 2025
6809fdc
Merge pull request #704 from Azure/zhiyuanliang/merge-main-to-preview
zhiyuanliang-ms Oct 10, 2025
2dde24d
Support Azure Front Door (#706)
zhiyuanliang-ms Nov 11, 2025
80a9f30
version bump 8.5.0-preview (#708)
zhiyuanliang-ms Nov 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
9 changes: 9 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# If there are abnormal line endings in any file, run "git add --renormalize <file_name>",
# review the changes, and commit them to fix the line endings.
* text=auto

# Third-party library files should not have line endings normalized
**/wwwroot/lib/** -text
*.min.css -text
*.min.js -text
*.map -text
93 changes: 93 additions & 0 deletions .github/code-gen-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# AppConfiguration-DotnetProvider Coding Guidelines

This document outlines coding guidelines for the Azure App Configuration .NET Provider repository. Follow these guidelines when generating or modifying code.

## General Guidelines

1. **Exception Handling**:
* When adding error handling, always catch specific exceptions and avoid catching the base `Exception` class in catch blocks.
* Throw specific exception types (e.g., `ArgumentNullException`, `FormatException`, custom exceptions) rather than generic `System.Exception`.
* Include the parameter name when throwing `ArgumentNullException` using `nameof()`.

2. **Variable Declaration**:
* Never use `var` to declare a variable if the assignment doesn't include the type or the type isn't immediately obvious.
* Use explicit type names for fields, properties, method parameters, and return types.
* Use `var` only when the type is obvious from the right-hand side (e.g., `var user = new User();`).

3. **Null Handling**:
* Validate arguments in public methods and constructors with explicit null checks.
* Use explicit `if (argument == null) throw new ArgumentNullException(nameof(argument));` checks at the beginning of methods/constructors.
* Avoid using the null-forgiving operator (`!`) unless absolutely necessary.

4. **Asynchronous Programming**:
* All async methods should accept a `CancellationToken` as the last parameter.
* Pass the `cancellationToken` down the call stack to all subsequent asynchronous operations.
* Use `Task<T>` or `Task` for asynchronous methods.

5. **LINQ and Collections**:
* Prefer simple, readable LINQ queries.
* Break down complex LINQ queries into separate statements with intermediate variables.
* Use collection interfaces (e.g., `IList<T>`, `IReadOnlyList<T>`) in parameter and return types.

6. **Resource Management**:
* Wrap `IDisposable` instances in `using` statements to ensure proper disposal.
* Implement `IDisposable` correctly if your class manages disposable objects.

7. **Dependency Injection**:
* Use constructor injection for dependencies.
* Store injected dependencies in `private readonly` fields.
* Validate injected dependencies for null in the constructor.

8. **Naming Conventions**:
* Use `PascalCase` for classes, interfaces, enums, methods, properties, and constants.
* Use `camelCase` for local variables and method parameters.
* Prefix private fields with an underscore (`_`).
* Define constants for error messages and other string literals.

9. **Comments**:
* Only add comments when it's not obvious what the code is doing. For example, if a variable name is already fairly descriptive, a comment isn't needed explaining its name.
* Add summary comments to public classes and members of those classes.

## AppConfiguration-Specific Guidelines

1. **Feature Flag Handling**:
* Validate feature flag data structure before processing.
* Handle different feature flag schemas (Microsoft vs .NET) appropriately.
* Use proper error handling when parsing feature flags with clear error messages.

2. **Configuration Key-Value Processing**:
* Follow adapter pattern for processing different configuration types.
* Properly handle key-value pairs with appropriate content type detection.
* Use `KeyValuePair<string, string>` for configuration values.

3. **Content Type Handling**:
* Validate content types before processing.
* Use appropriate content type constants.
* Check content type using extension methods like `IsFeatureFlag()`.

4. **JSON Parsing**:
* Use `Utf8JsonReader` for performance-critical JSON parsing.
* Validate JSON structure and provide clear error messages for malformed input.
* Handle JSON token types appropriately with proper error handling.

5. **Refresh Mechanisms**:
* Implement proper configuration refresh patterns.
* Use sentinel-based refresh mechanisms when appropriate.
* Handle refresh failures gracefully.

## Performance Considerations

1. **String Handling**:
* Use `StringBuilder` for concatenating multiple strings.
* Define string constants for recurring strings.
* Use string interpolation instead of string concatenation when appropriate.

2. **Collections**:
* Initialize collections with estimated capacity when possible.
* Use appropriate collection types for the use case (e.g., `List<T>`, `Dictionary<TKey, TValue>`).
* Avoid unnecessary collection allocations.

3. **Memory Management**:
* Use `Span<T>` and `ReadOnlySpan<T>` for high-performance scenarios.
* Minimize allocations in performance-critical paths.
* Be mindful of closure allocations in LINQ and lambdas.
3 changes: 3 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
This is the Azure App Configuration .NET Provider codebase. The service abides by coding guidelines specified in the `github/code-gen-instructions.md` file.

When suggesting code changes, do not modify the files directly. Instead, provide a detailed explanation of the changes you would make and ask for confirmation before editing the files. You may create markdown files to demonstrate the changes you would like to make.
10 changes: 10 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ on:

permissions:
security-events: write
id-token: write

jobs:
build:
Expand All @@ -40,8 +41,17 @@ jobs:
- name: Dotnet Pack
run: pwsh pack.ps1

- name: Azure Login with OIDC
uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Dotnet Test
run: pwsh test.ps1
env:
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

- name: Publish Test Results
uses: actions/upload-artifact@v4
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
# Azure Functions localsettings file
local.settings.json

# Integration test secrets
appsettings.Secrets.json

# User-specific files
*.suo
*.user
Expand Down
10 changes: 10 additions & 0 deletions CodeQL.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
path_classifiers:
docs:
# Documentation
- "examples" # Exclude code samples from scan results
library:
# Library code
- ""
generated:
# Generated code
- ""
Loading