mesure-ordonnee
Événement (AsyncAPI) — version 0.2.0. Producteur : conformite. Consommateurs déclarés : tenue-de-compte.
L’instruction opposable que la conformité rend à un domaine exécutant, et sa levée. Un fait qui EMPORTE OBLIGATION DE TRAITEMENT : zéro consommateur n’est pas un état admissible, c’est une anomalie que la réconciliation détecte. Le message ne transporte ni motif, ni dossier, ni caractère de la mesure — le détenteur exécute, il n’a pas à savoir pourquoi, et l’existence d’un soupçon est confidentielle sous peine de sanctions pénales. Il ne transporte pas davantage l’échéance de revue : rien ne se relâche par écoulement du temps, la levée est un fait explicite.
La spécification
Section intitulée « La spécification »asyncapi: 3.0.0info: title: conformite — la mesure ordonnée 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). Le point ouvert de l'obligation de gel — une désignation vise la personne, tous teneurs confondus. description: >- L'instruction opposable que la conformité rend à un domaine exécutant, et sa levée. Un fait qui EMPORTE OBLIGATION DE TRAITEMENT : zéro consommateur n'est pas un état admissible, c'est une anomalie que la réconciliation détecte. Le message ne transporte ni motif, ni dossier, ni caractère de la mesure — le détenteur exécute, il n'a pas à savoir pourquoi, et l'existence d'un soupçon est confidentielle sous peine de sanctions pénales. Il ne transporte pas davantage l'échéance de revue : rien ne se relâche par écoulement du temps, la levée est un fait explicite. x-producteurs: - conformite x-consommateurs: - tenue-de-comptedefaultContentType: application/jsonchannels: mesure: address: conformite.mesure description: >- Canal logique des mesures ordonnées par la conformité. Un canal unique pour tous les exécutants, qui filtrent sur domaine_executant : la réconciliation « qui devait exécuter quoi » se tient ainsi d'un seul endroit. L'ordre n'est garanti que par entité (la mesure) et par producteur, jamais entre producteurs. messages: mesureOrdonnee: $ref: '#/components/messages/mesureOrdonnee' mesureLevee: $ref: '#/components/messages/mesureLevee'operations: publierLesMesuresOrdonnees: action: send channel: $ref: '#/channels/mesure' summary: La conformité publie l'ordre, puis la levée. Le détenteur exécute et prouve. messages: - $ref: '#/channels/mesure/messages/mesureOrdonnee' - $ref: '#/channels/mesure/messages/mesureLevee'components: messages: mesureOrdonnee: name: mesure-ordonnee title: Mesure ordonnée summary: Une mesure a été ordonnée à un domaine exécutant. contentType: application/json payload: $ref: '#/components/schemas/evenementMesureOrdonnee' mesureLevee: name: mesure-levee title: Mesure levée summary: >- Une mesure ordonnée a été levée. Un second fait, jamais un champ remis à faux — pour un gel, la levée relève d'une autorisation ministérielle, pas d'une décision interne. contentType: application/json payload: $ref: '#/components/schemas/evenementMesureLevee' schemas: socleDEvenement: type: object # Les consommateurs sont tolérants : un champ inconnu s'ignore — # le schéma n'interdit donc pas les propriétés additionnelles. required: [identifiant, survenu_le, entite_sujet, type, version, sequence, cree_le, cree_par] properties: identifiant: type: string description: Identifiant unique du fait — clé d'idempotence du consommateur. survenu_le: type: string format: date-time description: >- Date de survenance du fait métier — l'ORDRE lui-même, pas son émission ni sa prise d'effet (effet_le). Pour un gel, l'écart entre survenu_le et la preuve d'exécution est ce qui démontre le « sans délai ». entite_sujet: type: string description: La mesure (identifiant publié). L'ordre est garanti par mesure. type: type: string enum: [mesure-ordonnee, mesure-levee] version: type: string description: Version du contrat ayant produit le fait (versionnement sémantique). sequence: type: integer minimum: 1 description: Numéro de séquence par entité chez le producteur — assise de l'ordre. cause: type: string description: >- Identifiant du fait qui a causé celui-ci. Obligatoire sur mesure-levee : l'identifiant du fait qui avait ordonné la mesure levée. cree_le: type: string format: date-time cree_par: type: string evenementMesureOrdonnee: allOf: - $ref: '#/components/schemas/socleDEvenement' - type: object required: [nature, domaine_executant, type_cible, cible, effet_le, priorite] properties: nature: type: string description: >- La nature de la mesure, dans la nomenclature publiée du domaine. Valeurs restrictives attendues — MISE_EN_ATTENTE, SUSPENSION_OPERATION, REFUS, GEL_AVOIRS, BLOCAGE_TOTAL, LECTURE_SEULE, BLOCAGE_OPERATIONS. Les natures non restrictives (POURSUITE, CONTROLE_RENFORCE) ne transitent PAS par ce canal : elles sont rendues au demandeur dans une évaluation, elles n'ordonnent rien à un détenteur. enum: - MISE_EN_ATTENTE - SUSPENSION_OPERATION - REFUS - GEL_AVOIRS - BLOCAGE_TOTAL - LECTURE_SEULE - BLOCAGE_OPERATIONS domaine_executant: type: string description: >- Le domaine désigné pour exécuter. Les consommateurs filtrent sur ce champ. ACCES ne correspond à ce jour à AUCUN composant applicatif (notice § 5). enum: - TENUE_COMPTE - OPERATIONS - BANQUE_FLUX - ACCES type_cible: type: string description: >- Le PÉRIMÈTRE désigné. Il n'est pas déplié : c'est au détenteur de le décliner en cibles élémentaires — lui seul sait quels comptes tient une personne — et d'en rendre compte cible par cible. enum: [COMPTE, EPARGNANT, ENTREPRISE, OPERATION, PAIEMENT] cible: type: string description: Identifiant publié de la cible, selon type_cible. Jamais un nom. effet_le: type: string format: date description: >- Date de prise d'effet. Pour une mesure légale, c'est la date à laquelle la mesure est devenue exécutoire — elle peut être antérieure à l'ordre. priorite: type: string description: >- L'urgence, et NON le caractère de la mesure. Transmettre « préventive » apprendrait au détenteur qu'une instruction est en cours — précisément ce qu'il ne doit pas déduire. URGENTE couvre notamment la désignation de gel et l'opposition d'une autorité. enum: [URGENTE, NORMALE] fin_prevue: type: string format: date description: >- Facultative et INDICATIVE. Ne vaut pas expiration : à cette date, le détenteur n'a rien à relâcher — il attend un fait mesure-levee. L'échéance de revue d'une mesure préventive, elle, ne voyage jamais. evenementMesureLevee: allOf: - $ref: '#/components/schemas/socleDEvenement' - type: object required: [domaine_executant, type_cible, cible, effet_le, cause] properties: domaine_executant: type: string enum: [TENUE_COMPTE, OPERATIONS, BANQUE_FLUX, ACCES] type_cible: type: string enum: [COMPTE, EPARGNANT, ENTREPRISE, OPERATION, PAIEMENT] cible: type: string effet_le: type: string format: date description: Date à partir de laquelle la restriction cesse de s'appliquer.