Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/knut

.nornir/assets/flight-sql.svg

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 920 470" font-family="-apple-system,Segoe UI,Roboto,sans-serif" font-size="14">
  <defs>
    <marker id="a" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto">
      <path d="M0,0 L7,3 L0,6 Z" fill="#555"/>
    </marker>
  </defs>
  <text x="24" y="30" font-weight="700" font-size="16">Cypher over Arrow Flight SQL — knut graphar-flight</text>

  <!-- auth side box -->
  <rect x="238" y="52" width="186" height="62" rx="8" fill="#fdf7e8" stroke="#b3902b" stroke-width="1.5"/>
  <text x="331" y="78" text-anchor="middle" font-weight="600">auth · AuthConfig</text>
  <text x="331" y="98" text-anchor="middle" fill="#555" font-size="12">interceptor + do_handshake</text>

  <!-- main pipeline row -->
  <!-- client -->
  <rect x="24" y="150" width="158" height="68" rx="8" fill="#eef3fb" stroke="#2b5fb3" stroke-width="1.5"/>
  <text x="103" y="178" text-anchor="middle" font-weight="600">client</text>
  <text x="103" y="198" text-anchor="middle" fill="#555" font-size="12">ADBC · ODBC · Power BI</text>
  <!-- flight sql service -->
  <rect x="238" y="150" width="186" height="68" rx="8" fill="#eefaf0" stroke="#2f8f4e" stroke-width="1.5"/>
  <text x="331" y="178" text-anchor="middle" font-weight="600">CypherFlightService</text>
  <text x="331" y="198" text-anchor="middle" fill="#555" font-size="12">GetFlightInfo · DoGet</text>
  <!-- resolve -->
  <rect x="480" y="150" width="196" height="68" rx="8" fill="#f6eefb" stroke="#7a3fb3" stroke-width="1.5"/>
  <text x="578" y="178" text-anchor="middle" font-weight="600">registry.resolve_table</text>
  <text x="578" y="198" text-anchor="middle" fill="#555" font-size="12">SELECT * FROM name → Cypher</text>
  <!-- falkor -->
  <rect x="732" y="150" width="160" height="68" rx="8" fill="#fdf2ec" stroke="#c26a2b" stroke-width="1.5"/>
  <text x="812" y="178" text-anchor="middle" font-weight="600">FalkorExecutor::query</text>
  <text x="812" y="198" text-anchor="middle" fill="#555" font-size="12">GRAPH.QUERY (RESP)</text>

  <!-- bottom row -->
  <!-- response_to_batch -->
  <rect x="732" y="320" width="160" height="64" rx="8" fill="#eef3fb" stroke="#2b5fb3" stroke-width="1.5"/>
  <text x="812" y="347" text-anchor="middle" font-weight="600">response_to_batch</text>
  <text x="812" y="366" text-anchor="middle" fill="#555" font-size="12">RESP rows → Arrow</text>
  <!-- export -->
  <rect x="430" y="320" width="250" height="64" rx="8" fill="#f6eefb" stroke="#7a3fb3" stroke-width="1.5"/>
  <text x="555" y="347" text-anchor="middle" font-weight="600">export_cypher / _chunked</text>
  <text x="555" y="366" text-anchor="middle" fill="#555" font-size="12">→ GraphAr file · Iceberg (skade)</text>

  <!-- arrows: auth -> flight -->
  <path d="M331,114 L331,150" fill="none" stroke="#555" stroke-width="1.5" marker-end="url(#a)"/>
  <text x="339" y="136" fill="#b3902b" font-size="11">enforce</text>
  <!-- client -> flight -->
  <path d="M182,184 L238,184" fill="none" stroke="#555" stroke-width="1.5" marker-end="url(#a)"/>
  <text x="185" y="176" fill="#2f8f4e" font-size="11">Cypher / SELECT</text>
  <!-- flight -> resolve -->
  <path d="M424,184 L480,184" fill="none" stroke="#555" stroke-width="1.5" marker-end="url(#a)"/>
  <!-- resolve -> falkor -->
  <path d="M676,184 L732,184" fill="none" stroke="#555" stroke-width="1.5" marker-end="url(#a)"/>
  <text x="668" y="142" fill="#7a3fb3" font-size="11">resolved Cypher</text>
  <!-- falkor -> response_to_batch -->
  <path d="M812,218 L812,320" fill="none" stroke="#555" stroke-width="1.5" marker-end="url(#a)"/>
  <!-- falkor -> export -->
  <path d="M760,218 C700,262 640,286 600,320" fill="none" stroke="#555" stroke-width="1.5" marker-end="url(#a)"/>
  <text x="612" y="266" fill="#7a3fb3" font-size="11">export</text>
  <!-- response -> client (Arrow out, DoGet) -->
  <path d="M732,352 C430,430 190,432 103,222" fill="none" stroke="#2b5fb3" stroke-width="1.5" marker-end="url(#a)"/>
  <text x="360" y="452" text-anchor="middle" fill="#2b5fb3" font-size="12" font-style="italic">Arrow RecordBatch stream (DoGet ← FlightDataEncoder)</text>
</svg>