Fix: Mise à jour catalogue frontend pour actions database
Synchronisation des paramètres frontend avec le backend: - db_save_data: modes cle_valeur, collection, sql - db_read_data: modes cle_valeur, collection, sql, lister Paramètres alignés avec l'implémentation SQLite. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -923,141 +923,185 @@ export const STATIC_CATALOG_ACTIONS: StaticCatalogAction[] = [
|
|||||||
// ═══════════════════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
{
|
{
|
||||||
id: 'db_save_data',
|
id: 'db_save_data',
|
||||||
name: 'Sauvegarder en BDD',
|
name: 'Sauvegarder Données',
|
||||||
category: 'database' as VWBActionCategory,
|
category: 'database' as VWBActionCategory,
|
||||||
description: 'Enregistrer des données extraites dans une base de données',
|
description: 'Sauvegarder des données de manière persistante (SQLite)',
|
||||||
icon: '💾',
|
icon: '💾',
|
||||||
parameters: {
|
parameters: {
|
||||||
visual_anchor: {
|
|
||||||
type: 'VWBVisualAnchor',
|
|
||||||
required: false,
|
|
||||||
description: 'Zone source des données (optionnel si variable déjà définie)',
|
|
||||||
default: null,
|
|
||||||
},
|
|
||||||
source_variable: {
|
|
||||||
type: 'string',
|
|
||||||
required: false,
|
|
||||||
description: 'Variable contenant les données à sauvegarder',
|
|
||||||
default: '',
|
|
||||||
},
|
|
||||||
table_name: {
|
|
||||||
type: 'string',
|
|
||||||
required: true,
|
|
||||||
description: 'Nom de la table de destination',
|
|
||||||
default: '',
|
|
||||||
},
|
|
||||||
field_mapping: {
|
|
||||||
type: 'string',
|
|
||||||
required: false,
|
|
||||||
description: 'Mapping des champs (JSON): {"champ_source": "colonne_bdd"}',
|
|
||||||
default: '{}',
|
|
||||||
},
|
|
||||||
connection_name: {
|
|
||||||
type: 'string',
|
|
||||||
required: false,
|
|
||||||
description: 'Nom de la connexion BDD configurée',
|
|
||||||
default: 'default',
|
|
||||||
},
|
|
||||||
mode: {
|
mode: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
required: false,
|
required: false,
|
||||||
description: 'Mode d\'insertion',
|
description: 'Mode de sauvegarde',
|
||||||
default: 'insert',
|
default: 'cle_valeur',
|
||||||
options: ['insert', 'upsert', 'update'],
|
options: ['cle_valeur', 'collection', 'sql'],
|
||||||
|
},
|
||||||
|
cle: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Clé unique pour le mode clé-valeur (ex: config.nom_utilisateur)',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
valeur: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Valeur à sauvegarder (texte, nombre, JSON)',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
nom_collection: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Nom de la collection pour le mode collection',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
donnees: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Données JSON pour la collection',
|
||||||
|
default: '{}',
|
||||||
|
},
|
||||||
|
requete_sql: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Requête SQL pour le mode avancé (INSERT, UPDATE)',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
workflow_id: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'ID du workflow pour filtrage',
|
||||||
|
default: '',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
examples: [
|
examples: [
|
||||||
{
|
{
|
||||||
name: 'Enregistrer facture',
|
name: 'Sauvegarder configuration',
|
||||||
description: 'Sauvegarder les données d\'une facture extraite',
|
description: 'Stocker une valeur de configuration',
|
||||||
parameters: {
|
parameters: {
|
||||||
source_variable: 'facture_data',
|
mode: 'cle_valeur',
|
||||||
table_name: 'factures',
|
cle: 'config.derniere_execution',
|
||||||
field_mapping: '{"numero": "num_facture", "montant": "total_ttc", "date": "date_facture"}',
|
valeur: '2026-01-14T10:30:00',
|
||||||
mode: 'insert'
|
|
||||||
},
|
},
|
||||||
expectedResult: 'Une nouvelle ligne est créée dans la table factures',
|
expectedResult: 'La valeur est sauvegardée avec la clé',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Logger résultat extraction',
|
||||||
|
description: 'Ajouter un résultat à une collection',
|
||||||
|
parameters: {
|
||||||
|
mode: 'collection',
|
||||||
|
nom_collection: 'resultats_extraction',
|
||||||
|
donnees: '{"nb_lignes": 150, "erreurs": 0}',
|
||||||
|
},
|
||||||
|
expectedResult: 'Les données sont ajoutées à la collection',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
documentation: 'Permet de persister des données extraites visuellement dans une base de données relationnelle.',
|
documentation: 'Sauvegarde persistante dans SQLite. Mode clé-valeur pour configs simples, collection pour historique, SQL pour avancé. Base par défaut: ~/.vwb/data.db',
|
||||||
metadata: {
|
metadata: {
|
||||||
version: '3.0.0',
|
version: '3.1.0',
|
||||||
author: 'Dom, Alice, Kiro',
|
author: 'Dom, Claude',
|
||||||
createdAt: '2026-01-13',
|
createdAt: '2026-01-14',
|
||||||
updatedAt: '2026-01-13',
|
updatedAt: '2026-01-14',
|
||||||
tags: ['database', 'save', 'persist', 'insert', 'data'],
|
tags: ['database', 'save', 'persist', 'sqlite', 'data'],
|
||||||
complexity: 'advanced',
|
complexity: 'intermediate',
|
||||||
estimatedDuration: 3000,
|
estimatedDuration: 500,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'db_read_data',
|
id: 'db_read_data',
|
||||||
name: 'Lire depuis BDD',
|
name: 'Charger Données',
|
||||||
category: 'database' as VWBActionCategory,
|
category: 'database' as VWBActionCategory,
|
||||||
description: 'Lire des données depuis une base de données',
|
description: 'Charger des données sauvegardées précédemment',
|
||||||
icon: '📖',
|
icon: '📖',
|
||||||
parameters: {
|
parameters: {
|
||||||
table_name: {
|
mode: {
|
||||||
type: 'string',
|
|
||||||
required: true,
|
|
||||||
description: 'Nom de la table à interroger',
|
|
||||||
default: '',
|
|
||||||
},
|
|
||||||
query_filter: {
|
|
||||||
type: 'string',
|
type: 'string',
|
||||||
required: false,
|
required: false,
|
||||||
description: 'Filtre SQL WHERE (sans le mot-clé WHERE)',
|
description: 'Mode de chargement',
|
||||||
default: '',
|
default: 'cle_valeur',
|
||||||
|
options: ['cle_valeur', 'collection', 'sql', 'lister'],
|
||||||
},
|
},
|
||||||
columns: {
|
cle: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
required: false,
|
required: false,
|
||||||
description: 'Colonnes à récupérer (séparées par virgule, ou * pour tout)',
|
description: 'Clé à récupérer pour le mode clé-valeur',
|
||||||
default: '*',
|
default: '',
|
||||||
},
|
},
|
||||||
limit: {
|
valeur_defaut: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Valeur par défaut si la clé n\'existe pas',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
nom_collection: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Nom de la collection pour le mode collection',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
limite: {
|
||||||
type: 'number',
|
type: 'number',
|
||||||
required: false,
|
required: false,
|
||||||
description: 'Nombre maximum de lignes',
|
description: 'Nombre maximum de résultats',
|
||||||
default: 100,
|
default: 100,
|
||||||
min: 1,
|
min: 1,
|
||||||
max: 10000,
|
max: 10000,
|
||||||
},
|
},
|
||||||
variable_name: {
|
dernier_seulement: {
|
||||||
type: 'string',
|
type: 'boolean',
|
||||||
required: true,
|
required: false,
|
||||||
description: 'Variable pour stocker les résultats',
|
description: 'Récupérer uniquement le dernier enregistrement',
|
||||||
default: 'db_results',
|
default: false,
|
||||||
},
|
},
|
||||||
connection_name: {
|
requete_sql: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
required: false,
|
required: false,
|
||||||
description: 'Nom de la connexion BDD configurée',
|
description: 'Requête SQL SELECT pour le mode avancé',
|
||||||
default: 'default',
|
default: '',
|
||||||
|
},
|
||||||
|
prefixe_cle: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Préfixe pour lister les clés (mode lister)',
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
|
variable_sortie: {
|
||||||
|
type: 'string',
|
||||||
|
required: false,
|
||||||
|
description: 'Variable pour stocker les résultats',
|
||||||
|
default: 'donnees_chargees',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
examples: [
|
examples: [
|
||||||
{
|
{
|
||||||
name: 'Récupérer client par email',
|
name: 'Charger configuration',
|
||||||
description: 'Chercher un client dans la base par son email',
|
description: 'Récupérer une valeur de configuration',
|
||||||
parameters: {
|
parameters: {
|
||||||
table_name: 'clients',
|
mode: 'cle_valeur',
|
||||||
query_filter: "email = '${email_extrait}'",
|
cle: 'config.derniere_execution',
|
||||||
columns: 'id, nom, prenom, telephone',
|
variable_sortie: 'date_derniere_exec',
|
||||||
variable_name: 'client_info'
|
|
||||||
},
|
},
|
||||||
expectedResult: 'Les données du client sont stockées dans la variable',
|
expectedResult: 'La valeur est chargée dans la variable',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Historique des extractions',
|
||||||
|
description: 'Récupérer les 10 derniers résultats',
|
||||||
|
parameters: {
|
||||||
|
mode: 'collection',
|
||||||
|
nom_collection: 'resultats_extraction',
|
||||||
|
limite: 10,
|
||||||
|
variable_sortie: 'historique',
|
||||||
|
},
|
||||||
|
expectedResult: 'Les derniers résultats sont chargés',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
documentation: 'Permet de récupérer des données depuis la base pour les utiliser dans le workflow.',
|
documentation: 'Charge des données depuis SQLite. Mode clé-valeur pour valeurs simples, collection pour historique, SQL pour requêtes personnalisées, lister pour voir les clés disponibles.',
|
||||||
metadata: {
|
metadata: {
|
||||||
version: '3.0.0',
|
version: '3.1.0',
|
||||||
author: 'Dom, Alice, Kiro',
|
author: 'Dom, Claude',
|
||||||
createdAt: '2026-01-13',
|
createdAt: '2026-01-14',
|
||||||
updatedAt: '2026-01-13',
|
updatedAt: '2026-01-14',
|
||||||
tags: ['database', 'read', 'query', 'select', 'data'],
|
tags: ['database', 'read', 'load', 'sqlite', 'data'],
|
||||||
complexity: 'intermediate',
|
complexity: 'intermediate',
|
||||||
estimatedDuration: 2000,
|
estimatedDuration: 500,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user