Outil en ligne de commande qui transforme les metadata Salesforce Flow (XML) en carte d’exécution lisible.
Understand your Salesforce automations in seconds.
cargo install --path .
# Exécuter sur un fichier *.flow-meta.xml
flow-map force-app/main/default/flows/MonFlow.flow-meta.xml --format markdown
# Sortir un JSON
flow-map force-app/main/default/flows/MonFlow.flow-meta.xml --format json --output flow.json
# Sortir un graphe brut (WIP)
flow-map force-app/main/default/flows/MonFlow.flow-meta.xml --format graph-json --output flow-graph.json
cargo install --path .
# ou depuis le repo
cargo build --release
# binaire: target/release/flow-map
# Analyser un flow (fichier .flow-meta.xml)
flow-map force-app/main/default/flows/cheminlocal.flow-meta.xml
# Format Markdown
flow-map flow.xml --format markdown
# Diagramme Mermaid (pour GitHub/GitLab)
flow-map flow.xml --format mermaid
# Sortie JSON (résumé + execution path + champs modifiés)
flow-map flow.xml --format json
# Sortie JSON "graphe brut" (work in progress)
flow-map flow.xml --format graph-json --output flow-graph.json
# Dossier de flows (tous les *.flow-meta.xml)
flow-map force-app/main/default/flows/
# Résolution des subflows (cherche les flows enfants dans un dossier)
flow-map flow.xml --flow-dir force-app/main/default/flowsFlow: Screenflow - Invite To Platform
Type: Flow
Execution path:
1. Start Screen
2. Record Lookup: Get Contact (Contact)
3. Record Lookup: Get Related Account (Account)
4. Screen Input
5. Decision: Validate URL: URL Valid, Rule_Invalid
...
Fields modified by this flow:
(vide si pas de recordUpdates/recordCreates)
flow-map ne se connecte pas à une org : il lit uniquement des fichiers *.flow-meta.xml sur le disque.
Aucune configuration Salesforce (org, alias, etc.) n’est requise dans flow-map : tout repose sur les XML déjà présents dans le projet (soit après un retrieve sur votre disque ou une autre opération).
- Rust 1.70+
- A noter que pour compiler sur macOS, la licence Xcode doit être acceptée (
sudo xcodebuild -license).
execution_pathest une vision linéarisée (pour mieux lire), donc certains aspects de la structure (ex: boucles) peuvent être moins visibles.--format graph-json(WIP) expose le graphe brut (nodes + edges) pour des analyses plus avancées.- Les types de nœuds Salesforce supportés dépendent du contenu disponible dans
*.flow-meta.xml.
N'hésitez pas à contribuer si vous le souhaitez (PR/ Issues, etc.)
@AlexandreKuzo