Comprehensive examples demonstrating RoboSystems' graph database capabilities across different domains and use cases.
# Make sure RoboSystems is running
just start
# Run all demos in sequence
just demo
# Or run individual demos
just demo-roboledger
just demo-custom-graph
just demo-sec NVDA 2025Query real SEC XBRL financial data from public companies.
Features:
- Loads SEC 10-K/10-Q filings from EDGAR
- Processes XBRL financial statements
- Queries balance sheets, income statements, and cash flows
- Demonstrates financial fact analysis
Usage:
# Load and query NVIDIA 2025 financials (includes queries)
just demo-sec NVDA 2025
# Load NVIDIA data without running queries
just demo-sec NVDA 2025 true
# Query SEC data with specific examples
just demo-sec-query
# Run all available query examples
just demo-sec-query trueAvailable Tickers: Any publicly traded US company with SEC filings (e.g., AAPL, MSFT, GOOGL, TSLA, NVDA)
What It Does:
- Fetches SEC filing from EDGAR API
- Processes XBRL data into graph format
- Loads entities, elements, facts, and relationships
- Runs example queries on financial data
Location: /examples/sec_demo/
Documentation: See README.md for detailed guide and query examples
Demonstrates custom schema creation with people, companies, and projects.
Features:
- Custom node types (Person, Company, Project)
- Custom relationships (employment, collaboration, participation)
- Flexible schema definition via JSON
- Demonstrates generic graph capabilities
Usage:
# Run with new graph (default)
just demo-custom-graph
# Create new user and graph
just demo-custom-graph new-user,new-graph
# Skip verification queries
just demo-custom-graph skip-queriesWhat It Creates:
- 50 Person nodes (name, age, email, interests)
- 10 Company nodes (name, industry, location, size)
- 15 Project nodes (name, description, status, budget)
- PERSON_WORKS_FOR_COMPANY relationships (employment)
- PERSON_WORKS_ON_PROJECT relationships (project teams)
- COMPANY_SPONSORS_PROJECT relationships (sponsorship)
What It Does:
- Sets up user credentials (or reuses existing)
- Creates graph with custom schema from schema.json
- Generates synthetic graph data
- Uploads and ingests via staging tables
- Runs example queries (org charts, collaborations, projects)
Location: /examples/custom_graph_demo/
Documentation: See README.md for step-by-step guide
Customization: Edit schema.json to define your own node types and relationships
All demos share a common credential system for authentication.
Setup Credentials:
# Create new user and API key
just demo-user
# Create with specific details
just demo-user --name "Your Name" --email your@email.com
# Force create new credentials
just demo-user --forceCredentials Location: .local/config.json
Shared Across Demos: All demos use the same credentials file, so you only need to run this once.
Most demos accept comma-separated flags to control behavior. Default behavior reuses existing credentials and graph.
Available Flags:
new-user- Create a new user (impliesnew-graph)new-graph- Create a new graphskip-queries- Skip verification queries after ingestion
Examples:
# Default: reuse existing user and graph, regenerate data
just demo-custom-graph
# Create new graph for existing user
just demo-custom-graph new-graph
# Create new user and graph
just demo-custom-graph new-user,new-graph
# Skip queries
just demo-custom-graph skip-queriesEach demo has a main.py that runs all steps automatically. For manual control, you can run individual numbered scripts:
Custom Graph Demo:
cd examples/custom_graph_demo
uv run 01_setup_credentials.py
uv run 02_create_graph.py
uv run 03_generate_data.py
uv run 04_upload_ingest.py
uv run 05_query_graph.py --allNote: The just commands are the recommended way to run demos as they handle all setup automatically.
All demos follow the same data ingestion pattern:
- Generate Parquet Files - Create node and relationship data
- Upload to S3 - Get presigned URLs and upload files
- Create Staging Tables - Load Parquet files into DuckDB staging
- Validate Data - Query staging tables with SQL
- Ingest to Graph - Load from DuckDB into graph database
This pipeline demonstrates the production data loading workflow used by RoboSystems.
Successful Demo Output:
✓ User authenticated
✓ Graph created: kg1a2b3c4d5e
✓ Data generated: 6 files
✓ Files uploaded to S3
✓ Staging tables created
✓ Data ingested to graph
✓ Queries executed successfully
Example Query Results:
- Trial Balance: 20 accounts
- Income Statement: Net Income $42,000
- Balance Sheet: Total Assets $125,000
Common Issues:
- "User already exists" - Default behavior reuses existing user, or use
new-userflag - "Graph already exists" - Default behavior reuses existing graph, or use
new-graphflag - "API connection failed" - Ensure RoboSystems is running (
just start) - "Permission denied" - Check credentials in config.json
After running the demos:
-
Explore the Data:
- Use the query examples as templates
- Modify queries to explore different patterns
- Try the Graph API directly via
just graph-query
-
Integrate with Applications:
- Check out the Python Client
- Try the TypeScript Client
- Explore the MCP Client
-
Build Your Own:
- Use
custom_graph_demoas a template - Define your own schema in JSON
- Generate data specific to your domain
- Load and query via the same pipeline
- Use
- Main README - RoboSystems overview and setup
- API Documentation - REST API reference
- Graph API README - Graph database system
- Schema System - Schema definitions
- Wiki - Detailed guides and tutorials
For issues or questions:
- GitHub Issues
- Discussions
- Check logs:
just logs apiorjust logs worker