Compose-ready workspace: packages/zappier (rate card, portal, Stripe), packages/verae-zapier-middleware (timestamp + NATS), packages/verae-zapier (CLI app), vendor/zapier-platform, and research/zapier vendor corpus. Gate 0 structure checks pass. Product code and research are not yet wired.
79 lines
9.9 KiB
XML
79 lines
9.9 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="1100" height="680"
|
|
viewBox="0 0 1100 680" role="img" aria-label="High-level architecture: Zapier to Verae via middleware">
|
|
<title>High-level architecture: Zapier to Verae via middleware</title>
|
|
<defs>
|
|
<marker id="arrow" viewBox="0 0 10 10" refX="9" refY="5"
|
|
markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
|
<path d="M 0 0 L 10 5 L 0 10 z" fill="#1A6B6B"/>
|
|
</marker>
|
|
<marker id="arrow-navy" viewBox="0 0 10 10" refX="9" refY="5"
|
|
markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
|
<path d="M 0 0 L 10 5 L 0 10 z" fill="#0F2744"/>
|
|
</marker>
|
|
<marker id="arrow-accent" viewBox="0 0 10 10" refX="9" refY="5"
|
|
markerWidth="7" markerHeight="7" orient="auto-start-reverse">
|
|
<path d="M 0 0 L 10 5 L 0 10 z" fill="#C2410C"/>
|
|
</marker>
|
|
</defs>
|
|
<rect width="100%" height="100%" fill="#F8FAFC"/>
|
|
<text x="24" y="28" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="700" fill="#1A6B6B" text-anchor="start">HIGH-LEVEL ARCHITECTURE</text>
|
|
<text x="24" y="50" font-family="Helvetica, Arial, sans-serif" font-size="20" font-weight="700" fill="#0F2744" text-anchor="start">Verae Time x Zapier</text>
|
|
<text x="24" y="70" font-family="Helvetica, Arial, sans-serif" font-size="12" font-weight="500" fill="#64748B" text-anchor="start">Zapier never calls api.veraetime.net and never speaks NATS. HTTPS only at the public edge.</text>
|
|
<rect x="20" y="90" width="1060" height="150" rx="12" fill="#FFF1E6" fill-opacity="1" stroke="#F0D2B8" stroke-width="1.2"/>
|
|
<text x="36" y="112" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="700" fill="#C2410C" text-anchor="start">PUBLIC · Zapier cloud</text>
|
|
<rect x="20" y="258" width="700" height="280" rx="12" fill="#E8F1F8" fill-opacity="1" stroke="#C5D6E8" stroke-width="1.2"/>
|
|
<text x="36" y="280" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="700" fill="#1A6B6B" text-anchor="start">YOUR INFRASTRUCTURE · public HTTPS edge + private workers</text>
|
|
<rect x="740" y="258" width="340" height="280" rx="12" fill="#F3EDE0" fill-opacity="1" stroke="#E0D2B4" stroke-width="1.2"/>
|
|
<text x="756" y="280" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="700" fill="#B45309" text-anchor="start">PRIVATE NETWORK</text>
|
|
<rect x="20" y="556" width="700" height="104" rx="12" fill="#E8F6EE" fill-opacity="1" stroke="#B7DCC7" stroke-width="1.2"/>
|
|
<text x="36" y="578" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="700" fill="#15803D" text-anchor="start">VERAE TIMESTAMPING SERVICE</text>
|
|
<rect x="740" y="556" width="340" height="104" rx="12" fill="#FFF1E6" fill-opacity="1" stroke="#F0D2B8" stroke-width="1.2"/>
|
|
<text x="756" y="578" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="700" fill="#C2410C" text-anchor="start">ZAPIER REST HOOKS</text>
|
|
<rect x="40" y="128" width="150" height="88" rx="8" fill="#FFFFFF" fill-opacity="1" stroke="#0F2744" stroke-width="1.4"/>
|
|
<text x="115" y="158" font-family="Helvetica, Arial, sans-serif" font-size="14" font-weight="700" fill="#0F2744" text-anchor="middle">User</text>
|
|
<text x="115" y="178" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">Zap editor</text>
|
|
<text x="115" y="192" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">connection form</text>
|
|
<rect x="250" y="122" width="360" height="100" rx="8" fill="#FFFFFF" fill-opacity="1" stroke="#0F2744" stroke-width="1.8"/>
|
|
<text x="430" y="148" font-family="Helvetica, Arial, sans-serif" font-size="14" font-weight="700" fill="#0F2744" text-anchor="middle">Zapier Platform CLI app</text>
|
|
<text x="430" y="168" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">scratch/veraetime (session TS) or verae-zapier (zmw_ JS)</text>
|
|
<text x="430" y="183" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">runs on Zapier cloud when a Zap step executes</text>
|
|
<rect x="660" y="128" width="180" height="88" rx="8" fill="#FFFFFF" fill-opacity="1" stroke="#94A3B8" stroke-width="1.4"/>
|
|
<text x="750" y="158" font-family="Helvetica, Arial, sans-serif" font-size="13" font-weight="700" fill="#0F2744" text-anchor="middle">Zap trigger</text>
|
|
<text x="750" y="178" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">Timestamp Completed</text>
|
|
<text x="750" y="192" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">hooks.zapier.com</text>
|
|
<line x1="190" y1="172" x2="250" y2="172" stroke="#1A6B6B" stroke-width="1.8" marker-end="url(#arrow)"/>
|
|
<text x="220.0" y="161.0" font-family="Helvetica, Arial, sans-serif" font-size="10" font-weight="600" fill="#134848" text-anchor="middle">configure / run</text>
|
|
<line x1="610" y1="172" x2="660" y2="172" stroke="#1A6B6B" stroke-width="1.8" marker-end="url(#arrow)"/>
|
|
<text x="635.0" y="161.0" font-family="Helvetica, Arial, sans-serif" font-size="10" font-weight="600" fill="#134848" text-anchor="middle">hook fires Zap</text>
|
|
<rect x="48" y="300" width="644" height="120" rx="8" fill="#FFFFFF" fill-opacity="1" stroke="#0F2744" stroke-width="1.8"/>
|
|
<text x="370" y="326" font-family="Helvetica, Arial, sans-serif" font-size="14" font-weight="700" fill="#0F2744" text-anchor="middle">verae-zapier-middleware /zapier/v1/*</text>
|
|
<text x="370" y="348" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">Auth bridge · tenants · entitlements · rate limits · REST Hook store</text>
|
|
<text x="370" y="364" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">GET /health POST /auth/login GET /auth/me POST /timestamp[/wait|/batch]</text>
|
|
<text x="370" y="380" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">POST /verify GET /status/{jobId} POST/DELETE /webhooks/*</text>
|
|
<line x1="430" y1="222" x2="430" y2="300" stroke="#1A6B6B" stroke-width="1.8" marker-end="url(#arrow)"/>
|
|
<text x="438" y="265.0" font-family="Helvetica, Arial, sans-serif" font-size="10" font-weight="600" fill="#134848" text-anchor="start">HTTPS Bearer zmw_ / zmt_</text>
|
|
<rect x="760" y="300" width="300" height="92" rx="8" fill="#FFFFFF" fill-opacity="1" stroke="#0F2744" stroke-width="1.8"/>
|
|
<text x="910" y="328" font-family="Helvetica, Arial, sans-serif" font-size="14" font-weight="700" fill="#0F2744" text-anchor="middle">NATS JetStream</text>
|
|
<text x="910" y="348" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">ZAPIER_JOBS · EVENTS · WEBHOOKS</text>
|
|
<text x="910" y="362" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">never on the public internet</text>
|
|
<line x1="692" y1="346" x2="760" y2="346" stroke="#1A6B6B" stroke-width="1.8" marker-end="url(#arrow)"/>
|
|
<text x="726.0" y="335.0" font-family="Helvetica, Arial, sans-serif" font-size="10" font-weight="600" fill="#134848" text-anchor="middle">publish (private)</text>
|
|
<rect x="760" y="412" width="300" height="108" rx="8" fill="#FFFFFF" fill-opacity="1" stroke="#0F2744" stroke-width="1.4"/>
|
|
<text x="910" y="438" font-family="Helvetica, Arial, sans-serif" font-size="14" font-weight="700" fill="#0F2744" text-anchor="middle">Workers</text>
|
|
<text x="910" y="458" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">job-poller jobs.watch</text>
|
|
<text x="910" y="473" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">event-router jobs.events</text>
|
|
<text x="910" y="488" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="400" fill="#334155" text-anchor="middle">webhook-deliver webhooks.deliver</text>
|
|
<line x1="910" y1="392" x2="910" y2="412" stroke="#1A6B6B" stroke-width="1.8" marker-end="url(#arrow)"/>
|
|
<rect x="48" y="596" width="644" height="50" rx="8" fill="#FFFFFF" fill-opacity="1" stroke="#0F2744" stroke-width="1.8"/>
|
|
<text x="370" y="616" font-family="Helvetica, Arial, sans-serif" font-size="12" font-weight="700" fill="#0F2744" text-anchor="middle">api.veraetime.net</text>
|
|
<text x="370" y="634" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="500" fill="#334155" text-anchor="middle">POST /auth/login POST /api/timestamp 202 {jobId} GET /api/status/{jobId} POST /api/verify</text>
|
|
<line x1="220" y1="420" x2="220" y2="596" stroke="#1A6B6B" stroke-width="1.8" marker-end="url(#arrow)"/>
|
|
<text x="228" y="512.0" font-family="Helvetica, Arial, sans-serif" font-size="10" font-weight="600" fill="#134848" text-anchor="start">sync HTTPS</text>
|
|
<line x1="820" y1="520" x2="370" y2="596" stroke="#1A6B6B" stroke-width="1.8" marker-end="url(#arrow)"/>
|
|
<text x="595.0" y="548.0" font-family="Helvetica, Arial, sans-serif" font-size="10" font-weight="600" fill="#134848" text-anchor="middle">poll / create</text>
|
|
<rect x="760" y="596" width="300" height="50" rx="8" fill="#FFFFFF" fill-opacity="1" stroke="#0F2744" stroke-width="1.4"/>
|
|
<text x="910" y="626" font-family="Helvetica, Arial, sans-serif" font-size="11" font-weight="600" fill="#0F2744" text-anchor="middle">POST hooks.zapier.com timestamp.completed</text>
|
|
<line x1="910" y1="520" x2="910" y2="596" stroke="#C2410C" stroke-width="1.8" marker-end="url(#arrow)"/>
|
|
<text x="918" y="562.0" font-family="Helvetica, Arial, sans-serif" font-size="10" font-weight="600" fill="#134848" text-anchor="start">HTTPS egress</text>
|
|
</svg>
|