Fig.Client.Testing
3.1.1
dotnet add package Fig.Client.Testing --version 3.1.1
NuGet\Install-Package Fig.Client.Testing -Version 3.1.1
<PackageReference Include="Fig.Client.Testing" Version="3.1.1" />
<PackageVersion Include="Fig.Client.Testing" Version="3.1.1" />
<PackageReference Include="Fig.Client.Testing" />
paket add Fig.Client.Testing --version 3.1.1
#r "nuget: Fig.Client.Testing, 3.1.1"
#:package Fig.Client.Testing@3.1.1
#addin nuget:?package=Fig.Client.Testing&version=3.1.1
#tool nuget:?package=Fig.Client.Testing&version=3.1.1
<div id="top"></div>
<br /> <div align="center"> <a href="https://github.com/mzbrau/fig"> <img src="resources/image/fig_logo_name_below_orange_500x820.png" alt="Logo" width="125" height="205"> </a>
<p align="center"> Centralized settings management for dotnet microservices. <br /> <a href="http://www.figsettings.com/"><strong>Explore the docs »</strong></a> <br /> <br /> </p>
</div>
<details> <summary>Table of Contents</summary> <ol> <li><a href="#what-is-fig">What is Fig?</a></li> <li><a href="#built-with">Built With</a></li> <li><a href="#features">Features</a></li> <li><a href="#getting-started">Getting Started</a></li> <li><a href="#roadmap">Roadmap</a></li> <li><a href="#contributing">Contributing</a></li> <li><a href="#license">License</a></li> <li><a href="#contact">Contact</a></li> <li><a href="#acknowledgments">Acknowledgments</a></li> </ol> </details>
What is Fig?
Fig is a complete solution for managing settings across multiple micro-services. It consists of three components: a client library, API and web front end.
To add your application to Fig, add the Fig.Client nuget package to your application and register it as a configuration provider (see documentation for details). You also need an environment variable to tell your app the API address. The Fig API and Blazor Web Application can run in containers locally or in the cloud. Fig is able to manage any number of applications including full configuration support, online status and much more.
Built With
<p align="right">(<a href="#top">back to top</a>)</p>
Features
- Free and Open Source
- Modern, built on latest dotnet technology
- Complete settings management
- Offline settings support
- Centrally manage settings
- Setting history and audit logging
- Import & Export of settings and values
- Live reload of settings
- Remote restart of settings clients
- Configuration Provider (support for IOptions<T>)
- Secure - authentication required for settings management
- Automatic settings registration
- Features to improve setting management
- Setting descriptions driven from markdown documentation (including images)
- Default values driven by application
- Different editors depending on setting type
- Complex value validation
- Secret setting support
- Settings grouping
- Setting verification support using extensible framework
- Hide settings with reasonable defaults
- Lookup tables for improved setting translation
- Instance support to vary settings for individual clients
- Stateless backend for scalability
<p align="right">(<a href="#top">back to top</a>)</p>
Getting Started
Read the quickstart guide here
Examples can be found here.
Fig NuGet Packages
Fig provides several NuGet packages to support different integration scenarios and environments:
Core Packages
Fig.Client
The main client library for integrating Fig into your applications. This is the primary package you'll need for most scenarios.
- Description: Client library to include in your project when using Fig managed settings
- Target Framework: .NET Standard 2.0
- Usage: Configuration management, settings integration
- Documentation: Client Configuration
Fig.Client.Abstractions
Lightweight abstractions and attributes for Fig configuration settings that can be referenced by third-party libraries without requiring the full Fig.Client package.
- Description: Abstractions and attributes for Fig configuration settings
- Target Framework: .NET Standard 2.0
- Usage: Third-party library integration, minimal dependencies
- Documentation: See active pull request for integration scenarios
Secret Provider Packages
Fig supports secure secret management through specialized provider packages:
Fig.Client.SecretProvider.Azure
Azure Key Vault integration for secure secret management.
- Description: Fig secret provider for Azure Key Vault
- Documentation: Azure KeyVault Integration
Fig.Client.SecretProvider.Aws
AWS Secrets Manager integration for secure secret management.
- Description: Fig secret provider for AWS Secrets Manager
Fig.Client.SecretProvider.Google
Google Cloud Secret Manager integration for secure secret management.
- Description: Fig secret provider for Google Cloud Secret Manager
Fig.Client.SecretProvider.Docker
Docker secrets integration for containerized environments.
- Description: Fig secret provider for Docker secrets
Fig.Client.SecretProvider.Dpapi
Windows Data Protection API (DPAPI) integration for Windows environments.
- Description: Fig secret provider for DPAPI
- Platform: Windows only
Testing and Development Packages
Fig.Client.Testing
Testing framework for Fig clients that allows developers to unit and integration test settings-related functionality.
- Description: A testing framework for Fig clients for unit and integration testing
- Usage: Unit testing, integration testing, development workflows
Fig.Client.Contracts
Internal contracts and interfaces used by Fig client components.
- Description: Fig client contracts
- Usage: Internal package, typically not directly referenced
<p align="right">(<a href="#top">back to top</a>)</p>
Roadmap
Fig is getting close to being feature complete but is accepting suggestions for new features and improvements.
Included in the roadmap are:
- End to end integration tests with Playwright
- Oauth 2.0 Support
- Minor fixes and improvements
See the open issues to suggest something else.
<p align="right">(<a href="#top">back to top</a>)</p>
Contributing
If you have any suggestions, please open an issue with the tag 'enhancement'. Don't forget to star the page if the project is useful to you.
If you are interested in contributing to the development, please raise a pull request.
<p align="right">(<a href="#top">back to top</a>)</p>
Fig Web Application
License
Distributed under the Apache 2.0 License. See LICENSE.txt for more information.
<p align="right">(<a href="#top">back to top</a>)</p>
Contact
Project Link: https://github.com/mzbrau/fig
<p align="right">(<a href="#top">back to top</a>)</p>
Acknowledgments
Fig stands on the shoulders of giants. Many thanks to all the open source software that makes it possible.
- JetBrains - Provided Rider licence as part of their support for open source projects - A big thank you to them for making this project possible.
- Jason Watmore's blog - user management and auth tokens
- Danien Bod's GitHub - Encryption examples
- Radzen Blazor Components A fantastic set of UI components for Blazor.
- Nate McMasters's plugin framework
- Jint - Javascript interpretor for dotnet
- Markdig - Markdown documentation support
- Benchmark.NET
- MinVer
- Moq
- Polly
- Blazor Hot Keys
<p align="right">(<a href="#top">back to top</a>)</p>
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Jint (>= 4.4.2)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.