DynuSharp 1.0.0
See the version list below for details.
dotnet add package DynuSharp --version 1.0.0
NuGet\Install-Package DynuSharp -Version 1.0.0
<PackageReference Include="DynuSharp" Version="1.0.0" />
paket add DynuSharp --version 1.0.0
#r "nuget: DynuSharp, 1.0.0"
// Install DynuSharp as a Cake Addin #addin nuget:?package=DynuSharp&version=1.0.0 // Install DynuSharp as a Cake Tool #tool nuget:?package=DynuSharp&version=1.0.0
DynuSharp
<img width="64" height="auto" src="icon.png">
Thanks to Dynu
A big thanks to Dynu for offering such a versatile platform that spans beyond DNS services to include email, domain registration, and more. Their provision of a free tier is a testament to their commitment to making powerful web solutions accessible to everyone. Check out Dynu's website for more information on their services.
Overview
DynuSharp is a .NET library designed to facilitate seamless integration with Dynu's API, enabling developers to manage DNS, email, domain services, and more with utmost efficiency and security. This library leverages .NET's robust features to provide an intuitive interface for Dynu services, ensuring sensitive credentials are handled securely.
Features
- Comprehensive API Coverage: Interact with Dynu's DNS, Email, and Domain services through a single, cohesive library.
- Secure Secret Management: Implements advanced techniques to securely store and manage runtime secrets, including secure memory storage, obfuscation, and TPM-based solutions.
- Flexible Authentication: Out-of-the-box support for API key and OAuth2, with the ability to extend or implement custom authentication mechanisms.
Authentication
DynuSharp offers built-in support for standard Dynu authentication methods (API key and OAuth2) and extends the capability to include custom authentication strategies through the 'IAuthentication' interface.<br/> <br/> For API credentials management, visit Dynu API Credentials.
Standard Authentication Methods
API Key Authentication
var apiKey = "your_api_key_here";
var client = new DynuClient(apiKey);
OAuth2 Authentication
var clientId = "your_client_id_here";
var secret = "your_client_secret_here";
var client = new DynuClient(clientId, secret);
Custom Authentication
DynuSharp's design embraces extensibility, allowing developers to implement their own authentication mechanisms by implementing the IAuthentication interface.
public class CustomAuthentication : IAuthentication
{
// Implementation of custom authentication logic
}
var customAuth = new CustomAuthentication();
var client = new DynuClient(customAuth);
Secure Secret Management
DynuSharp secures sensitive information such as API keys, client secrets, and client IDs using AES encryption as standard practice. Encrypted data is stored and utilized in-memory, leveraging TPM module technology when available for enhanced security. As a fallback, obfuscation techniques are employed to slightly increase security. No secrets are permanently stored, ensuring they remain accessible only for the duration of the client's lifespan. While these measures significantly enhance the protection of sensitive information, it's acknowledged that no system can guarantee 100% security.
Example
Here's a quick demonstration of DynuSharp in action:
using var client = new DynuClient("api_key");
var dnsDomains = await client.DNS.Domains.GetListAsync();
foreach (var domain in dnsDomains)
{
var records = await client.DNS.Records.GetListAsync(domain.Id);
foreach (var record in records)
{
Console.WriteLine(record);
}
}
This code snippet highlights how DynuSharp makes it straightforward to interact with Dynu's API, streamlining the process of managing DNS records with ease and efficiency.
Contributing
Contributions to 'DynuSharp' are welcome. Follow these steps to contribute:
- Fork the Project
- Create your Feature Branch (git checkout -b feature/YourFeature)
- Commit your Changes (git commit -m 'Add YourFeature')
- Push to the Branch (git push origin feature/YourFeature)
- Open a Pull Request
Licence
'DynuSharp' is licenced under the MIT licence.
Dependencies
'DynuSharp' utilizes the following packages, which need to be included as dependencies in your project:
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. 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 is compatible. 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 is compatible. 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. |
-
net6.0
- Microsoft.Extensions.Http.Polly (>= 8.0.1)
- Microsoft.TSS (>= 2.1.1)
-
net7.0
- Microsoft.Extensions.Http.Polly (>= 8.0.1)
- Microsoft.TSS (>= 2.1.1)
-
net8.0
- Microsoft.Extensions.Http.Polly (>= 8.0.1)
- Microsoft.TSS (>= 2.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.