351 lines
22 KiB
HTML
351 lines
22 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>10 Pipeline - Momentry API Docs</title>
|
|
<style>
|
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #f5f5f5; color: #333; padding: 40px; }
|
|
.container { max-width: 960px; margin: 0 auto; background: white; border-radius: 12px; box-shadow: 0 2px 12px rgba(0,0,0,0.08); padding: 40px; }
|
|
h1 { font-size: 24px; margin: 24px 0 12px; }
|
|
h2 { font-size: 20px; margin: 20px 0 10px; color: #222; }
|
|
h3 { font-size: 16px; margin: 16px 0 8px; color: #444; }
|
|
p { line-height: 1.6; margin: 8px 0; }
|
|
table { border-collapse: collapse; width: 100%; margin: 12px 0; font-size: 14px; }
|
|
th, td { border: 1px solid #ddd; padding: 8px 12px; text-align: left; }
|
|
th { background: #f0f0f0; font-weight: 600; }
|
|
code { background: #f0f0f0; padding: 2px 6px; border-radius: 3px; font-size: 13px; }
|
|
pre { background: #f8f8f8; border: 1px solid #ddd; border-radius: 6px; padding: 12px; overflow-x: auto; margin: 12px 0; }
|
|
pre code { background: none; padding: 0; }
|
|
a { color: #0066cc; }
|
|
.back { display: inline-block; margin-bottom: 20px; color: #666; }
|
|
.back:hover { color: #333; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<a class="back" href="index.html">← Back to index</a>
|
|
<!-- module: pipeline -->
|
|
<!-- description: Pipeline processors, ingestion status, stats endpoints -->
|
|
<!-- depends: 01_auth -->
|
|
|
|
<h2>Pipeline</h2>
|
|
<h3>Dependency Graph</h3>
|
|
<div class="codehilite"><pre><span></span><code><span class="n">flowchart</span><span class="w"> </span><span class="n">TB</span>
|
|
<span class="w"> </span><span class="n">subgraph</span><span class="w"> </span><span class="n">Processors</span><span class="p">[</span><span class="s">"10 Processors"</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">Cut</span><span class="p">[</span><span class="n">Cut</span><span class="p">]</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">ASR</span><span class="p">[</span><span class="n">ASR</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">ASR</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">ASRX</span><span class="p">[</span><span class="n">ASRX</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">ASRX</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Story</span><span class="p">[</span><span class="n">Story</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">Cut</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Story</span>
|
|
<span class="w"> </span><span class="n">YOLO</span><span class="p">[</span><span class="n">YOLO</span><span class="p">]</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">VisualChunk</span><span class="p">[</span><span class="n">VisualChunk</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">VisualChunk</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Story</span>
|
|
<span class="w"> </span><span class="n">Face</span><span class="p">[</span><span class="n">Face</span><span class="p">]</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Story</span>
|
|
<span class="w"> </span><span class="n">Story</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">FiveW1H</span><span class="p">[</span><span class="mi">5</span><span class="n">W1H</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">OCR</span><span class="p">[</span><span class="n">OCR</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">Pose</span><span class="p">[</span><span class="n">Pose</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">end</span>
|
|
|
|
<span class="w"> </span><span class="n">subgraph</span><span class="w"> </span><span class="n">Ingestion</span><span class="p">[</span><span class="s">"入庫 (Post-Processing)"</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">ASR</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Rule1</span><span class="p">[</span><span class="n">Rule</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">Sentence</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">ASRX</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Rule1</span>
|
|
<span class="w"> </span><span class="n">Rule1</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Vectorize</span><span class="p">[</span><span class="n">Auto</span><span class="o">-</span><span class="n">Vectorize</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">Rule1</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Phase1</span><span class="p">[</span><span class="n">Phase</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">Pack</span><span class="p">]</span>
|
|
|
|
<span class="w"> </span><span class="n">Cut</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Rule3</span><span class="p">[</span><span class="n">Rule</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="n">Scene</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">ASR</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Rule3</span>
|
|
|
|
<span class="w"> </span><span class="n">Face</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Trace</span><span class="p">[</span><span class="n">Face</span><span class="w"> </span><span class="n">Trace</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">Trace</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Qdrant</span><span class="p">[</span><span class="n">Qdrant</span><span class="w"> </span><span class="n">Sync</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">Trace</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">TraceChunks</span><span class="p">[</span><span class="n">Trace</span><span class="w"> </span><span class="n">Chunks</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">Trace</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">TKG</span><span class="p">[</span><span class="n">TKG</span><span class="w"> </span><span class="n">Builder</span><span class="p">]</span>
|
|
|
|
<span class="w"> </span><span class="n">Face</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">TMDbMatch</span><span class="p">[</span><span class="n">TMDb</span><span class="w"> </span><span class="n">Match</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">Face</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">SceneMeta</span><span class="p">[</span><span class="n">Scene</span><span class="w"> </span><span class="n">Metadata</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">YOLO</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">SceneMeta</span>
|
|
<span class="w"> </span><span class="n">Face</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">IdentityAgent</span><span class="p">[</span><span class="n">Identity</span><span class="w"> </span><span class="n">Agent</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">ASRX</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">IdentityAgent</span>
|
|
|
|
<span class="w"> </span><span class="n">Cut</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Agent5W1H</span><span class="p">[</span><span class="mi">5</span><span class="n">W1H</span><span class="w"> </span><span class="n">Agent</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">ASR</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Agent5W1H</span>
|
|
<span class="w"> </span><span class="n">Agent5W1H</span><span class="w"> </span><span class="o">--></span><span class="w"> </span><span class="n">Phase2</span><span class="p">[</span><span class="n">Phase</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">Pack</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="n">end</span>
|
|
|
|
<span class="w"> </span><span class="n">style</span><span class="w"> </span><span class="n">Processors</span><span class="w"> </span><span class="n">fill</span><span class="o">:</span><span class="err">#</span><span class="mi">1</span><span class="n">a1a2e</span><span class="p">,</span><span class="n">stroke</span><span class="o">:</span><span class="err">#</span><span class="n">e94560</span>
|
|
<span class="w"> </span><span class="n">style</span><span class="w"> </span><span class="n">Ingestion</span><span class="w"> </span><span class="n">fill</span><span class="o">:</span><span class="err">#</span><span class="mi">16213</span><span class="n">e</span><span class="p">,</span><span class="n">stroke</span><span class="o">:</span><span class="err">#</span><span class="mf">0f</span><span class="mi">3460</span>
|
|
</code></pre></div>
|
|
|
|
<h3>10 Processor Stages</h3>
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Processor</th>
|
|
<th>Depends On</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>1</td>
|
|
<td><code>Cut</code></td>
|
|
<td>—</td>
|
|
<td>Scene boundary detection (PySceneDetect)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2</td>
|
|
<td><code>ASR</code></td>
|
|
<td>Cut</td>
|
|
<td>Automatic speech recognition (faster-whisper)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3</td>
|
|
<td><code>ASRX</code></td>
|
|
<td>ASR</td>
|
|
<td>Speaker diarization + ASR refinement</td>
|
|
</tr>
|
|
<tr>
|
|
<td>4</td>
|
|
<td><code>YOLO</code></td>
|
|
<td>—</td>
|
|
<td>Object detection (YOLOv8)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>5</td>
|
|
<td><code>OCR</code></td>
|
|
<td>—</td>
|
|
<td>Optical character recognition</td>
|
|
</tr>
|
|
<tr>
|
|
<td>6</td>
|
|
<td><code>Face</code></td>
|
|
<td>—</td>
|
|
<td>Face detection + recognition (InsightFace + CoreML)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>7</td>
|
|
<td><code>Pose</code></td>
|
|
<td>—</td>
|
|
<td>Pose estimation</td>
|
|
</tr>
|
|
<tr>
|
|
<td>8</td>
|
|
<td><code>VisualChunk</code></td>
|
|
<td>YOLO</td>
|
|
<td>Visual object chunking</td>
|
|
</tr>
|
|
<tr>
|
|
<td>9</td>
|
|
<td><code>Story</code></td>
|
|
<td>ASRX + Cut + YOLO + Face</td>
|
|
<td>Narrative scene summarization (LLM, with embedding)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>10</td>
|
|
<td><code>5W1H</code></td>
|
|
<td>Story</td>
|
|
<td>Who/What/When/Where/Why extraction (LLM, with embedding)</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Post-Processing (入庫)</h3>
|
|
<p>After all 10 processors complete, the pipeline runs the following storage & enrichment steps:</p>
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Step</th>
|
|
<th>Requires</th>
|
|
<th>Evidence</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>1</td>
|
|
<td><strong>Rule 1 Sentence Chunking</strong></td>
|
|
<td>ASR + ASRX</td>
|
|
<td><code>chunk</code> table, <code>chunk_type = 'sentence'</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>2</td>
|
|
<td><strong>Auto-Vectorize</strong></td>
|
|
<td>Rule 1</td>
|
|
<td><code>chunk.embedding</code> IS NOT NULL (pgvector)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3</td>
|
|
<td><strong>Phase 1 Pack</strong></td>
|
|
<td>Rule 1</td>
|
|
<td><code>release_pack.py --phase 1</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>4</td>
|
|
<td><strong>Rule 3 Scene Chunking</strong></td>
|
|
<td>Cut + ASR</td>
|
|
<td><code>chunk</code> table, <code>chunk_type = 'cut'</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>5</td>
|
|
<td><strong>Face Trace</strong></td>
|
|
<td>Face</td>
|
|
<td><code>face_detections.trace_id</code> IS NOT NULL</td>
|
|
</tr>
|
|
<tr>
|
|
<td>6</td>
|
|
<td><strong>Qdrant Face Sync</strong></td>
|
|
<td>Face Trace</td>
|
|
<td>Qdrant face_embedding collection</td>
|
|
</tr>
|
|
<tr>
|
|
<td>7</td>
|
|
<td><strong>Trace Chunks</strong></td>
|
|
<td>Face Trace</td>
|
|
<td><code>chunk</code> table, <code>chunk_type = 'trace'</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>8</td>
|
|
<td><strong>TKG Builder</strong></td>
|
|
<td>Face Trace</td>
|
|
<td><code>tkg_nodes</code> + <code>tkg_edges</code> tables</td>
|
|
</tr>
|
|
<tr>
|
|
<td>9</td>
|
|
<td><strong>TMDb Face Matching</strong></td>
|
|
<td>Face + TMDb enabled</td>
|
|
<td><code>face_detections.identity_id</code> IS NOT NULL</td>
|
|
</tr>
|
|
<tr>
|
|
<td>10</td>
|
|
<td><strong>Heuristic Scene Metadata</strong></td>
|
|
<td>Face + YOLO</td>
|
|
<td><code>{file_uuid}.scene_meta.json</code> on disk</td>
|
|
</tr>
|
|
<tr>
|
|
<td>11</td>
|
|
<td><strong>Identity Agent</strong></td>
|
|
<td>Face + ASRX</td>
|
|
<td><code>identities</code> with <code>source = 'identity_agent'</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td>12</td>
|
|
<td><strong>5W1H Agent</strong></td>
|
|
<td>Cut + ASR</td>
|
|
<td><code>chunk.summary_text</code> IS NOT NULL (chunk_type = 'cut')</td>
|
|
</tr>
|
|
<tr>
|
|
<td>13</td>
|
|
<td><strong>Release Pack</strong></td>
|
|
<td>5W1H Agent</td>
|
|
<td><code>release_pack.py --phase 2</code> output</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Ingestion Status</h3>
|
|
<p>Check real-time ingestion status for a file:</p>
|
|
<div class="codehilite"><pre><span></span><code>curl<span class="w"> </span><span class="s2">"</span><span class="nv">$API</span><span class="s2">/api/v1/stats/ingestion-status/{file_uuid}"</span>
|
|
</code></pre></div>
|
|
|
|
<p>Returns per-step <code>done</code> / <code>pending</code> status with detail counts.</p>
|
|
<h4>Example</h4>
|
|
<div class="codehilite"><pre><span></span><code>curl<span class="w"> </span><span class="s2">"http://localhost:3003/api/v1/stats/ingestion-status/bd80fec9c42afb0307eb28f22c64c76a"</span><span class="w"> </span><span class="p">|</span><span class="w"> </span>jq<span class="w"> </span><span class="s1">'.steps[] | {name, status, detail}'</span>
|
|
</code></pre></div>
|
|
|
|
<h4>Response</h4>
|
|
<div class="codehilite"><pre><span></span><code><span class="p">{</span>
|
|
<span class="w"> </span><span class="nt">"file_uuid"</span><span class="p">:</span><span class="w"> </span><span class="s2">"bd80fec9c42afb0307eb28f22c64c76a"</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="nt">"steps"</span><span class="p">:</span><span class="w"> </span><span class="p">[</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"rule1_sentence"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0 sentence chunks"</span><span class="w"> </span><span class="p">},</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"auto_vectorize"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0 embedded"</span><span class="w"> </span><span class="p">},</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"rule3_scene"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0 scene chunks"</span><span class="w"> </span><span class="p">},</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"face_trace"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0 traces"</span><span class="w"> </span><span class="p">},</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"trace_chunks"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0 trace chunks"</span><span class="w"> </span><span class="p">},</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"tkg"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0 nodes, 0 edges"</span><span class="w"> </span><span class="p">},</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"identity_match"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0 identities"</span><span class="w"> </span><span class="p">},</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"scene_metadata"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="kc">null</span><span class="w"> </span><span class="p">},</span>
|
|
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="nt">"name"</span><span class="p">:</span><span class="w"> </span><span class="s2">"5w1h"</span><span class="p">,</span><span class="w"> </span><span class="nt">"status"</span><span class="p">:</span><span class="w"> </span><span class="s2">"pending"</span><span class="p">,</span><span class="w"> </span><span class="nt">"detail"</span><span class="p">:</span><span class="w"> </span><span class="s2">"0 scenes with 5W1H"</span><span class="w"> </span><span class="p">}</span>
|
|
<span class="w"> </span><span class="p">]</span>
|
|
<span class="p">}</span>
|
|
</code></pre></div>
|
|
|
|
<h3>Stats Endpoints</h3>
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>Method</th>
|
|
<th>Endpoint</th>
|
|
<th>Auth</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/api/v1/stats/sftpgo</code></td>
|
|
<td>No</td>
|
|
<td>SFTPGo service status</td>
|
|
</tr>
|
|
<tr>
|
|
<td>GET</td>
|
|
<td><code>/api/v1/stats/ingestion-status/:file_uuid</code></td>
|
|
<td>No</td>
|
|
<td>Per-file ingestion checklist</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h3>Configuration</h3>
|
|
<h3><code>POST /api/v1/config/cache</code></h3>
|
|
<p><strong>Auth</strong>: Required
|
|
<strong>Scope</strong>: system-level</p>
|
|
<p>Toggle the Redis cache on or off.</p>
|
|
<h4>Request Parameters</h4>
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>Field</th>
|
|
<th>Type</th>
|
|
<th>Required</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>enabled</code></td>
|
|
<td>boolean</td>
|
|
<td>Yes</td>
|
|
<td><code>true</code> to enable, <code>false</code> to disable</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<h4>Example</h4>
|
|
<div class="codehilite"><pre><span></span><code>curl<span class="w"> </span>-s<span class="w"> </span>-X<span class="w"> </span>POST<span class="w"> </span><span class="s2">"</span><span class="nv">$API</span><span class="s2">/api/v1/config/cache"</span><span class="w"> </span><span class="se">\</span>
|
|
<span class="w"> </span>-H<span class="w"> </span><span class="s2">"Content-Type: application/json"</span><span class="w"> </span><span class="se">\</span>
|
|
<span class="w"> </span>-H<span class="w"> </span><span class="s2">"X-API-Key: </span><span class="nv">$KEY</span><span class="s2">"</span><span class="w"> </span><span class="se">\</span>
|
|
<span class="w"> </span>-d<span class="w"> </span><span class="s1">'{"enabled": false}'</span>
|
|
</code></pre></div>
|
|
|
|
<h3>Unmounted Routes</h3>
|
|
<p>The following routes are defined in source code but are <strong>NOT</strong> currently mounted in the router:</p>
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>Endpoint</th>
|
|
<th>Source file</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><code>/api/v1/search/persons</code></td>
|
|
<td><code>universal_search.rs</code> (not mounted)</td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/api/v1/who</code></td>
|
|
<td><code>who.rs</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td><code>/api/v1/who/candidates</code></td>
|
|
<td><code>who.rs</code></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</body>
|
|
</html> |