chore: import upstream snapshot with attribution
Validate YAML Workflows / Validate YAML Configuration Files (push) Has been cancelled
Validate YAML Workflows / Validate YAML Configuration Files (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
"""
|
||||
Synchronize YAML Configurations to VueGraph Database
|
||||
|
||||
This tool uploads local YAML workflow configurations from the yaml_instance/
|
||||
directory to the VueGraph database via the API endpoint. This is essential for
|
||||
making workflow configurations available to the frontend visualization system.
|
||||
|
||||
Purpose:
|
||||
- Ensures the database reflects the latest YAML configurations
|
||||
- Required after modifying workflow YAML files to see changes in the UI
|
||||
- Useful for development and deployment workflows
|
||||
|
||||
Usage:
|
||||
python tools/sync_vuegraphs.py
|
||||
# or via Makefile:
|
||||
make sync
|
||||
"""
|
||||
|
||||
import os
|
||||
import glob
|
||||
import requests
|
||||
import yaml
|
||||
from pathlib import Path
|
||||
|
||||
# Configuration
|
||||
API_URL = "http://localhost:6400/api/vuegraphs/upload/content"
|
||||
YAML_DIR = "yaml_instance"
|
||||
|
||||
|
||||
def sync_yaml_to_vuegraphs():
|
||||
"""Reads all YAML files and uploads them to the VueGraph database."""
|
||||
print(f"Syncing YAML files from {YAML_DIR} to {API_URL}...")
|
||||
|
||||
yaml_files = glob.glob(os.path.join(YAML_DIR, "*.yaml"))
|
||||
|
||||
for file_path in yaml_files:
|
||||
try:
|
||||
filename = Path(file_path).stem # simulation_hospital_lmstudio
|
||||
|
||||
with open(file_path, 'r', encoding='utf-8') as f:
|
||||
content = f.read()
|
||||
|
||||
# Basic validation to ensure it's a valid YAML
|
||||
try:
|
||||
yaml.safe_load(content)
|
||||
except yaml.YAMLError as e:
|
||||
print(f"Skipping {filename}: Invalid YAML - {e}")
|
||||
continue
|
||||
|
||||
# Upload to VueGraph API
|
||||
payload = {"filename": filename, "content": content}
|
||||
|
||||
response = requests.post(API_URL, json=payload)
|
||||
|
||||
if response.status_code == 200:
|
||||
print(f"Synced: {filename}")
|
||||
else:
|
||||
print(f"Failed: {filename} - {response.status_code} {response.text}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Error processing {file_path}: {e}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sync_yaml_to_vuegraphs()
|
||||
Reference in New Issue
Block a user