Aller au contenu

signal-conformite

Événement (AsyncAPI) — version 0.2.0. Producteur : banque-flux-financiers, epargnant, operations. Consommateurs déclarés : conformite.

Un fait observable publié vers la conformité par le domaine qui en fait autorité, pour la corrélation. Un signal DÉCRIT et NE CONCLUT PAS : le message n’a ni champ de score ni champ de qualification — l’absence est structurelle. La référence voyage, jamais le contenu : le payload complet du fait demeure chez le producteur. Le bus reste le canal canonique des faits métier — ce canal porte les faits d’observation qui n’intéressent que la surveillance.

asyncapi: 3.0.0
info:
title: conformite — le signal
version: 0.2.0
x-ruptures:
- version: 0.2.0
rupture: "propriété retirée : tenant"
motif: >-
Isolation forte par tenant — aucun identifiant de tenant n'est transporté ;
l'appartenance est celle de l'installation (précédent instruments 0.4.0).
description: >-
Un fait observable publié vers la conformité par le domaine qui en fait autorité,
pour la corrélation. Un signal DÉCRIT et NE CONCLUT PAS : le message n'a ni champ
de score ni champ de qualification — l'absence est structurelle. La référence
voyage, jamais le contenu : le payload complet du fait demeure chez le producteur.
Le bus reste le canal canonique des faits métier — ce canal porte les faits
d'observation qui n'intéressent que la surveillance.
x-producteurs:
- banque-flux-financiers
- epargnant
- operations
x-consommateurs:
- conformite
defaultContentType: application/json
channels:
signal:
address: conformite.signal
description: >-
Canal logique des signaux vers la conformité. Un canal unique pour tous les
producteurs autorisés ; l'ordre n'est garanti que par entité (l'objet référencé)
et par producteur, jamais entre producteurs. La republication d'un même
signal_id ne crée pas un second signal.
messages:
signalPublie:
$ref: '#/components/messages/signalPublie'
operations:
publierUnSignal:
action: send
channel:
$ref: '#/channels/signal'
summary: >-
Un domaine détenteur publie un fait d'observation ; la conformité corrèle et,
le cas échéant, alerte. Réception silencieuse — aucun accusé métier.
messages:
- $ref: '#/channels/signal/messages/signalPublie'
components:
messages:
signalPublie:
name: signal-conformite
title: Signal publié
summary: Un fait observable, sans score ni conclusion, destiné à la corrélation.
contentType: application/json
payload:
$ref: '#/components/schemas/evenementSignal'
schemas:
evenementSignal:
type: object
required:
- signal_id
- producteur
- type_signal
- finalite
- date_fait
- date_publication
- objet
properties:
signal_id:
type: string
description: >-
Identifiant du signal chez son producteur — la clé d'idempotence : une
republication du même fait n'en crée pas un second.
producteur:
type: string
description: Le domaine d'autorité du fait (BANQUE_FLUX_FINANCIERS, EPARGNANT, OPERATIONS, ACCES…).
type_signal:
type: string
description: >-
Type codifié (nomenclature type_signal). Types fondateurs : CORRELATION_BANCAIRE
(une même coordonnée sert plusieurs sujets — publiée comme groupe opaque),
COORDONNEE_MODIFIEE, CONNEXION_ATYPIQUE, REJET_PAIEMENT, DOSSIER_DORMANT_REACTIVE.
Chaque producteur déclare les siens à son branchement.
finalite:
type: string
description: >-
La finalité de collecte (PREVENTION_FRAUDE, LCB_FT, SANCTIONS_GEL…) — garde
de minimisation : un signal collecté pour une finalité n'est pas
automatiquement réutilisable pour une autre.
date_fait:
type: string
format: date-time
description: La date du FAIT — celle des fenêtres de corrélation et de la lecture des listes.
date_publication:
type: string
format: date-time
objet:
$ref: '#/components/schemas/referenceVersionnee'
cle_correlation:
type: string
description: >-
Clé opaque de rapprochement fournie par le producteur — le groupe de
corrélation bancaire en est le cas fondateur : il permet de savoir que deux
sujets partagent une coordonnée SANS transporter la coordonnée. Jamais une
valeur en clair, jamais une empreinte réversible.
categories:
type: object
additionalProperties:
type: string
description: >-
Les seules catégories codifiées nécessaires à la corrélation (ex.
canal: WEB, pays_connexion: FR). Ni identité, ni coordonnée, ni valeur
sensible, ni texte libre — et, par construction, NI SCORE NI CONCLUSION.
cause:
type: string
description: >-
Le signal_id du fait antérieur dont celui-ci découle, le cas échéant — deux
faits distincts restent deux signaux, la causalité les relie.
referenceVersionnee:
type: object
required: [domaine, type, identifiant, version]
properties:
domaine:
type: string
type:
type: string
identifiant:
type: string
description: Identifiant publié — jamais une valeur (ni nom, ni IBAN).
version:
type: integer
minimum: 1
description: >-
La version de l'objet à la date du fait ; le producteur garantit la
relecture historique sous habilitation.