Generates DrawIO XML diagrams for Google Cloud Platform architectures from text descriptions or images. Analyzes existing .drawio files to extract GCP components. Use for GCP architecture diagrams, cloud infrastructure documentation, or when converting GCP diagram images to editable DrawIO format.
Generates DrawIO XML diagrams for Google Cloud Platform architectures from text descriptions or images. Analyzes existing .drawio files to extract GCP components. Use for GCP architecture diagrams, cloud infrastructure documentation, or when converting GCP diagram images to editable DrawIO format.
license
MIT
compatibility
Requires image analysis capability for image conversion. Scripts require Python 3 and Bash. DrawIO Desktop optional for validation.
Icon Pattern: Unlike AWS, GCP uses a single icon pattern for all services — there is no service vs instance icon distinction. The same shape=mxgraph.gcp2.{name} is used whether labeling the service itself ("Cloud Run") or a specific instance ("Cloud Run (API Handler)"). Differentiate by label text only.
Common GCP Services
Service
Shape Code
Cloud Run
mxgraph.gcp2.cloud_run
BigQuery
mxgraph.gcp2.bigquery
Cloud Storage
mxgraph.gcp2.cloud_storage
Vertex AI
mxgraph.gcp2.cloud_machine_learning
Cloud Scheduler
mxgraph.gcp2.cloud_scheduler
Apigee
mxgraph.gcp2.apigee_api_platform
Pub/Sub
mxgraph.gcp2.cloud_pubsub
Cloud SQL
mxgraph.gcp2.cloud_sql
GKE
mxgraph.gcp2.compute_engine
Cloud Functions
mxgraph.gcp2.cloud_functions
GCP Container Types
Container
Use Case
gcp_project
Main project boundary (two-cell pattern)
gcp_vpc_sc
VPC Service Controls perimeter (green border)
gcp_region
Regional grouping
gcp_zone
Zone grouping
logical_group_dashed
Logical grouping with dashed border
logical_group_solid
Solid border grouping
subnet
Subnet boundary
firewall_rules
Firewall rules grouping
instance_group
Instance group container
Task 1: Analyze a DrawIO File
Use this workflow to extract and document all components from an existing DrawIO file.
Steps
Read the file - Load the .drawio XML file
Parse structure - Extract all <mxCell> elements
Identify shapes - Find cells with vertex="1"
Identify connections - Find cells with edge="1"
Extract styles - Parse style strings for each element
Map hierarchy - Build container/child relationships using parent attribute
Generate report - Output findings in structured format
Input
Path to .drawio file
Output
Generate a Markdown report with:
# DrawIO Analysis Report## Summary- Total shapes: X
- Total connections: Y
- Containers: Z
## Shape Inventory
| ID | Label | Type | Position | Parent |
|----|-------|------|----------|--------|
| abc | Cloud Run | mxgraph.gcp2.cloud_run | (100,200) | vpc1 |
## Connection Matrix
| From | To | Label | Type |
|------|-----|-------|------|
| Cloud Run | BigQuery | API | solid |
## Container Hierarchy
- VPC-SC (vpc1)
- Cloud Run (run1)
- Cloud Run (run2)
- BigQuery (bq1)
## Style Analysis
### Unique Shapes Found
- mxgraph.gcp2.cloud_run (4 instances)
- mxgraph.gcp2.bigquery (2 instances)
Task 2: Convert Image to DrawIO
Use this workflow to recreate a GCP architecture diagram from an image.
Steps
Analyze image - Identify all visual elements:
GCP service icons (shape, color, label)
Containers/boundaries (color, border style)
Connections (solid, dashed, arrows)
Labels and text
Map to library - For each identified element:
Look up in assets/gcp-icons.json by visual signature or label
Match containers to assets/containers.json
Note any unrecognized elements
Estimate layout - Determine positions:
Identify container boundaries first
Place icons within containers
Estimate x,y coordinates and dimensions
Standard icon size: 50x50 pixels
Generate XML - Build the DrawIO structure:
Start with base template from assets/templates/drawio-base.xml
Add containers first (they become parents)
Add service icons with correct parent references
Add connections between shapes
Create confidence report - Document accuracy:
List all identified components
Note any uncertain matches
Flag potential issues
Input
GCP architecture diagram image (PNG/JPG)
Output
Valid .drawio XML file
Confidence report (Markdown)
Confidence Report Format
# Conversion Confidence Report## Overall Confidence: 85%## Identified Components### High Confidence (>90%)- Cloud Run x4 - Clear icon match
- BigQuery x2 - Clear icon match
- VPC-SC container - Green border, correct label
### Medium Confidence (70-90%)- Vertex AI Search - Icon similar, label confirms
### Low Confidence (<70%)- Unknown icon at position (300, 400) - Mapped to generic service
## Connection Accuracy- 12/14 connections clearly visible
- 2 connections inferred from layout
## Notes- "Same Instance" dashed container identified
- Bidirectional arrows on 3 connections
Task 3: Create DrawIO from Description
Use this workflow to generate a new GCP diagram from text specifications.
Steps
Parse requirements - Extract from description:
Required GCP services
Container/grouping needs
Connection requirements
Layout preferences
Select components - From libraries:
Look up services in assets/gcp-icons.json
Choose containers from assets/containers.json
Select connection styles
Plan layout - Design the arrangement:
Determine canvas size
Position containers first
Arrange services logically (left-to-right data flow, top-to-bottom hierarchy)
Standard spacing: 100px between 50x50 icons
Generate XML - Build the diagram:
Use assets/templates/drawio-base.xml as starting point
Add elements in order: containers, services, connections
Assign unique IDs to all elements
Validate - Check the output:
All requested components present
Connections reference valid IDs
Layout is logical and readable
Input
Text description of desired GCP architecture
Output
Valid .drawio XML file
Example Input
Create a GCP architecture with:
- VPC-SC container
- Cloud Scheduler triggering Cloud Run
- Cloud Run connecting to BigQuery and Cloud Storage
- Vertex AI Search connected to BigQuery