Ajout de fonctionnalités

En plus du noyau d’APIs et des frontends, les projets rĂ©els nĂ©cessitent souvent des fonctionnalitĂ©s supplĂ©mentaires pour assurer la sĂ©curitĂ©, le contrĂŽle d’accĂšs et l’exĂ©cution de processus en arriĂšre-plan.


Lino facilite l’ajout de ces capacitĂ©s de maniĂšre standardisĂ©e, les reflĂ©tant Ă  la fois dans le backend (endpoints) et le frontend (applications Blazor).

Sécurité et Authentification

L'authentification est la base de tout systÚme sécurisé. Lino prend en charge l'authentification basée sur JWT (JSON Web Tokens), en utilisant le schéma Bearer dans les API.

Flux d'authentification typique :

1. L'utilisateur se connecte (via un endpoint ou une page dédiée).
2. Un JWT est émis avec des claims représentant l'identité, les rÎles et les permissions.
3. Chaque requĂȘte Ă  l'API inclut le token dans l'en-tĂȘte : Authorization: Bearer <token>
4. Le middleware d'authentification valide le token en vérifiant la signature et l'expiration.

Autorisation basée sur les policies

Lino utilise les policies pour mettre en Ɠuvre une autorisation granulaire :

  • Chaque action peut nĂ©cessiter une policy spĂ©cifique (ex. : People.Read, People.Create).
  • Les policies sont configurĂ©es via AddAuthorization.
  • Les endpoints peuvent ĂȘtre protĂ©gĂ©s en dĂ©clarant : .RequireAuthorization

Ajouter la sécurité aux projets Lino

Pour ajouter la sécurité à un projet, exécutez :

lino features auth add

L'assistant interactif CLI demandera les configurations suivantes :

  • Service – service dans lequel les ressources de sĂ©curitĂ© seront configurĂ©es.
  • Module – module spĂ©cifique oĂč la sĂ©curitĂ© sera installĂ©e (applicable uniquement aux services modulaires).
  • DurĂ©e de vie du Access Token – durĂ©e de validitĂ© du token d'accĂšs.
  • DurĂ©e de vie du Refresh Token – durĂ©e de validitĂ© du token de rafraĂźchissement.
  • Type d'identifiant utilisateur – dĂ©finit le type de donnĂ©es utilisĂ© comme UserId (int, long ou Guid).

Ces paramĂštres garantissent que le pipeline d'authentification/autorisation est configurĂ© automatiquement, prĂȘt Ă  ĂȘtre utilisĂ© dans les API et intĂ©grĂ© Ă  Blazor.

Travaux en arriĂšre-plan

De nombreux systĂšmes nĂ©cessitent l’exĂ©cution de processus asynchrones en arriĂšre-plan, tels que :

  • Envoi d’e-mails
  • GĂ©nĂ©ration de rapports
  • Synchronisation avec des systĂšmes externes.

Lino prend en charge nativement Hangfire comme orchestrateur de jobs.

Avantages de Hangfire

  • ExĂ©cution fiable des jobs asynchrones.
  • Tableau de bord de surveillance intĂ©grĂ©.
  • Support des jobs rĂ©currents ou planifiĂ©s.
  • Persistance fiable des jobs dans la base de donnĂ©es.

IntĂ©gration d’évĂ©nements avec Outbox Message

Pour garantir la cohérence des intégrations asynchrones, Lino adopte le modÚle Outbox Message.

Lors de l’exĂ©cution d’une action mĂ©tier (ex. : crĂ©ation d’une commande), l’évĂ©nement correspondant (OrderCreated) est enregistrĂ© dans la table Outbox, dans la mĂȘme transaction qui persiste l’état du domaine. Un processeur en arriĂšre-plan lit la table Outbox et publie les Ă©vĂ©nements dans les systĂšmes de messagerie (RabbitMQ, Kafka, etc.).

Avantages de l’Outbox :

  • AtomicitĂ© → la base de donnĂ©es et les Ă©vĂ©nements publiĂ©s restent synchronisĂ©s.
  • FiabilitĂ© → aucun Ă©vĂ©nement n’est perdu, mĂȘme en cas de dĂ©faillance.
  • ScalabilitĂ© → plusieurs consommateurs peuvent traiter les Ă©vĂ©nements.

Ce modÚle garantit des intégrations sûres et résilientes dans les architectures distribuées.

GrĂące Ă  ces fonctionnalitĂ©s supplĂ©mentaires, Lino offre une sĂ©curitĂ© robuste, un contrĂŽle d’accĂšs granulaire et un traitement asynchrone fiable, rĂ©pondant aux exigences critiques des applications modernes en production.

Ajouter des fonctionnalités de Background Job aux projets Lino

Le traitement asynchrone est essentiel pour les tĂąches qui ne doivent pas bloquer le flux principal des requĂȘtes, telles que l’envoi de notifications, la gĂ©nĂ©ration de rapports ou la publication d’évĂ©nements.

Lino permet d’activer le support des Background Jobs (via des bibliothùques) avec une seule commande :

lino features background-job add

Le CLI demandera les paramĂštres de configuration suivants :

  • Service – service dans lequel la fonctionnalitĂ© de Background Job sera ajoutĂ©e.
  • BibliothĂšque – bibliothĂšque choisie pour l’exĂ©cution et la planification des jobs.
  • Intervalle de vĂ©rification et de traitement - intervalle auquel la file d’attente est vĂ©rifiĂ©e pour rechercher de nouveaux messages Outbox.
  • Nombre d’enregistrements - nombre maximal d’enregistrements traitĂ©s par cycle, contrĂŽlant le parallĂ©lisme et la consommation des ressources.

Ces options permettent de configurer le systĂšme de maniĂšre Ă©volutive et rĂ©siliente, garantissant l’exĂ©cution fiable des tĂąches en arriĂšre-plan.

Une erreur non gérée est survenue. Rafraîchir 🗙