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',
|
||||
name: 'Sauvegarder en BDD',
|
||||
name: 'Sauvegarder Données',
|
||||
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: '💾',
|
||||
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: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
description: 'Mode d\'insertion',
|
||||
default: 'insert',
|
||||
options: ['insert', 'upsert', 'update'],
|
||||
description: 'Mode de sauvegarde',
|
||||
default: 'cle_valeur',
|
||||
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: [
|
||||
{
|
||||
name: 'Enregistrer facture',
|
||||
description: 'Sauvegarder les données d\'une facture extraite',
|
||||
name: 'Sauvegarder configuration',
|
||||
description: 'Stocker une valeur de configuration',
|
||||
parameters: {
|
||||
source_variable: 'facture_data',
|
||||
table_name: 'factures',
|
||||
field_mapping: '{"numero": "num_facture", "montant": "total_ttc", "date": "date_facture"}',
|
||||
mode: 'insert'
|
||||
mode: 'cle_valeur',
|
||||
cle: 'config.derniere_execution',
|
||||
valeur: '2026-01-14T10:30:00',
|
||||
},
|
||||
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: {
|
||||
version: '3.0.0',
|
||||
author: 'Dom, Alice, Kiro',
|
||||
createdAt: '2026-01-13',
|
||||
updatedAt: '2026-01-13',
|
||||
tags: ['database', 'save', 'persist', 'insert', 'data'],
|
||||
complexity: 'advanced',
|
||||
estimatedDuration: 3000,
|
||||
version: '3.1.0',
|
||||
author: 'Dom, Claude',
|
||||
createdAt: '2026-01-14',
|
||||
updatedAt: '2026-01-14',
|
||||
tags: ['database', 'save', 'persist', 'sqlite', 'data'],
|
||||
complexity: 'intermediate',
|
||||
estimatedDuration: 500,
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'db_read_data',
|
||||
name: 'Lire depuis BDD',
|
||||
name: 'Charger Données',
|
||||
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: '📖',
|
||||
parameters: {
|
||||
table_name: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
description: 'Nom de la table à interroger',
|
||||
default: '',
|
||||
},
|
||||
query_filter: {
|
||||
mode: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
description: 'Filtre SQL WHERE (sans le mot-clé WHERE)',
|
||||
default: '',
|
||||
description: 'Mode de chargement',
|
||||
default: 'cle_valeur',
|
||||
options: ['cle_valeur', 'collection', 'sql', 'lister'],
|
||||
},
|
||||
columns: {
|
||||
cle: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
description: 'Colonnes à récupérer (séparées par virgule, ou * pour tout)',
|
||||
default: '*',
|
||||
description: 'Clé à récupérer pour le mode clé-valeur',
|
||||
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',
|
||||
required: false,
|
||||
description: 'Nombre maximum de lignes',
|
||||
description: 'Nombre maximum de résultats',
|
||||
default: 100,
|
||||
min: 1,
|
||||
max: 10000,
|
||||
},
|
||||
variable_name: {
|
||||
type: 'string',
|
||||
required: true,
|
||||
description: 'Variable pour stocker les résultats',
|
||||
default: 'db_results',
|
||||
dernier_seulement: {
|
||||
type: 'boolean',
|
||||
required: false,
|
||||
description: 'Récupérer uniquement le dernier enregistrement',
|
||||
default: false,
|
||||
},
|
||||
connection_name: {
|
||||
requete_sql: {
|
||||
type: 'string',
|
||||
required: false,
|
||||
description: 'Nom de la connexion BDD configurée',
|
||||
default: 'default',
|
||||
description: 'Requête SQL SELECT pour le mode avancé',
|
||||
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: [
|
||||
{
|
||||
name: 'Récupérer client par email',
|
||||
description: 'Chercher un client dans la base par son email',
|
||||
name: 'Charger configuration',
|
||||
description: 'Récupérer une valeur de configuration',
|
||||
parameters: {
|
||||
table_name: 'clients',
|
||||
query_filter: "email = '${email_extrait}'",
|
||||
columns: 'id, nom, prenom, telephone',
|
||||
variable_name: 'client_info'
|
||||
mode: 'cle_valeur',
|
||||
cle: 'config.derniere_execution',
|
||||
variable_sortie: 'date_derniere_exec',
|
||||
},
|
||||
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: {
|
||||
version: '3.0.0',
|
||||
author: 'Dom, Alice, Kiro',
|
||||
createdAt: '2026-01-13',
|
||||
updatedAt: '2026-01-13',
|
||||
tags: ['database', 'read', 'query', 'select', 'data'],
|
||||
version: '3.1.0',
|
||||
author: 'Dom, Claude',
|
||||
createdAt: '2026-01-14',
|
||||
updatedAt: '2026-01-14',
|
||||
tags: ['database', 'read', 'load', 'sqlite', 'data'],
|
||||
complexity: 'intermediate',
|
||||
estimatedDuration: 2000,
|
||||
estimatedDuration: 500,
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user