|
| 1 | +# Changelog |
| 2 | + |
| 3 | +Tous les changements notables de ce projet seront documentés dans ce fichier. |
| 4 | + |
| 5 | +Le format est basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.0.0/), |
| 6 | +et ce projet adhère au [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [0.2.0] - 2024-12-30 |
| 9 | + |
| 10 | +### Ajouté |
| 11 | + |
| 12 | +- **Nouvel outil `create_schema`** : Création de schémas complets en une opération |
| 13 | + - Création séquentielle : tables simples → résolution refs → colonnes référence |
| 14 | + - Support des relations inverses (`reverse` dans la définition) |
| 15 | + - Insertion optionnelle de données initiales |
| 16 | + - Rapport détaillé avec warnings et erreurs |
| 17 | + |
| 18 | +- **Nouvel outil `create_reference_column`** : Création de références simplifiée |
| 19 | + - Résolution automatique de `visibleCol` par nom de colonne |
| 20 | + - Validation de l'existence de la table cible |
| 21 | + - Création optionnelle de la relation inverse |
| 22 | + |
| 23 | +- **Nouvel outil `validate_schema`** : Validation sans création |
| 24 | + - Vérification des tables cibles |
| 25 | + - Détection des colonnes Choice sans choix |
| 26 | + - Liste des erreurs et warnings |
| 27 | + |
| 28 | +- **Nouvel outil `export_schema`** : Export de schémas existants |
| 29 | + - Formats : JSON, YAML, Mermaid (diagramme ER) |
| 30 | + - Option pour inclure les données |
| 31 | + |
| 32 | +- **Nouveau module `types.py`** : Définitions de types |
| 33 | + - `ColumnDefinition`, `TableDefinition`, `SchemaDefinition` |
| 34 | + - Mapping `GRIST_COLUMN_TYPES` avec validations |
| 35 | + - Fonction `parse_schema_dict` pour parser les schémas |
| 36 | + |
| 37 | +- **Nouveau module `utils.py`** : Fonctions utilitaires |
| 38 | + - `prepare_table_payload` : Format correct pour création de tables |
| 39 | + - `prepare_column_payload` : Format correct pour colonnes |
| 40 | + - `resolve_visible_col` : Résolution nom → colRef |
| 41 | + - `check_table_exists` : Vérification d'existence |
| 42 | + |
| 43 | +### Corrigé |
| 44 | + |
| 45 | +- **`create_table`** : Format du payload corrigé |
| 46 | + - Avant : `{"tables": [{"tableId": "X", "columns": [...]}]}` |
| 47 | + - Après : `{"tables": [{"id": "X", "columns": [{"id": "col", "fields": {...}}]}]}` |
| 48 | + |
| 49 | +- **`modify_table`** : Format du payload corrigé |
| 50 | + - Avant : `{"tables": [{"tableId": "X", "newTableId": "Y"}]}` |
| 51 | + - Après : `{"tables": [{"id": "X", "fields": {"tableId": "Y"}}]}` |
| 52 | + |
| 53 | +- **`create_column` / `modify_column`** : `widgetOptions` sérialisé en JSON string |
| 54 | + - L'API Grist attend une string, pas un dict |
| 55 | + - Correction appliquée via `json.dumps()` |
| 56 | + |
| 57 | +- **`create_column`** : Support des `choices` pour `Choice`/`ChoiceList` |
| 58 | + - Nouveau paramètre `choices: List[str]` |
| 59 | + - Intégré automatiquement dans `widgetOptions` |
| 60 | + |
| 61 | +- **`download_table_csv`** : Implémentation complète |
| 62 | + - Paramètre `tableId` correctement passé |
| 63 | + |
| 64 | +- **`download_document_excel`** : Gestion du paramètre obligatoire `tableId` |
| 65 | + - Récupère automatiquement la première table si non spécifié |
| 66 | + |
| 67 | +### Modifié |
| 68 | + |
| 69 | +- **`create_column`** : Nouveaux paramètres |
| 70 | + - `visible_col: int` : Pour les références |
| 71 | + - `untie_col_id_from_label: bool` : Défaut True |
| 72 | + - `description: str` : Description de la colonne |
| 73 | + - `choices: List[str]` : Pour Choice/ChoiceList |
| 74 | + |
| 75 | +- **`modify_column`** : Nouveaux paramètres |
| 76 | + - `visible_col: int` |
| 77 | + - `untie_col_id_from_label: bool` |
| 78 | + - `description: str` |
| 79 | + |
| 80 | +### Structure du projet |
| 81 | + |
| 82 | +``` |
| 83 | +src/mcp_server_grist/ |
| 84 | +├── types.py # NOUVEAU: Types et validations |
| 85 | +├── tools/ |
| 86 | +│ ├── __init__.py # MODIFIÉ: Exports |
| 87 | +│ ├── utils.py # NOUVEAU: Utilitaires |
| 88 | +│ ├── administration.py # MODIFIÉ: Corrections |
| 89 | +│ ├── schema.py # NOUVEAU: Outils schéma |
| 90 | +│ └── downloads.py # MODIFIÉ: Corrections |
| 91 | +└── ... |
| 92 | +``` |
| 93 | + |
| 94 | +## [0.1.x] - Versions précédentes |
| 95 | + |
| 96 | +### Fonctionnalités initiales |
| 97 | + |
| 98 | +- Navigation : organisations, workspaces, documents, tables, colonnes |
| 99 | +- CRUD tables et colonnes |
| 100 | +- CRUD enregistrements |
| 101 | +- Requêtes SQL |
| 102 | +- Gestion des accès |
| 103 | +- Webhooks |
| 104 | +- Pièces jointes |
0 commit comments