Skip to main content
Voir en Markdown

Historique et commentaires des enregistrements

Chaque enregistrement porte deux surfaces d'activité : un historique des modifications automatique (une piste d'audit maintenue par le système indiquant qui a modifié quoi et quand) et un fil de commentaires (une discussion rédigée par les utilisateurs attachée à l'enregistrement). Les deux sont accessibles sous l'URL de l'enregistrement.

Méthode et chemin Description
GET /api/tables/:tableId/records/:recordId/history Récupérer l'historique des modifications d'un enregistrement
GET /api/tables/:tableId/records/:recordId/comments Lister les commentaires d'un enregistrement
GET /api/tables/:tableId/records/:recordId/comments/:commentId Lire un commentaire unique
POST /api/tables/:tableId/records/:recordId/comments Créer un commentaire
PATCH /api/tables/:tableId/records/:recordId/comments/:commentId Modifier un commentaire
DELETE /api/tables/:tableId/records/:recordId/comments/:commentId Supprimer un commentaire

Historique des modifications

L'historique est suivi automatiquement pour toutes les tables — il n'y a rien à activer. Chaque création, mise à jour, suppression et restauration est enregistrée avec l'utilisateur agissant et un différentiel structuré au niveau des champs. Lisez-le avec :

code
GET /api/tables/orders/records/123/history
app.json
{
  "history": [
    {
      "id": 1,
      "action": "update",
      "changes": {
        "status": { "from": "pending", "to": "approved" }
      },
      "user": { "id": 1, "name": "Alice" },
      "timestamp": "2025-01-15T10:30:00Z"
    }
  ],
  "total": 1
}
Champ Description
action create, update, delete ou restore
changes Différentiel { from, to } par champ pour la modification
user L'utilisateur agissant (id, name)
timestamp Heure ISO 8601 à laquelle la modification s'est produite

L'historique enregistre les modifications de toutes les sources — écritures via l'API REST, modifications administrateur, automatisations et opérations en lot — de sorte que la piste est complète. Il complète les champs d'auteur par enregistrement (createdBy/updatedBy/deletedBy), qui capturent le dernier acteur sur l'enregistrement lui-même.

Commentaires

Les commentaires sont des notes rédigées par les utilisateurs attachées à un enregistrement, prenant en charge les @mentions. L'utilisateur courant est injecté automatiquement comme auteur — vous ne fournissez que le content.

app.json
POST /api/tables/orders/records/123/comments
{
  "content": "This looks good! @alice can you confirm the numbers?"
}

Une création réussie renvoie 201 Created avec le commentaire stocké, encapsulé dans une enveloppe comment :

app.json
{
  "comment": {
    "id": 2,
    "content": "This looks good! @alice can you confirm the numbers?",
    "userId": 2,
    "recordId": 123,
    "tableId": "orders",
    "createdAt": "2025-01-15T11:00:00Z",
    "updatedAt": "2025-01-15T11:00:00Z",
    "user": { "id": 2, "name": "Bob" }
  }
}

content est requis et limité à 10 000 caractères. Les mentions ne sont pas analysées depuis le texte du corps — fournissez vous-même les identifiants des utilisateurs mentionnés dans un tableau mentions optionnel sur la requête. Ils parviennent aux automatisations sous la forme $trigger.mentions, afin qu'un déclencheur de commentaire puisse agir dessus.

Lire les commentaires

code
GET /api/tables/orders/records/123/comments       # lister tout
GET /api/tables/orders/records/123/comments/2      # commentaire unique

Le point de terminaison de liste renvoie le fil de commentaires de l'enregistrement. L'objet user est projeté sous une forme d'affichage sûre (id, name) — l'e-mail et les autres données personnelles ne sont jamais exposés dans les réponses de commentaires.

Modifier et supprimer

code
PATCH  /api/tables/orders/records/123/comments/2
DELETE /api/tables/orders/records/123/comments/2

La modification remplace content (en réanalysant les mentions) ; la suppression retire le commentaire. Les deux respectent le RBAC et les permissions de la table — généralement, un utilisateur peut modifier/supprimer ses propres commentaires, avec des droits plus étendus accordés aux rôles élevés.

Règles transversales

Préoccupation Comportement
Authentification Tous les points de terminaison nécessitent une session (401 sinon)
Existence Une table/un enregistrement/un commentaire inconnu renvoie 404 (anti-énumération)
Sécurité de l'auteur L'auteur du commentaire est injecté par le serveur ; les auteurs fournis par le client sont ignorés
Données personnelles La projection de l'auteur n'expose que id et name

Pages associées

Dernière mise à jour 11 août 2026

Cette documentation a été rédigée avec de l'IA : des erreurs ou du contenu obsolète sont donc possibles. Sovrium est en bêta. Les contributions et corrections sont les bienvenues.

Construit avec Sovrium