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 :
GET /api/tables/orders/records/123/history
{
"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.
La configuration de la rétention et du suivi des champs n'est pas encore disponible. L'historique est actuellement suivi automatiquement pour chaque table sans aucune option par table. Les politiques de rétention configurables et le suivi sélectif des champs arriveront dans une future version du schéma.
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.
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é, y compris les mentions analysées et l'auteur résolu :
{
"id": 2,
"content": "This looks good! @alice can you confirm the numbers?",
"mentions": [{ "userId": 1, "username": "alice", "position": 21 }],
"author": { "id": 2, "name": "Bob" },
"created_at": "2025-01-15T11:00:00Z"
}
content est requis et limité à 10 000 caractères. Les jetons @username sont analysés en un tableau mentions (chacun avec le userId, le username et la position de caractère résolus), que les fonctionnalités en aval (par ex. les notifications) consomment.
Lire les commentaires
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 auteur 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
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
- Vue d'ensemble des enregistrements — métadonnées d'auteur vs historique des modifications
- CRUD et upsert — les écritures que l'historique enregistre
- Suppression réversible et restauration — les suppressions/restaurations sont consignées dans l'historique
- Permissions de table — qui peut commenter, modifier et supprimer