Changelog

Évolutions de l'API publique — Keep a Changelog.

Politique de versioning : /api/v1/... reste stable. Tout breaking change crée un nouveau préfixe (/api/v2/...) servi 6 mois en parallèle.

v0.1.87 — 2026-07-01

Sprint AppService v2 — refonte du modèle applicatif pour couvrir les besoins RFP RSSI / Compliance (DORA, NIS2, RGPD). Additive N-1 compat : chaque champ ajouté a un défaut sensible, aucun caller v0.1.86 n'est cassé. Détails architecture : docs/APPSERVICE_V2_ARCHITECTURE.md.

  • Ajout : Champ dataClassification sur Application (enum PUBLIC / INTERNAL / CONFIDENTIAL / RESTRICTED, défaut INTERNAL). Exposé sur GET /api/v1/referentiel/applications/{code} + accepté en PUT. Nouveau filtre ?data_class=CONFIDENTIAL sur la liste. Migration Liquibase 089.
  • Ajout : Champs criticality (enum 4 niveaux MISSION_CRITICAL / IMPORTANT / NOMINAL / LOW) + rtoHours + rpoHours sur Application. Backfill : applicationVip=true → MISSION_CRITICAL, else NOMINAL. Nouveau filtre ?criticality=. Migration Liquibase 090.
  • Ajout : Champ regulations sur Application — CSV multi-valeur (DORA, NIS2, RGPD, PCI_DSS, HDS, ISO_27001). Validation typée côté domain (token inconnu → 400). Nouveau filtre ?regulation=DORA. Migration Liquibase 091.
  • Ajout : TCO éclaté — champs licenseCost / supportCost / infraCost / staffCost (BIGINT nullable, minor units cents). Backfill legacy annual_cost → license_cost_cents. Le getter annualCost est maintenant dérivé (somme des 4 si ≥ 1 renseignée, sinon fallback legacy). Migration Liquibase 092.
  • Ajout : Champ roleAssignments sur Application — CSV multi-valeur M:N au format ROLE:contact,ROLE:contact. 6 rôles typés : PRODUCT_OWNER, BUSINESS_OWNER, TECH_LEAD, ARCHITECT, SECURITY_OFFICER, DATA_OWNER. Backfill : contact_it → TECH_LEAD, contact_metier → PRODUCT_OWNER. Migration Liquibase 093.
  • Ajout : Endpoint GET /api/v1/referentiel/applications/{code}/changes?limit=50 — audit trail des changements sur les 11 fields whitelistés (criticité, RTO/RPO, classification donnée, réglementations, rôles assignés, coût TCO, statut). Ordre reverse-chronological, hard-cap 200. Alimente le tab Historique de la Fact Sheet. Migration Liquibase 094 (table application_change_log).
  • Deprecation : applicationVip (bool), annualCost (montant unique), contactIT et contactMetier (mono-valué) sont marqués @Deprecated(forRemoval=true) + log WARN dans les setters. DROP planifié v0.1.88 — mettre à jour les callers legacy avant.

v0.1.77.1 — 2026-06-25

  • Ajout : Webhooks sortants signés POST HTTP par subscription tenant. Catalogue V1 : application.created, application.updated, das.submitted. Signature X-Arch-Signature HMAC-SHA256 (format timestamp.body), 4 headers de traçabilité (X-Arch-Timestamp, X-Arch-Event, X-Arch-Event-Id, X-Arch-Delivery-Id). Backoff exponentiel facteur 5 (1 min → 5 min → 25 min → 2 h → 10 h → 50 h, 6 tentatives max). Auto-disable de la subscription après 10 échecs consécutifs. CRUD via /admin/webhooks côté UI. Détails : /developer/webhooks.
  • Ajout : Spec OpenAPI enrichi de x-codeSamples (curl / Python / JavaScript) sur tous les endpoints @PublicApi — exemples affichés dans le panneau Scalar côté /developer/explore.

v0.1.77 — 2026-06-24

  • Ajout : Header X-RateLimit-Reset (epoch secondes UTC) sur toutes les réponses /api/**, succès ou 429. Permet de pacer proactivement les requêtes sans attendre un 429. Retry-After aligné sur le même calcul.
  • Ajout : Réponses 401 Unauthorized (PAT invalide / expiré) et 429 Too Many Requests (rate-limited) systématiquement documentées dans le spec OpenAPI — avec exemple JSON et headers associés.
  • Ajout : Tags scope:read / scope:write injectés automatiquement dans la doc OpenAPI à partir de @PublicApi.scope. Plus besoin de chercher quel scope un endpoint exige.

v0.1.71 — 2026-06-24

v0.1.70 — 2026-06-23

  • Ajout : Endpoints provisioning utilisateurs @PublicApi sur /api/v1/tenant/invitationsPOST / (invite), GET / (liste invitations), GET /members (membres actifs), DELETE /{id} (révoque invitation), DELETE /members/{userSub} (retire un membre). Permet d'automatiser l'offboarding RH via script. Scopes read / write. Détails : /developer/provisioning.

v0.1.67 — 2026-06-23

  • Ajout : Référence API interactive Scalar sur /developer/explore — test des endpoints sans installer de client (Bearer PAT persisté en localStorage).

v0.1.65 — 2026-06-22

  • Ajout : Workflow self-service PAT — un dev dépose une demande justifiée sur /api-token-requests, un tenant-admin approuve et transmet le token via canal sécurisé.
  • Ajout : OAuth2 Client Credentials pour partenaires long-terme — convention client_id = arch-partner-<slug>, quota 600 req/min (3× PAT), TTL access token 5 min.
  • Ajout : Métriques Micrometer arch.public_api.calls exposées via OTLP (par endpoint + statut).

v0.1.31 — 2026-05-26

  • Ajout : API publique v1 — premiers endpoints @PublicApi sur /api/v1/referentiel/applications et /api/v1/referentiel/functions.
  • Ajout : Authentification Personal Access Token (PAT, format arc_pat_…). Rate limit 180 req/min par token.

Roadmap publique

  • Endpoints POST / PATCH sur /das (v0.2)
  • Formulaire self-service pour les demandes OAuth2 partenaires (v0.1.81+)
  • Élargissement du catalogue d'events webhooks (flux.created, notice.signed, etc. — V2)

On this page