You're viewing a demo portfolio

Join the waitlist
PRSM

create_diagram

Active

Tool of Flowgraf

declared in 0.1.1

Create a NEW architecture diagram from a graph that YOU author, and get back a shareable, editable canvas URL plus a rendered SVG and Mermaid. You produce only the SEMANTICS — nodes, the groups (VPC/cluster/...) they live in, and the directed edges between them. You do NOT lay anything out: never send x/y/position/pinned. A deterministic layout engine computes all geometry and an icon layer picks the pictures from each node's kind. kind.catalog is one of aws | gcp | azure | k8s | saas | generic, each with rich per-catalog kind.types (e.g. aws:lambda, gcp:bigquery, azure:cosmos_db, k8s:deployment, saas:kafka): - "aws" (api_gateway, lambda, s3, rds, dynamodb, sqs, bedrock, kinesis, fargate, eventbridge, aurora, ...). - "gcp" (compute_engine, gke, cloud_run, cloud_sql, spanner, firestore, bigquery, pubsub, dataflow, vertex_ai, ...). - "azure" (virtual_machine, aks, app_service, functions, blob_storage, sql_database, cosmos_db, service_bus, event_hubs, key_vault, ...). - "k8s" (pod, deployment, statefulset, daemonset, job, cronjob, service, ingress, configmap, secret, hpa, ...). - "saas" for hosted third-parties (redis, postgresql, mysql, mongodb, kafka, stripe, twilio, auth0, github, cloudflare, ...). - "generic" primitive when nothing branded fits: service, database, cache, queue, user, external_system, storage, gateway, function, note. - "generic" FLOWCHART kinds for processes/flowcharts: process, decision, terminator, data, document, subprocess. edge.kind is one of: request, response, async_event, data_flow, dependency, network, generic. WORKED EXAMPLE — a user hitting an API in a VPC that talks to Postgres: { "title": "Web API", "domain": "cloud_architecture", "graph": { "groups": [{ "id": "g_vpc", "label": "VPC", "type": "vpc" }], "nodes": [ { "id": "n_user", "label": "User", "kind": { "catalog": "generic", "type": "user" } }, { "id": "n_api", "label": "API", "kind": { "catalog": "aws", "type": "api_gateway" }, "parentId": "g_vpc" }, { "id": "n_db", "label": "Postgres", "kind": { "catalog": "aws", "type": "rds" }, "parentId": "g_vpc" } ], "edges": [ { "id": "e1", "source": "n_user", "target": "n_api", "kind": "request" }, { "id": "e2", "source": "n_api", "target": "n_db", "kind": "data_flow" } ] } } Returns { diagramId, url, svg, mermaid, version }. Give the user the url — opening it shows the same diagram on an editable canvas (anonymous; it's theirs to claim by signing in). To change the diagram afterwards, use get_diagram then edit_diagram.

Parameters schema

{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "title",
    "graph"
  ],
  "properties": {
    "graph": {
      "type": "object",
      "properties": {
        "edges": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "source",
              "target",
              "kind"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "kind": {
                "enum": [
                  "request",
                  "response",
                  "async_event",
                  "data_flow",
                  "dependency",
                  "network",
                  "generic"
                ],
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "source": {
                "type": "string",
                "minLength": 1,
                "description": "id of the source node."
              },
              "target": {
                "type": "string",
                "minLength": 1,
                "description": "id of the target node."
              },
              "directed": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "description": "Directed connections between node ids."
        },
        "nodes": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "label",
              "kind"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "Stable snake_case id you assign, e.g. n_api. Referenced by edges."
              },
              "kind": {
                "type": "object",
                "required": [
                  "catalog",
                  "type"
                ],
                "properties": {
                  "type": {
                    "type": "string",
                    "minLength": 1,
                    "description": "Catalog-specific type, e.g. api_gateway, rds, redis, service."
                  },
                  "catalog": {
                    "enum": [
                      "aws",
                      "gcp",
                      "azure",
                      "k8s",
                      "saas",
                      "generic"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "label": {
                "type": "string",
                "description": "Human label shown on the node, e.g. 'API Gateway'."
              },
              "parentId": {
                "type": "string",
                "minLength": 1,
                "description": "id of the group this node lives in (a VPC, cluster, ...)."
              }
            },
            "additionalProperties": false
          },
          "description": "The nodes (services, databases, users, ...)."
        },
        "groups": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "label",
              "type"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "description": "Stable snake_case id you assign, e.g. g_vpc."
              },
              "type": {
                "enum": [
                  "vpc",
                  "subnet",
                  "availability_zone",
                  "region",
                  "cluster",
                  "trust_boundary",
                  "logical"
                ],
                "type": "string"
              },
              "label": {
                "type": "string"
              },
              "style": {
                "type": "object",
                "properties": {
                  "color": {
                    "type": "string"
                  },
                  "dashed": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              "parentId": {
                "type": "string",
                "minLength": 1,
                "description": "id of the parent group, for nested containers."
              }
            },
            "additionalProperties": false
          },
          "description": "Containers that nodes live in (VPCs, clusters, ...)."
        }
      },
      "additionalProperties": false
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "description": "A short title for the diagram."
    },
    "domain": {
      "enum": [
        "cloud_architecture",
        "system_design",
        "sequence",
        "flow",
        "generic"
      ],
      "type": "string",
      "description": "Optional domain hint (default: generic)."
    }
  }
}

What this tool wraps· 6 endpoints

min confidence0.700.50

Parent server

Flowgraf

1/7 registries
View full server →