Tooark 4.7.0
dotnet add package Tooark --version 4.7.0
NuGet\Install-Package Tooark -Version 4.7.0
<PackageReference Include="Tooark" Version="4.7.0" />
<PackageVersion Include="Tooark" Version="4.7.0" />
<PackageReference Include="Tooark" />
paket add Tooark --version 4.7.0
#r "nuget: Tooark, 4.7.0"
#:package Tooark@4.7.0
#addin nuget:?package=Tooark&version=4.7.0
#tool nuget:?package=Tooark&version=4.7.0
Tooark
Library with every Tooark resource and feature aimed at .NET projects.
π Languages: πΊπΈ English (this file) Β· π§π· PortuguΓͺs
π Contents
π§ Installation
dotnet add package Tooark
The aggregator brings every Tooark package at once. Install the packages individually when you only want some of them β the surface is the same.
The exception is the storage and secrets providers (Tooark.Storage.Aws, Tooark.Storage.Gcp,
Tooark.Secrets.Aws, Tooark.Secrets.Gcp and Tooark.Secrets.Vault): the aggregator brings only the
Tooark.Storage and Tooark.Secrets abstractions, and the application installs the provider it uses.
βοΈ Configuration
The translations ship with the assembly, so there is nothing to configure for them to work.
Add the following line to your Program.cs:
// Importing the required namespaces
using Tooark.Injections;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
var services = new ServiceCollection();
IConfiguration configuration = new ConfigurationBuilder()
.Build();
// In your service configuration
services.AddTooarkService(configuration);
That single call registers Tooark.Dtos, Tooark.Extensions, Tooark.ValueObjects, Tooark.Mediator
and Tooark.Sanitizers, and adds Tooark.Securities and Tooark.Observability when the corresponding
configuration sections exist.
Where the mediator handlers are looked up
Without an argument, in the assembly that called AddTooarkService. In a single-project application
that is what you want, and there is nothing to do.
In a layered application the handlers usually live in another project. Pass the assemblies:
services.AddTooarkService(configuration, typeof(MyHandler).Assembly);
Calling AddTooarkMediator afterwards also works, to add assemblies or configure the options β the
handler registration does not duplicate:
using Tooark.Mediator.Injections;
services.AddTooarkService(configuration);
services.AddTooarkMediator(typeof(MyHandler).Assembly);
Careful when calling
AddTooarkServicefrom inside a library of yours. The assembly looked up is the caller's, so it would be your library's, not the application's. Pass the right assembly along.
Unit of work
Stays out of AddTooarkService, because it depends on the type of your Entity Framework context:
using Tooark.Mediator.EntityFrameworkCore.Injections;
services.AddTooarkMediatorUnitOfWork<MyDbContext>();
OpenID Connect SSO
Also stays out of AddTooarkService: the same provider can back an interactive login (OpenIdConnect
handler) or an API (JwtBearer handler), and that choice is yours. Register it explicitly:
using Tooark.Securities.OpenId.Injections;
services.AddTooarkEntraSso(configuration); // reads OpenId:Entra
services.AddTooarkGoogleSso(configuration); // reads OpenId:Google
Storage
Also stays out of AddTooarkService, and the provider does not come with the aggregator: install the package
of the cloud you use and register it:
using Tooark.Storage.Aws.Injections;
services.AddTooarkStorageAws(configuration); // reads Storage
Secrets
The store is a configuration source, added before the configuration reaches AddTooarkService, and the
provider does not come with the aggregator:
using Tooark.Secrets.Aws.Injections;
IConfiguration configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddTooarkSecretsAws() // reads Secrets from appsettings.json
.Build();
services.AddTooarkService(configuration);
β¨ Available features
Tooark.Attributes
Description: This package provides custom attributes for use in .NET projects.
Tooark.AspNetCore
Description: This package gathers the features that depend on ASP.NET Core, such as reading ModelState errors.
Tooark.Dtos
Description: This package contains data transfer objects (DTOs) that ease the communication between application layers.
Tooark.Entities
Description: This package defines the domain entities used by the application.
Tooark.Enums
Description: This package contains the enum definitions used across the application.
Tooark.Exceptions
Description: This package provides custom exceptions for use in .NET projects.
Tooark.Extensions
Description: This package provides extension methods for common .NET types and classes.
Tooark.Notifications
Description: This package offers features to manage notifications and messages in the application.
Tooark.Mediator.Abstractions
Description: This package provides the base contracts of the Mediator pattern for use in .NET projects.
Tooark.Mediator
Description: This package offers a concrete implementation of the Mediator pattern, easing the communication between application components.
Tooark.Mediator.EntityFrameworkCore
Description: This package moves Entity Framework Core persistence into the Mediator pipeline, keeping handlers free of SaveChanges.
Tooark.Observability
Description: This package provides tools for monitoring and observability of the application.
Tooark.Sanitizers
Description: This package sanitizes HTML with an allowlist, URLs with a scheme allowlist and the @tooark/wysiwyg editor content, with the same rules the component applies in the browser.
Tooark.Secrets
Description: This package loads secrets and parameters from vaults (AWS, Google Cloud, Vault and OpenBao) into the configuration and reads secrets at runtime. The providers, Tooark.Secrets.Aws, Tooark.Secrets.Gcp and Tooark.Secrets.Vault, are installed separately.
Tooark.Securities
Description: This package offers security features, including cryptography and authentication.
Tooark.Securities.OpenId
Description: This package configures the native ASP.NET Core OpenID Connect handlers, with SSO presets for Microsoft Entra ID and Google.
Tooark.Storage
Description: This package defines the cloud object storage contract (upload, download, delete, metadata and signed URLs). The providers, Tooark.Storage.Aws and Tooark.Storage.Gcp, are installed separately.
Tooark.Utils
Description: This package contains utilities and helper functions for assorted operations.
Tooark.Validations
Description: This package provides validation features for data and entities.
Tooark.ValueObjects
Description: This package defines the value objects used by the application.
π€ Contributing
Contributions are welcome! Start with CONTRIBUTING.md β it covers the development workflow, the coding and commit conventions and the pull request checklist. Bugs and feature requests go through the issue templates of the Tooark repository.
By participating you agree to the Code of Conduct.
π Help & Security
- β Questions, bugs, feature ideas β see SUPPORT.md for the right channel
- π Security vulnerabilities β do not open a public issue; follow SECURITY.md
π Support
If Tooark helps your projects, consider supporting its development:
- π GitHub Sponsors
- β Ko-fi
Every contribution helps keep the project maintained and improving. Thank you! π
π License
This project is licensed under the BSD 3-Clause License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. 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 is compatible. 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. |
-
net10.0
- HtmlSanitizer (>= 9.2.1039)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 10.0.12)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 10.0.12)
- Microsoft.AspNetCore.DataProtection (>= 10.0.12)
- Microsoft.AspNetCore.Http (>= 2.3.13)
- Microsoft.EntityFrameworkCore (>= 10.0.12)
- Microsoft.Extensions.Caching.Memory (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection (>= 10.0.12)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.12)
- Microsoft.Extensions.FileProviders.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Localization (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- OpenTelemetry (>= 1.19.1)
- OpenTelemetry.Exporter.Console (>= 1.19.1)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.19.1)
- OpenTelemetry.Extensions.Hosting (>= 1.19.1)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.19.0)
- OpenTelemetry.Instrumentation.Http (>= 1.19.0)
- OpenTelemetry.Instrumentation.Process (>= 1.19.0-rc.1)
- OpenTelemetry.Instrumentation.Runtime (>= 1.19.0)
- System.Security.Cryptography.Xml (>= 10.0.12)
- Tooark.AspNetCore (>= 4.7.0)
- Tooark.Attributes (>= 4.7.0)
- Tooark.Dtos (>= 4.7.0)
- Tooark.Entities (>= 4.7.0)
- Tooark.Enums (>= 4.7.0)
- Tooark.Exceptions (>= 4.7.0)
- Tooark.Extensions (>= 4.7.0)
- Tooark.Mediator (>= 4.7.0)
- Tooark.Mediator.Abstractions (>= 4.7.0)
- Tooark.Mediator.EntityFrameworkCore (>= 4.7.0)
- Tooark.Notifications (>= 4.7.0)
- Tooark.Observability (>= 4.7.0)
- Tooark.Sanitizers (>= 4.7.0)
- Tooark.Secrets (>= 4.7.0)
- Tooark.Securities (>= 4.7.0)
- Tooark.Securities.OpenId (>= 4.7.0)
- Tooark.Storage (>= 4.7.0)
- Tooark.Utils (>= 4.7.0)
- Tooark.Validations (>= 4.7.0)
- Tooark.ValueObjects (>= 4.7.0)
-
net8.0
- HtmlSanitizer (>= 9.2.1039)
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.31)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 8.0.31)
- Microsoft.AspNetCore.DataProtection (>= 8.0.31)
- Microsoft.AspNetCore.Http (>= 2.3.13)
- Microsoft.EntityFrameworkCore (>= 8.0.31)
- Microsoft.Extensions.Caching.Memory (>= 8.0.1)
- Microsoft.Extensions.DependencyInjection (>= 8.0.1)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.FileProviders.Abstractions (>= 8.0.0)
- Microsoft.Extensions.Localization (>= 8.0.31)
- Microsoft.Extensions.Options (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- OpenTelemetry (>= 1.19.1)
- OpenTelemetry.Exporter.Console (>= 1.19.1)
- OpenTelemetry.Exporter.OpenTelemetryProtocol (>= 1.19.1)
- OpenTelemetry.Extensions.Hosting (>= 1.19.1)
- OpenTelemetry.Instrumentation.AspNetCore (>= 1.19.0)
- OpenTelemetry.Instrumentation.Http (>= 1.19.0)
- OpenTelemetry.Instrumentation.Process (>= 1.19.0-rc.1)
- OpenTelemetry.Instrumentation.Runtime (>= 1.19.0)
- System.Security.Cryptography.Xml (>= 8.0.4)
- Tooark.AspNetCore (>= 4.7.0)
- Tooark.Attributes (>= 4.7.0)
- Tooark.Dtos (>= 4.7.0)
- Tooark.Entities (>= 4.7.0)
- Tooark.Enums (>= 4.7.0)
- Tooark.Exceptions (>= 4.7.0)
- Tooark.Extensions (>= 4.7.0)
- Tooark.Mediator (>= 4.7.0)
- Tooark.Mediator.Abstractions (>= 4.7.0)
- Tooark.Mediator.EntityFrameworkCore (>= 4.7.0)
- Tooark.Notifications (>= 4.7.0)
- Tooark.Observability (>= 4.7.0)
- Tooark.Sanitizers (>= 4.7.0)
- Tooark.Secrets (>= 4.7.0)
- Tooark.Securities (>= 4.7.0)
- Tooark.Securities.OpenId (>= 4.7.0)
- Tooark.Storage (>= 4.7.0)
- Tooark.Utils (>= 4.7.0)
- Tooark.Validations (>= 4.7.0)
- Tooark.ValueObjects (>= 4.7.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 4.7.0 | 80 | 9/30/2026 |
| 4.6.0 | 102 | 9/29/2026 |
| 4.5.0 | 72 | 9/29/2026 |
| 4.4.0 | 78 | 9/28/2026 |
| 4.3.0 | 84 | 9/26/2026 |
| 4.2.1 | 80 | 9/25/2026 |
| 4.2.0 | 89 | 9/20/2026 |
| 4.1.0 | 81 | 9/18/2026 |
| 4.0.1 | 113 | 8/25/2026 |
| 4.0.0 | 98 | 8/25/2026 |
| 3.3.6 | 76 | 9/18/2026 |
| 3.3.5 | 81 | 8/25/2026 |
| 3.3.4 | 90 | 8/12/2026 |
| 3.3.3 | 94 | 7/27/2026 |
| 3.3.2 | 213 | 6/11/2026 |
| 3.3.1 | 136 | 6/6/2026 |
| 3.3.0 | 134 | 4/17/2026 |
| 2.3.5 | 80 | 9/18/2026 |
| 2.3.4 | 93 | 8/25/2026 |
| 2.3.3 | 78 | 7/27/2026 |