Dependances
Toutes les versions sont gerees centralement dans Directory.Packages.props.
| Package | Version | Description |
|---|
| StyleCop.Analyzers | 1.1.118 | Regles de style de code C# |
| Meziantou.Analyzer | 2.0.299 | Analyseur de bonnes pratiques .NET |
| Roslynator.Analyzers | 4.15.0 | Analyseur et refactoring Roslyn |
| Roslynator.CodeAnalysis.Analyzers | 4.15.0 | Analyseur de code Roslynator |
| Roslynator.Formatting.Analyzers | 4.15.0 | Analyseur de formatage Roslynator |
| Microsoft.VisualStudio.Threading.Analyzers | 17.14.15 | Analyseur de threading async |
| CSharpGuidelinesAnalyzer | 3.8.5 | Regles de guidelines C# |
| AsyncAwaitBestPractices | 10.0.0 | Bonnes pratiques async/await |
| Microsoft.SourceLink.GitHub | 8.0.0 | Lien source vers GitHub |
| Package | Version | Description |
|---|
| MediatR | 14.0.0 | Mediateur pour CQRS (IRequest/IRequestHandler) |
| MediatR.Contracts | 2.0.1 | Contrats MediatR |
| FluentValidation | 12.1.1 | Validation declarative |
| FluentValidation.AspNetCore | 11.3.1 | Integration ASP.NET Core |
| Mapster | 7.4.0 | Mapping d'objets (alternative a AutoMapper) |
| Mapster.DependencyInjection | 1.0.1 | Integration DI pour Mapster |
| IdGen | 3.0.7 | Generation d'identifiants distribues |
| Ardalis.GuardClauses | 5.0.0 | Guard clauses pour la validation |
| Humanizer.Core | 3.0.1 | Manipulation de chaines (pluralisation, etc.) |
| Polly | 8.6.5 | Resilience et retry policies |
| Scrutor | 7.0.0 | Scan d'assemblies pour DI |
| Sieve | 2.5.5 | Tri, filtrage et pagination dynamiques |
| Newtonsoft.Json | 13.0.4 | Serialisation JSON (usage legacy) |
| System.Linq.Async | 7.0.0 | Extensions LINQ asynchrones |
| Figgle / Figgle.Fonts | 0.6.5 | Art ASCII pour le banner de demarrage |
| UAParser | 3.1.47 | Parsing des User-Agents |
| NSubstitute | 5.3.0 | Framework de mocking pour les tests |
| Package | Version | Description |
|---|
| Microsoft.AspNetCore.Authentication.JwtBearer | 10.0.3 | Authentification JWT Bearer |
| Microsoft.AspNetCore.OpenApi | 10.0.3 | Support OpenAPI natif |
| Scalar.AspNetCore | 2.12.38 | Documentation API interactive (alternative a Swagger UI) |
| Swashbuckle.AspNetCore | 10.1.2 | Generation Swagger/OpenAPI |
| Asp.Versioning.Http | 8.1.1 | Versioning d'API |
| Asp.Versioning.Mvc | 8.1.1 | Versioning MVC |
| Yarp.ReverseProxy | 2.3.0 | Reverse proxy (reserve pour usage futur) |
| Package | Version | Description |
|---|
| Microsoft.EntityFrameworkCore | 10.0.3 | ORM principal |
| Npgsql.EntityFrameworkCore.PostgreSQL | 10.0.0 | Provider PostgreSQL |
| Npgsql | 10.0.1 | Driver ADO.NET PostgreSQL |
| EFCore.NamingConventions | 10.0.1 | Conventions de nommage (snake_case) |
| Microsoft.EntityFrameworkCore.Design | 10.0.3 | Outils de migration |
| Microsoft.EntityFrameworkCore.Relational | 10.0.3 | Abstractions relationnelles |
| Package | Version | Description |
|---|
| Microsoft.AspNetCore.Identity.EntityFrameworkCore | 10.0.3 | ASP.NET Identity avec EF Core |
| Google.Apis.Auth | 1.73.0 | Validation des tokens Google |
| Package | Version | Description |
|---|
| Hangfire.AspNetCore | 1.8.23 | Integration Hangfire avec ASP.NET Core |
| Hangfire.PostgreSql | 1.21.0 | Storage Hangfire sur PostgreSQL |
| Package | Version | Description |
|---|
| EasyCaching.Core | 1.9.2 | Abstraction de cache |
| EasyCaching.InMemory | 1.9.2 | Cache en memoire |
| Package | Version | Description |
|---|
| MailKit | 4.12.0 | Client SMTP pour l'envoi d'emails |
| Mjml.Net | 3.4.0 | Rendu de templates MJML en HTML responsive |
| AWSSDK.SimpleNotificationService | 4.0.2.14 | Client AWS SNS pour les SMS |
| Package | Version | Description |
|---|
| OpenTelemetry.Exporter.OpenTelemetryProtocol | 1.15.0 | Export OTLP |
| OpenTelemetry.Extensions.Hosting | 1.15.0 | Integration hosting |
| OpenTelemetry.Instrumentation.AspNetCore | 1.15.0 | Instrumentation ASP.NET Core |
| OpenTelemetry.Instrumentation.Http | 1.15.0 | Instrumentation HTTP |
| OpenTelemetry.Instrumentation.Runtime | 1.15.0 | Metriques runtime .NET |
| OpenTelemetry.Instrumentation.Process | 1.15.0-beta.1 | Metriques processus |
| OpenTelemetry.Exporter.Prometheus.AspNetCore | 1.15.0-beta.1 | Export Prometheus |
| Grafana.OpenTelemetry | 1.5.2 | Integration Grafana |
| Npgsql.OpenTelemetry | 10.0.1 | Instrumentation PostgreSQL |
| Package | Version | Description |
|---|
| Microsoft.Extensions.Diagnostics.HealthChecks | 10.0.3 | Framework de health checks |
| AspNetCore.HealthChecks.NpgSql | 9.0.0 | Health check PostgreSQL |
| AspNetCore.HealthChecks.UI | 9.0.0 | Interface UI pour les health checks |
| AspNetCore.HealthChecks.UI.InMemory.Storage | 9.0.0 | Storage en memoire pour l'UI |
| Package | Version | Description |
|---|
| Aspire.Hosting.AppHost | 13.1.1 | Orchestration Aspire |
| Aspire.Hosting.PostgreSQL | 13.1.1 | Hosting PostgreSQL |
| Aspire.Hosting.Redis | 13.1.1 | Hosting Redis (reserve) |
| Aspire.Hosting.Docker | 13.1.1-preview | Hosting Docker |
| Package | Version | Description |
|---|
| xUnit | 2.9.3 | Framework de tests |
| xunit.runner.visualstudio | 3.1.5 | Runner Visual Studio |
| FluentAssertions | 8.8.0 | Assertions fluides |
| NSubstitute | 5.3.0 | Framework de mocking |
| Microsoft.NET.Test.Sdk | 18.0.1 | SDK de tests .NET |
| Microsoft.AspNetCore.Mvc.Testing | 10.0.3 | Tests d'integration ASP.NET Core |
| Microsoft.AspNetCore.TestHost | 10.0.3 | Host de test ASP.NET Core |
| Testcontainers | 4.9.0 | Conteneurs Docker pour les tests |
| Testcontainers.PostgreSql | 4.9.0 | Conteneur PostgreSQL |
| Respawn | 7.0.0 | Reset de base de donnees entre les tests |
| Bogus | 35.6.5 | Generation de donnees de test |
| AutoBogus | 2.13.1 | Generation automatique avec Bogus |
| WebMotions.Fake.Authentication.JwtBearer | 10.0.0 | Faux JWT pour les tests |
graph TB
API[Api] --> Identity[Identity]
API --> Audit[Audit]
API --> Messaging[Messaging]
API --> SD[ServiceDefaults]
Identity --> BB[BuildingBlocks]
Identity --> MC[Messaging.Contracts]
Identity --> IC[Identity.Contracts]
Audit --> BB
Audit --> IC
Messaging --> BB
Messaging --> MC[Messaging.Contracts]
BB --> |aucune dependance module| BB
| Module source | Depend de |
|---|
| Api | Identity, Audit, Messaging, ServiceDefaults, BuildingBlocks |
| Identity | BuildingBlocks, Identity.Contracts, Messaging.Contracts |
| Audit | BuildingBlocks, Identity.Contracts (pour les constantes de roles) |
| Messaging | BuildingBlocks, Messaging.Contracts |
| BuildingBlocks | Aucun module (packages NuGet uniquement) |
- Usage : base de donnees principale, 5 bases separees en production
- Bases :
place_monolith (identity), place_audit, place_hangfire, place_persist_message, messaging - Version : 17
- Configuration :
wal_level=logical, max_prepared_transactions=10
- Usage : envoi de SMS
- Region : configurable (
eu-north-1 par defaut) - Authentification : access key/secret key ou IAM role
- Usage : envoi d'emails
- Implementation : MailKit
- Dev : Mailpit (capture locale sur port 1025, UI sur port 8025)
- Production : serveur SMTP configurable
- Google : validation des ID tokens via
Google.Apis.Auth - Facebook : validation via l'API Graph (
graph.facebook.com/me) - Apple : validation des ID tokens via les cles publiques Apple
| Variable | Description |
|---|
DATABASE_CONNECTION_STRING | Connexion PostgreSQL principale (Identity) |
AUDIT_CONNECTION_STRING | Connexion PostgreSQL Audit |
HANGFIRE_CONNECTION_STRING | Connexion PostgreSQL Hangfire |
PERSIST_MESSAGE_CONNECTION_STRING | Connexion PostgreSQL messages persistants |
JWT_PRIVATE_KEY_BASE64 | Cle privee RSA en Base64 |
JWT_ISSUER | Emetteur JWT |
JWT_AUDIENCE | Audience JWT |
REFRESH_TOKEN_PEPPER | Pepper pour le hash des refresh tokens |
SOCIAL_AUTH_GOOGLE_CLIENT_ID | Client ID Google |
SOCIAL_AUTH_FACEBOOK_APP_ID | App ID Facebook |
SOCIAL_AUTH_FACEBOOK_APP_SECRET | App Secret Facebook |
SOCIAL_AUTH_APPLE_CLIENT_ID | Client ID Apple |
SOCIAL_AUTH_APPLE_KEY_ID | Key ID Apple |
SOCIAL_AUTH_APPLE_TEAM_ID | Team ID Apple |
SNS_REGION | Region AWS SNS |
SNS_ACCESS_KEY_ID | Access Key AWS |
SNS_SECRET_ACCESS_KEY | Secret Key AWS |
SMTP_HOST | Serveur SMTP |
SMTP_PORT | Port SMTP |
SMTP_USERNAME | Utilisateur SMTP |
SMTP_PASSWORD | Mot de passe SMTP |
SMTP_FROM_EMAIL | Email expediteur |
SMTP_FROM_NAME | Nom expediteur |
SMTP_USE_SSL | Activer TLS/SSL |
API_PORT | Port HTTP de l'API |
ADMIN_WEB_PORT | Port du dashboard admin |