Skip to content
Weave templates

Security zones — shield + octagon

DMZ → app zone → data zone with shield gates, octagon STOP-on-fail, and arrow flows.

Template previewWeave
Rendering…

Make it your own.

{
  "nodes": [
    { "id":"u","type":"actor","label":"User","x":40,"y":120 },
    { "id":"f","type":"shield","label":"Firewall","x":220,"y":80,"fill":"#dbeafe","stroke":"#1d4ed8" },
    { "id":"w","type":"shield","label":"WAF","x":220,"y":200,"fill":"#dbeafe","stroke":"#1d4ed8" },
    { "id":"dmz","type":"container","label":"DMZ","x":380,"y":40,"width":280,"height":260,"fill":"rgba(254,243,199,0.4)","stroke":"#a16207" },
    { "id":"lb","type":"hexagon","label":"Load balancer","x":420,"y":100,"fill":"#fef3c7" },
    { "id":"web","type":"rounded","label":"Web tier","x":420,"y":220,"fill":"#dbeafe" },
    { "id":"app","type":"container","label":"App zone","x":700,"y":40,"width":260,"height":260,"fill":"rgba(220,252,231,0.4)","stroke":"#15803d" },
    { "id":"api","type":"rounded","label":"API","x":740,"y":100,"fill":"#dcfce7" },
    { "id":"workers","type":"rounded","label":"Workers","x":740,"y":220,"fill":"#dcfce7" },
    { "id":"data","type":"container","label":"Data zone","x":1000,"y":40,"width":260,"height":260,"fill":"rgba(252,231,243,0.4)","stroke":"#be185d" },
    { "id":"db","type":"cylinder","label":"Postgres","x":1040,"y":100,"fill":"#fce7f3" },
    { "id":"blob","type":"cylinder","label":"S3","x":1040,"y":220,"fill":"#fce7f3" },
    { "id":"deny","type":"octagon","label":"DENY","x":380,"y":340,"fill":"#fecaca","stroke":"#b91c1c","motion":"pulse" }
  ],
  "edges": [
    { "id":"e1","source":"u","target":"f","label":"https" },
    { "id":"e2","source":"f","target":"lb" },
    { "id":"e3","source":"lb","target":"web" },
    { "id":"e4","source":"web","target":"api" },
    { "id":"e5","source":"api","target":"workers" },
    { "id":"e6","source":"api","target":"db" },
    { "id":"e7","source":"workers","target":"blob" },
    { "id":"e8","source":"f","target":"deny","label":"blocked","style":{"stroke":"#b91c1c","strokeDasharray":"4 4"} }
  ]
}