Skip to content

Conversation

@aquamoth
Copy link
Owner

This pull request introduces several new features, usability improvements, and resilience enhancements to the Azure App Configuration CLI, along with clarifications to licensing and documentation. The CLI now supports advanced keyboard-driven workflows, improved paging and filtering, robust service interaction, and is formally licensed under Apache 2.0 for open source use. The backend interface is also extended to support efficient key listing.

Major CLI Feature Additions and Usability Improvements

  • Added new keyboard-driven features: numeric edit shortcut (<n>), grep/filter with /, improved label filtering, header and pagination controls, responsive layout, and prefix intellisense with autocomplete and cancellation.
  • Introduced JSON and YAML editor commands (j|json, y|yaml) for bulk editing visible items, with key separator options.
  • Enhanced command loop: CommandParser now drives the main loop, supporting numeric edit, paging, and special-case / filtering.

Service Interaction & Resilience

  • Implemented conservative retry/backoff, paged enumeration with per-page timeouts, and lightweight HTTP request statistics for Azure client interactions, improving reliability under throttling and providing feedback on exit.

API and Backend Changes

  • Extended IConfigRepository with a new FetchKeysAsync method for efficient key listing, implemented in both InMemoryConfigRepository and AzureAppConfigRepository with timeout handling for Azure throttling scenarios. [1] [2] [3]

Documentation, License, and Build/Test Updates

  • Added a formal LICENSE.md file specifying the Apache 2.0 License, and updated README.md to clarify open source licensing and safe corporate adoption. [1] [2]
  • Updated documentation for new commands, improved usage examples, and clarified build/test instructions for both quick start and repo pointers. [1] [2] [3]

These changes collectively improve the CLI's usability, reliability, and legal clarity, while laying groundwork for further enhancements.

@aquamoth aquamoth merged commit 11edeaa into main Sep 21, 2025
4 checks passed
@github-actions
Copy link

Summary

Generated on: 09/21/2025 - 23:50:16
Coverage date: 09/16/2025 - 20:36:43 - 09/21/2025 - 23:50:14
Parser: MultiReport (17x Cobertura)
Assemblies: 2
Classes: 27
Files: 49
Line coverage: 30.1% (1030 of 3414)
Covered lines: 1030
Uncovered lines: 2384
Coverable lines: 3414
Total lines: 6200
Branch coverage: 22.2% (505 of 2272)
Covered branches: 505
Total branches: 2272
Method coverage: Feature is only available for sponsors
Tag: 12_17900574662
Name Covered Uncovered Coverable Total Line coverage Covered Total Branch coverage
AppConfigCli 451 2182 2633 6416 17.1% 142 1732 8.1%
AppConfigCli.AzureAppConfigRepository 0 34 34 72 0% 0 12 0%
AppConfigCli.BulkEditHelper 54 20 74 128 72.9% 30 60 50%
AppConfigCli.Command 195 841 1036 1808 18.8% 21 532 3.9%
AppConfigCli.CommandParser 18 16 34 70 52.9% 10 22 45.4%
AppConfigCli.CommandResult 0 1 1 58 0% 0 0
AppConfigCli.ConsoleTheme 31 12 43 80 72% 12 36 33.3%
AppConfigCli.DefaultExternalEditor 0 20 20 62 0% 0 10 0%
AppConfigCli.DefaultFileSystem 0 6 6 62 0% 0 2 0%
AppConfigCli.EditorApp 57 817 874 2188 6.5% 29 708 4%
AppConfigCli.EditorMappers 20 0 20 35 100% 0 0
AppConfigCli.HistoryNavigator 0 37 37 74 0% 0 14 0%
AppConfigCli.Item 7 1 8 16 87.5% 0 0
AppConfigCli.Program 0 324 324 1512 0% 0 236 0%
AppConfigCli.RangeMapper 5 0 5 23 100% 2 2 100%
AppConfigCli.StructuredEditHelper 32 28 60 132 53.3% 18 48 37.5%
AppConfigCli.VersionInfo 32 25 57 96 56.1% 20 50 40%
AppConfigCli.Core 579 202 781 1449 74.1% 363 540 67.2%
AppConfigCli.Core.AppStateReconciler 69 23 92 170 75% 44 92 47.8%
AppConfigCli.Core.ChangeApplier 43 0 43 107 100% 18 20 90%
AppConfigCli.Core.Command 0 17 17 23 0% 0 0
AppConfigCli.Core.ConfigEntry 6 0 6 40 100% 0 0
AppConfigCli.Core.FlatKeyMapper 252 150 402 590 62.6% 134 252 53.1%
AppConfigCli.Core.InMemoryConfigRepository 61 3 64 141 95.3% 31 32 96.8%
AppConfigCli.Core.Item 12 0 12 33 100% 0 0
AppConfigCli.Core.ItemFilter 99 0 99 186 100% 107 112 95.5%
AppConfigCli.Core.LabelFilter 10 0 10 57 100% 12 12 100%
AppConfigCli.Core.UI.TableLayout 21 9 30 76 70% 9 12 75%
AppConfigCli.Core.UI.TextTruncation 6 0 6 26 100% 8 8 100%

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