Catalogue des événements¶
Ce catalogue recense les événements métier publiés sur le sujet logs, module par module. Tout module qui en ajoute un l'inscrit ici — voir Émettre un événement métier.
Par convention de plateforme, le niveau WARN marque les suppressions et les annulations, le niveau ERROR les échecs techniques subis, et le niveau SECURITY la purge de désinstallation, les exports et la vie des identités machine.
Stocks¶
Inventaires¶
| Type | Niveau | Sujet | Émis quand | Données |
|---|---|---|---|---|
stocks.inventory.created |
INFO |
inventory |
Un inventaire est créé | warehouse, type |
stocks.inventory.updated |
INFO |
inventory |
Un inventaire est modifié, y compris ses changements de statut et les actions de masse sur ses lignes | lines_deleted, lines_treated, lines_untreated |
stocks.inventory.validated |
INFO |
inventory |
Un inventaire est validé et ses écarts sont passés en stock | warehouse, lines |
stocks.inventory.finalized |
INFO |
inventory |
Un inventaire est clôturé | — |
stocks.inventory.adjusted |
INFO |
inventory |
Un inventaire est ajusté | — |
stocks.inventory.recalculated |
INFO |
inventory |
Les quantités théoriques d'un inventaire sont recalculées | — |
stocks.inventory.cancelled |
WARN |
inventory |
Un inventaire est annulé | — |
stocks.inventory.restored |
INFO |
inventory |
Un inventaire annulé est rétabli | — |
stocks.inventory.deleted |
WARN |
inventory |
Un inventaire est supprimé | — |
stocks.inventory.imported |
INFO |
inventory |
Les lignes d'un inventaire sont importées depuis un fichier | — |
Les lignes d'inventaire ne sont pas journalisées une à une
Modifier une ligne d'inventaire n'émet aucun événement : le journal agrège ces changements dans stocks.inventory.updated, qui porte le nombre de lignes supprimées, traitées ou remises en attente. Un inventaire de plusieurs milliers de lignes reste ainsi lisible.
Opérations et commandes¶
| Type | Niveau | Sujet | Émis quand | Données |
|---|---|---|---|---|
stocks.operation.created |
INFO |
operation |
Une opération de stock est créée | type |
stocks.operation.validated |
INFO |
operation |
Une opération est validée | type, lines |
stocks.operation.updated |
INFO |
operation |
Une opération est modifiée | type, contact, date |
stocks.operation.executed |
INFO |
operation |
Une opération passe du brouillon à l'exécution | type, lines |
stocks.operation.deleted |
WARN |
operation |
Une opération est supprimée | type |
stocks.order.received |
INFO |
order |
Une commande d'achat est réceptionnée | — |
stocks.order.delivered |
INFO |
order |
Une commande de vente est livrée | — |
stocks.order.reception_cancelled |
WARN |
order |
Une réception est annulée, y compris lorsque la plateforme annule la commande d'achat | — |
stocks.selling.cancelled |
WARN |
selling |
Une sortie de vente est annulée par la plateforme | — |
Une opération exécutée n'est journalisée qu'une fois
stocks.operation.executed est émis une seule fois par opération, quel que soit le point d'entrée : écran d'opération, réception de commande ou appel d'un autre module.
Référentiel¶
| Type | Niveau | Sujet | Émis quand | Données |
|---|---|---|---|---|
stocks.warehouse.created |
INFO |
warehouse |
Un magasin est créé | — |
stocks.warehouse.updated |
INFO |
warehouse |
Un magasin est modifié | — |
stocks.warehouse.deleted |
WARN |
warehouse |
Un magasin est supprimé | — |
stocks.location.created |
INFO |
location |
Un emplacement est créé | — |
stocks.location.updated |
INFO |
location |
Un emplacement est modifié | — |
stocks.location.deleted |
WARN |
location |
Un emplacement est supprimé | — |
stocks.location.activated |
INFO |
location |
Un emplacement est activé ou désactivé | active |
stocks.family.created |
INFO |
family |
Une famille d'articles est créée | — |
stocks.family.updated |
INFO |
family |
Une famille d'articles est modifiée | — |
stocks.family.deleted |
WARN |
family |
Une famille d'articles est supprimée | — |
stocks.subfamily.created |
INFO |
subfamily |
Une sous-famille est créée | — |
stocks.subfamily.updated |
INFO |
subfamily |
Une sous-famille est modifiée | — |
stocks.subfamily.deleted |
WARN |
subfamily |
Une sous-famille est supprimée | — |
stocks.operation_type.created |
INFO |
operation_type |
Un type d'opération est créé | — |
stocks.operation_type.updated |
INFO |
operation_type |
Un type d'opération est modifié | — |
stocks.operation_type.deleted |
WARN |
operation_type |
Un type d'opération est supprimé | — |
stocks.contact.created |
INFO |
contact |
Un contact est créé | kind (person ou society) |
stocks.contact.updated |
INFO |
contact |
Un contact est modifié | kind |
stocks.contact.deleted |
WARN |
contact |
Un contact est supprimé | kind |
stocks.batch.cost_recorded |
INFO |
batch |
Un coût de lot est enregistré | — |
stocks.article.converted |
INFO |
article |
Un article est converti dans une autre unité | — |
stocks.article.planned |
INFO |
article |
Un approvisionnement d'article est planifié | — |
stocks.settings.cost_method_configured |
INFO |
settings |
La méthode de valorisation des stocks est configurée | — |
Écritures de la plateforme¶
Ces événements naissent hors d'une requête d'utilisateur : ils portent l'acteur système, identifiant 00000000-0000-0000-0000-000000000000 et nom stocks. Le journal montre le fait, pas un utilisateur.
| Type | Niveau | Sujet | Émis quand | Données |
|---|---|---|---|---|
stocks.article.created |
INFO |
article |
Un article est créé par la plateforme | — |
stocks.article.updated |
INFO |
article |
Un article est modifié | — |
stocks.article.archived |
INFO |
article |
Un article est archivé | — |
stocks.family.synced |
INFO |
family |
Une famille d'articles est synchronisée depuis la plateforme | — |
stocks.family.deleted |
WARN |
family |
Une famille d'articles est supprimée par la plateforme | — |
stocks.subfamily.synced |
INFO |
subfamily |
Une sous-famille est synchronisée depuis la plateforme | — |
stocks.subfamily.deleted |
WARN |
subfamily |
Une sous-famille est supprimée par la plateforme | — |
stocks.stock.replenished |
INFO |
stock |
Un stock est réapprovisionné | quantity |
stocks.alerts.synced |
INFO |
alerts |
Les alertes de stock sont synchronisées | — |
stocks.module.uninstalled |
SECURITY |
module |
Le module est désinstallé et ses données sont purgées | — |
Facturation fiscale¶
Un document fiscal passe par deux mains : celle de l'utilisateur qui le transmet, celle de la plateforme qui recueille le verdict de la FNE. Les tables portent donc une colonne « Acteur ». système désigne l'acteur système du module, identifiant 00000000-0000-0000-0000-000000000000 et nom fiscal-invoicing ; agent désigne un agent de collecte, qui signe de son propre nom.
Factures et avoirs¶
| Type | Niveau | Acteur | Sujet | Émis quand | Données |
|---|---|---|---|---|---|
fiscal_invoicing.invoice.transmitted |
INFO |
utilisateur | invoice |
Une facture est transmise à la FNE | reference, source, import_id |
fiscal_invoicing.invoice.transmission_retried |
INFO |
utilisateur | invoice |
Une transmission en échec est rejouée | reference |
fiscal_invoicing.invoice.transmission_cancelled |
WARN |
utilisateur | invoice |
Une transmission en cours ou en échec est annulée | reference |
fiscal_invoicing.invoice.details_updated |
INFO |
utilisateur | invoice |
L'objet ou les conditions de paiement d'une facture sont modifiés | reference, fields |
fiscal_invoicing.invoice.duplicated |
INFO |
utilisateur | invoice |
Une facture est dupliquée dans un nouvel import | reference, original_id, original_reference, import_id |
fiscal_invoicing.invoice.certified |
INFO |
système | invoice |
La FNE certifie une facture et renvoie son sceau | reference, fne_reference, fiscal_stamp, link |
fiscal_invoicing.invoice.certification_rejected |
WARN |
système | invoice |
La FNE refuse une facture | reference, status_code, reason |
fiscal_invoicing.invoice.certification_failed |
ERROR |
système | invoice |
La certification échoue pour une raison technique | reference, status_code, reason |
fiscal_invoicing.invoice.certification_cancelled |
WARN |
système | invoice |
Une certification en cours est abandonnée | reference |
fiscal_invoicing.credit_note.created |
INFO |
utilisateur | credit_note |
Un avoir est créé à la main sur une facture certifiée | reference, initial_invoice_reference, import_id, source |
fiscal_invoicing.credit_note.transmitted |
INFO |
utilisateur | credit_note |
Un avoir est transmis à la FNE | reference, source, import_id |
fiscal_invoicing.credit_note.transmission_retried |
INFO |
utilisateur | credit_note |
Une transmission d'avoir en échec est rejouée | reference |
fiscal_invoicing.credit_note.transmission_cancelled |
WARN |
utilisateur | credit_note |
Une transmission d'avoir est annulée | reference |
fiscal_invoicing.credit_note.details_updated |
INFO |
utilisateur | credit_note |
La description d'un avoir est modifiée | reference, fields |
fiscal_invoicing.credit_note.certified |
INFO |
système | credit_note |
La FNE certifie un avoir | reference, fne_reference, link |
fiscal_invoicing.credit_note.certification_rejected |
WARN |
système | credit_note |
La FNE refuse un avoir | reference, status_code, reason |
fiscal_invoicing.credit_note.certification_failed |
ERROR |
système | credit_note |
La certification d'un avoir échoue pour une raison technique | reference, status_code, reason |
fiscal_invoicing.credit_note.certification_cancelled |
WARN |
système | credit_note |
La certification d'un avoir est abandonnée | reference |
fiscal_invoicing.transmitted_item.archived |
WARN |
utilisateur | invoice ou credit_note |
Un document transmis est archivé et ses sauvegardes externes sont retirées | reference, item_type, sftp, google_drive, documents |
La transmission et la certification sont deux moments distincts
fiscal_invoicing.invoice.transmitted dit qu'un utilisateur a envoyé le document ; fiscal_invoicing.invoice.certified dit ce que la FNE en a répondu, parfois plusieurs minutes plus tard. La donnée source sépare une facture saisie à la main (manual) d'une facture venue d'un import (import).
Imports et collectes¶
| Type | Niveau | Acteur | Sujet | Émis quand | Données |
|---|---|---|---|---|---|
fiscal_invoicing.file_import.created |
INFO |
utilisateur | file_import |
Un fichier de factures est importé | filename, model, invoices, credit_notes, failures |
fiscal_invoicing.file_import.reimported |
INFO |
utilisateur | file_import |
Un import est rejoué avec un nouveau fichier | filename, invoices, credit_notes, failures |
fiscal_invoicing.file_import.transmitted |
INFO |
utilisateur | file_import |
Les documents d'un import sont transmis à la FNE | invoices, credit_notes |
fiscal_invoicing.file_import.transmission_cancelled |
WARN |
utilisateur | file_import |
La transmission d'un import est annulée | items |
fiscal_invoicing.file_import.completed |
INFO |
utilisateur | file_import |
Un import est clôturé | invoices, credit_notes, failures |
fiscal_invoicing.file_import.reopened |
WARN |
utilisateur | file_import |
Un import clôturé est rouvert | invoices, credit_notes, failures |
fiscal_invoicing.file_import.cancelled |
WARN |
utilisateur | file_import |
Un import est annulé | invoices, credit_notes, failures |
fiscal_invoicing.file_import.collected |
INFO |
système | file_import |
Un fichier déposé sur un canal de collecte est repris par la plateforme | channel, filename, invoices, credit_notes, failures |
fiscal_invoicing.file_import.collection_failed |
ERROR |
système | file_import |
Un fichier collecté est refusé ou illisible | channel, filename, reason |
fiscal_invoicing.model.restituted |
INFO |
système | file_import |
Le verdict d'un import est restitué au déposant sur son canal de collecte | model_collect, filename, verdict |
La collecte n'a pas d'auteur
Un fichier déposé sur un SFTP ou un conteneur Azure arrive sans utilisateur. La donnée channel dit d'où il vient — sftp, azure ou model_sftp pour la collecte attachée à un modèle.
Modèles, interfaces et documents¶
| Type | Niveau | Acteur | Sujet | Émis quand | Données |
|---|---|---|---|---|---|
fiscal_invoicing.model.created |
INFO |
utilisateur | model |
Un modèle d'import est créé | name, kind |
fiscal_invoicing.model.updated |
INFO |
utilisateur | model |
Un modèle est renommé ou retouché | name, fields |
fiscal_invoicing.model.deleted |
WARN |
utilisateur | model |
Un modèle est supprimé | name |
fiscal_invoicing.model.cloned |
INFO |
utilisateur | model |
Un modèle est cloné depuis un modèle standard | name, origin |
fiscal_invoicing.model.imported |
INFO |
utilisateur | model |
Un modèle est importé depuis un fichier | name |
fiscal_invoicing.model.mapping_updated |
INFO |
utilisateur | model |
La correspondance des colonnes d'un modèle est modifiée | name, fields |
fiscal_invoicing.model.document_updated |
INFO |
utilisateur | model |
Le document produit par un modèle est modifié | name, flow |
fiscal_invoicing.model.collect_updated |
INFO |
utilisateur | model |
La collecte attachée à un modèle est configurée | name, channel, host |
fiscal_invoicing.model.collect_activated |
INFO |
utilisateur | model |
La collecte d'un modèle est activée ou désactivée | name, active |
fiscal_invoicing.interface.fiscal_updated |
INFO |
utilisateur | interface |
Les paramètres de l'interface FNE sont modifiés | fields |
fiscal_invoicing.interface.sftp_activated |
INFO |
utilisateur | interface |
La sauvegarde SFTP est activée ou désactivée | active, host, port, folder |
fiscal_invoicing.interface.azure_activated |
INFO |
utilisateur | interface |
La sauvegarde Azure est activée ou désactivée | active, container |
fiscal_invoicing.interface.collect_sftp_activated |
INFO |
utilisateur | interface |
La collecte SFTP est activée ou désactivée | active, host, port, folder |
fiscal_invoicing.interface.collect_azure_activated |
INFO |
utilisateur | interface |
La collecte Azure est activée ou désactivée | active, container |
fiscal_invoicing.interface.gdrive_activated |
INFO |
utilisateur | interface |
La sauvegarde Google Drive est activée ou désactivée | active |
fiscal_invoicing.interface.gdrive_connected |
INFO |
utilisateur | interface |
Un compte Google Drive est raccordé | connected, folder |
fiscal_invoicing.interface.gdrive_disconnected |
WARN |
utilisateur | interface |
Le compte Google Drive est débranché | active |
fiscal_invoicing.general_terms.uploaded |
INFO |
utilisateur | general_terms |
Le PDF des conditions générales est déposé | filename, size |
fiscal_invoicing.general_terms.activated |
INFO |
utilisateur | general_terms |
Les conditions générales sont activées ou désactivées | active |
fiscal_invoicing.manual_templates.updated |
INFO |
utilisateur | manual_templates |
Les gabarits de saisie manuelle sont remplacés | templates |
Un secret ne descend jamais dans le journal
Les événements d'interface ne portent que les repères d'un raccordement — hôte, port, dossier, conteneur. Les clés d'API, mots de passe et jetons restent dans les paramètres du module. fields liste les champs renseignés, jamais leur valeur.
Agents¶
| Type | Niveau | Acteur | Sujet | Émis quand | Données |
|---|---|---|---|---|---|
fiscal_invoicing.agent.created |
SECURITY |
utilisateur | agent |
Un agent de collecte est déclaré et reçoit son jeton d'enrôlement | name |
fiscal_invoicing.agent.revoked |
SECURITY |
utilisateur | agent |
Un agent est révoqué | name |
fiscal_invoicing.agent.token_renewed |
SECURITY |
utilisateur | agent |
Le jeton d'enrôlement d'un agent en attente a été régénéré | name |
fiscal_invoicing.agent.source_updated |
INFO |
utilisateur | agent |
La source d'extraction confiée à un agent est modifiée | name, model |
fiscal_invoicing.agent.catalog_refreshed |
INFO |
utilisateur | agent |
Un rafraîchissement du catalogue d'un agent est demandé | name |
fiscal_invoicing.agent.catalog_published |
INFO |
agent | agent |
Un agent publie le catalogue des objets qu'il voit | name, objects |
Écritures de la plateforme¶
| Type | Niveau | Acteur | Sujet | Émis quand | Données |
|---|---|---|---|---|---|
fiscal_invoicing.module.uninstalled |
SECURITY |
système | organization |
Le module est désinstallé et ses données sont purgées | deleted_transmitted_item, deleted_item_transmission_request, deleted_item_transmission_request_failure, deleted_file_import, deleted_interface_settings, deleted_organization |
fiscal_invoicing.order_signed.purged |
WARN |
système | pos |
Un point de vente est désinstallé et ses documents signés sont effacés | pos_id, deleted_order_signed |
Ce que le module ne journalise pas
La consultation d'une facture, d'un import ou d'un tableau de bord n'émet rien : le journal garde les décisions, pas les regards. Le battement de cœur d'un agent, qui marque seulement l'heure de sa dernière visite, reste hors du journal, tout comme la publication du catalogue de permissions au démarrage du module.
Journal d'événements¶
| Type | Niveau | Sujet | Émis quand | Données |
|---|---|---|---|---|
logs.events.exported |
SECURITY |
export |
Un export CSV du journal est produit | filters, limit |
À venir¶
Ces événements sont prévus mais ne sont pas encore émis. Ils sont donnés ici pour que les modules qui les attendent connaissent leur nom définitif.
| Type | Niveau | Sujet | Émis quand | Statut |
|---|---|---|---|---|
sales.cash_receipt.closed |
INFO |
cash_receipt |
Un ticket de caisse est clôturé | À venir |
minlessika.user.signed_in |
SECURITY |
user |
Un utilisateur se connecte à la plateforme | À venir |
Changelog¶
- 1.2 (31 août 2026) : catalogue facturation fiscale.
- 1.1 (26 août 2026) : catalogue stocks complet.
- 1.0 (23 août 2026) : création du document.