Import et export des enregistrements
Sovrium déplace des données en masse vers et depuis les tables de trois manières. Le copier/coller par presse-papiers entre une table de données et un tableur est disponible aujourd'hui, construit sur les points de terminaison batch et list existants. L'import CSV (téléverser un fichier pour créer des enregistrements en masse) et l'export (télécharger la vue courante en CSV ou JSON) sont conçus mais pas encore disponibles. Aucune configuration n'est requise pour aucun d'entre eux.
Statut : le presse-papiers est disponible aujourd'hui ; l'import/export CSV est planifié. Le copier/coller du presse-papiers repose sur les points de terminaison batch et list existants et fonctionne dès maintenant. Les points de terminaison d'import/export CSV ci-dessous constituent une surface conçue mais non encore livrée (les user stories d'import/export sont Not Started). Cette page documente l'API d'import/export prévue ; les formes concrètes de requête/réponse seront finalisées lors de l'implémentation.
Import CSV
Téléversez un fichier CSV pour charger des enregistrements en masse, avec mappage colonne-vers-champ, gestion configurable des doublons et rapport d'erreurs par ligne en cas d'échecs partiels.
POST /api/tables/:tableId/import
Content-Type: multipart/form-data
Body:
file (CSV file)
mapping (JSON: { "csvColumn": "tableField" })
duplicateStrategy ("skip" | "overwrite" | "create")
uniqueField (field used to detect duplicates)
La réponse résume le résultat et signale les erreurs par ligne sans faire échouer tout l'import :
{
"imported": 120,
"skipped": 4,
"updated": 11,
"failed": 2,
"errors": [
{ "row": 17, "field": "email", "error": "Invalid email format" },
{ "row": 92, "field": "amount", "error": "Expected a number" }
]
}
| Concept | Comportement |
|---|---|
| Mappage de colonnes | mapping associe chaque colonne CSV à un champ de table ; les colonnes non mappées sont ignorées |
duplicateStrategy: skip |
Ignorer les lignes dont le uniqueField existe déjà |
duplicateStrategy: overwrite |
Mettre à jour l'enregistrement correspondant existant |
duplicateStrategy: create |
Toujours insérer un nouvel enregistrement |
| Échec partiel | Les lignes valides sont importées ; les lignes invalides sont signalées dans errors |
Les enregistrements importés passent la même validation de type de champ et les mêmes permissions au niveau des champs qu'une création normale.
Export
Exportez la vue courante d'une table — toutes les lignes visibles, une sélection choisie à la main, ou les mêmes données au format JSON pour l'outillage développeur.
GET /api/tables/:tableId/export?format=csv&viewId=2&filters=JSON&fields=id,name,status
GET /api/tables/:tableId/export?format=json&fields=id,name,status
GET /api/tables/:tableId/export?format=csv&recordIds=1,2,3&fields=id,name,status
La réponse diffuse le fichier avec une disposition de pièce jointe :
Content-Type: text/csv (or application/json)
Content-Disposition: attachment; filename="orders.csv"
| Paramètre | Description |
|---|---|
format |
csv (défaut) ou json |
viewId |
Exporter les lignes d'une vue enregistrée |
filters |
Expression de filtre JSON (même grammaire que le filtrage de liste) |
fields |
Colonnes à inclure séparées par des virgules |
recordIds |
Exporter uniquement les ID d'enregistrements nommés (une sélection choisie à la main) |
L'export respecte les permissions de lecture au niveau des champs — les colonnes que l'appelant ne peut pas lire sont omises du fichier.
Presse-papiers
Le composant table de données prend en charge le copier/coller de style tableur, construit sur les points de terminaison standard des enregistrements.
| Action | Comportement | Point de terminaison sous-jacent |
|---|---|---|
| Coller des lignes | Coller des données séparées par des tabulations depuis Excel/Google Sheets dans une table de données | POST /api/tables/:tableId/records/batch |
| Aperçu du collage | Prévisualiser les données collées avec mappage de colonnes avant validation | (côté client, puis création en lot) |
| Copier des lignes | Sélectionner des lignes et les copier en valeurs séparées par des tabulations dans le presse-papiers | GET /api/tables/:tableId/records |
Le collage associe les colonnes séparées par des tabulations aux champs de table (avec une étape d'aperçu/mappage pour que l'utilisateur puisse confirmer avant l'écriture), puis valide via une seule création en lot — gardant l'opération atomique. La copie sérialise les colonnes visibles des lignes sélectionnées en TSV.
Pages associées
- Opérations en lot — le chemin d'écriture en masse atomique utilisé par le collage du presse-papiers
- Filtrage, tri et pagination — la grammaire de filtre/champs que l'export réutilise
- Vues de table — exporter une vue enregistrée par
viewId - Validation de table — les lignes importées passent la validation de type de champ
- Permissions de table — les permissions de lecture/écriture au niveau des champs régulent l'import et l'export
Dernière mise à jour July 12, 2026