Descrizione
Watcher filesystem enterprise basato su chokidar (battle-tested in Webpack, Parcel, Vite e altri 100M+ downloads/anno) che firma il workflow quando un file viene creato (add), modificato (change), o cancellato (unlink) in una directory monitorata del volume persistente del tenant — il modulo "Drop folder" tipico di gestionali Italiani, dove un operatore "lascia cadere" un PDF/CSV/XLS nella cartella di rete e il sistema lo processa automaticamente entro pochi secondi senza richiedere upload via UI. Implementazione: chokidar usa fs.watch nativo di Node.js con fallback su polling per filesystem che non supportano inotify (es. mount NFS, container Docker overlay2 in alcune config Kubernetes), garantendo cross-platform consistency (Linux inotify, macOS FSEvents, Windows ReadDirectoryChangesW). Debounce configurabile (default 300ms) per evitare event flood quando un'applicazione scrive il file a chunks (es. SFTP upload progressivo, browser drag-drop multi-MB) — il trigger attende stabilità della dimensione prima di firmare il workflow, evitando di processare file half-written. Sicurezza: path allowlist obbligatorio (root path della cartella + descendant), NO escape verso /etc o /proc, NO symlink resolution (se la cartella contiene link simbolici, vengono ignorati per evitare path traversal); ownership check verifica che il file appartenga al tenant utente; cap su dimensione massima configurabile (default 100MB) per evitare DoS via upload di file GB. Filtri: pattern glob standard (*.csv, *.pdf, **/contracts/*.docx, !temp/*), eventi sottoscritti (add+change+unlink in combinazioni). Input al workflow downstream: { path (absolute path da root), name (basename), extension, sizeBytes, mtime (ISO 8601), event (add|change|unlink), checksumSha256? (utile per dedup di file rinominati) }. Use case: ingest automatico di CSV uploadati via SFTP dal commercialista esterno alle 23:00 nella cartella drop/ → workflow parse + INSERT in db_query bulk; monitoraggio della cartella shared/pec-fatture-2026/ → ogni nuovo PDF triggers OCR via action_vision_extract + creazione fattura Odoo via action_odoo_create_lead; processing immediato di video caricati dall'utente in dropbox/ → action_video_metadata per estrarre durata e codec → action_ffmpeg_thumbnail per genere preview JPG; data ingestion sistema SAP che esporta giornalmente CSV in formato fixed-width nella cartella di scambio.
