API Doc
This commit is contained in:
+792
@@ -0,0 +1,792 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>DEREZ.AI / API Reference</title>
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
|
||||
:root {
|
||||
--bg: #000810;
|
||||
--bg-card: #010f20;
|
||||
--bg-inner: #000d1a;
|
||||
--bg-hover: #001a30;
|
||||
--bg-input: #000813;
|
||||
--border: #0a3060;
|
||||
--accent: #00f5ff;
|
||||
--accent-dim: #002535;
|
||||
--danger: #ff3b3b;
|
||||
--success: #00ff88;
|
||||
--warning: #ffaa00;
|
||||
--text: #c8f0ff;
|
||||
--text-muted: #2e6a80;
|
||||
}
|
||||
|
||||
html, body {
|
||||
background: var(--bg);
|
||||
color: var(--text);
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
min-height: 100vh;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
/* ── HEADER ── */
|
||||
#top-header {
|
||||
position: fixed; top: 0; left: 0; right: 0; height: 54px;
|
||||
background: var(--bg-card);
|
||||
border-bottom: 1px solid var(--border);
|
||||
display: flex; align-items: center; justify-content: space-between;
|
||||
padding: 0 28px; z-index: 1000;
|
||||
box-shadow: 0 2px 24px rgba(0,0,0,0.7);
|
||||
}
|
||||
#header-left { display: flex; align-items: center; gap: 10px; }
|
||||
#header-brand { color: var(--accent); font-weight: bold; font-size: 16px; letter-spacing: 0.1em; }
|
||||
#header-sep { color: var(--text-muted); font-size: 16px; }
|
||||
#header-sub { color: var(--text-muted); font-size: 13px; letter-spacing: 0.05em; }
|
||||
#header-badge {
|
||||
background: var(--accent-dim); color: var(--accent);
|
||||
border: 1px solid rgba(0,245,255,0.25); border-radius: 12px;
|
||||
padding: 4px 14px; font-size: 11px; font-weight: bold; letter-spacing: 0.07em;
|
||||
}
|
||||
|
||||
/* ── SEARCH ── */
|
||||
#search-wrap {
|
||||
position: sticky; top: 54px; z-index: 900;
|
||||
background: var(--bg-card); border-bottom: 1px solid var(--border);
|
||||
padding: 14px 28px;
|
||||
}
|
||||
#search-inner { display: flex; align-items: center; gap: 14px; }
|
||||
#search-box-wrap { position: relative; flex: 1; }
|
||||
#search-icon {
|
||||
position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
|
||||
color: var(--text-muted); pointer-events: none;
|
||||
}
|
||||
#search-input {
|
||||
width: 100%; background: var(--bg-input); border: 1px solid var(--border);
|
||||
border-radius: 6px; color: var(--text);
|
||||
font-family: "Courier New", Courier, monospace; font-size: 13px;
|
||||
padding: 10px 14px 10px 40px; outline: none;
|
||||
transition: border-color 0.15s, box-shadow 0.15s;
|
||||
}
|
||||
#search-input::placeholder { color: var(--text-muted); }
|
||||
#search-input:focus {
|
||||
border-color: var(--accent);
|
||||
box-shadow: 0 0 0 2px rgba(0,245,255,0.15);
|
||||
}
|
||||
#search-counter {
|
||||
color: var(--text-muted); font-size: 12px;
|
||||
white-space: nowrap; min-width: 130px; text-align: right;
|
||||
}
|
||||
#search-counter .cnt { color: var(--accent); font-weight: bold; }
|
||||
|
||||
/* ── MAIN ── */
|
||||
#main { padding: 32px 28px 80px; margin-top: 54px; }
|
||||
|
||||
/* ── SECTION ── */
|
||||
.section { margin-bottom: 40px; }
|
||||
.section-header { display: flex; align-items: center; gap: 14px; margin-bottom: 10px; }
|
||||
.section-path { color: var(--accent); font-size: 16px; font-weight: bold; letter-spacing: 0.04em; }
|
||||
.section-count {
|
||||
background: var(--bg-inner); color: var(--text-muted);
|
||||
border: 1px solid var(--border); border-radius: 10px;
|
||||
padding: 2px 10px; font-size: 10px; letter-spacing: 0.05em;
|
||||
}
|
||||
.section-card {
|
||||
background: var(--bg-card); border: 1px solid var(--border);
|
||||
border-left: 3px solid var(--accent); border-radius: 6px; overflow: hidden;
|
||||
}
|
||||
|
||||
/* ── TABLE ── */
|
||||
table { width: 100%; border-collapse: collapse; }
|
||||
thead tr { background: var(--bg-inner); border-bottom: 1px solid var(--border); }
|
||||
thead th {
|
||||
padding: 9px 14px; text-align: left; color: var(--text-muted);
|
||||
font-size: 10px; font-weight: bold; letter-spacing: 0.1em;
|
||||
text-transform: uppercase; white-space: nowrap;
|
||||
}
|
||||
tbody tr { border-bottom: 1px solid var(--border); transition: background 0.1s; }
|
||||
tbody tr:last-child { border-bottom: none; }
|
||||
tbody tr:hover { background: var(--bg-hover); }
|
||||
tbody td { padding: 11px 14px; vertical-align: middle; font-size: 12px; line-height: 1.5; }
|
||||
|
||||
/* ── PATH CELL ── */
|
||||
.cell-path { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
|
||||
.path-text { color: var(--text); font-weight: bold; }
|
||||
.copy-btn {
|
||||
display: inline-flex; align-items: center; justify-content: center;
|
||||
background: none; border: none; cursor: pointer; color: var(--text-muted);
|
||||
padding: 3px; border-radius: 3px;
|
||||
opacity: 0; transition: color 0.15s, opacity 0.15s; flex-shrink: 0;
|
||||
}
|
||||
tbody tr:hover .copy-btn { opacity: 1; }
|
||||
.copy-btn:hover { color: var(--accent); }
|
||||
.copy-btn.copied { color: var(--success) !important; opacity: 1 !important; }
|
||||
|
||||
/* ── METHOD BADGE ── */
|
||||
.method {
|
||||
display: inline-block; padding: 3px 10px; border-radius: 4px;
|
||||
font-size: 10px; font-weight: bold; letter-spacing: 0.08em;
|
||||
white-space: nowrap; font-family: "Courier New", Courier, monospace;
|
||||
}
|
||||
.method-GET { background:#002535; color:#00f5ff; border:1px solid rgba(0,245,255,0.25); }
|
||||
.method-POST { background:#00251a; color:#00ff88; border:1px solid rgba(0,255,136,0.25); }
|
||||
.method-PUT { background:#251a00; color:#ffaa00; border:1px solid rgba(255,170,0,0.25); }
|
||||
.method-DELETE { background:#250000; color:#ff3b3b; border:1px solid rgba(255,59,59,0.25); }
|
||||
|
||||
/* ── CELLS ── */
|
||||
.cell-query { font-size: 11px; color: var(--text); max-width: 280px; word-break: break-word; }
|
||||
.old-url {
|
||||
font-size: 10px; color: var(--text-muted);
|
||||
font-family: "Courier New", Courier, monospace;
|
||||
word-break: break-all; user-select: all; cursor: text;
|
||||
max-width: 380px; line-height: 1.6;
|
||||
}
|
||||
|
||||
/* ── HIGHLIGHT ── */
|
||||
mark {
|
||||
background: #251a00; color: #ffaa00;
|
||||
border-radius: 2px; padding: 0 2px;
|
||||
font-family: inherit; font-size: inherit;
|
||||
}
|
||||
|
||||
/* ── NO RESULTS ── */
|
||||
#no-results {
|
||||
display: none; text-align: center; color: var(--text-muted);
|
||||
font-size: 13px; padding: 60px 0; letter-spacing: 0.05em;
|
||||
}
|
||||
|
||||
/* ── FOOTER ── */
|
||||
#footer {
|
||||
text-align: center; color: var(--text-muted); font-size: 11px;
|
||||
padding: 28px 0 8px; border-top: 1px solid var(--border);
|
||||
margin-top: 12px; letter-spacing: 0.04em;
|
||||
}
|
||||
#footer a { color: var(--accent); text-decoration: none; }
|
||||
#footer a:hover { text-decoration: underline; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<!-- ═══ HEADER ═══ -->
|
||||
<header id="top-header">
|
||||
<div id="header-left">
|
||||
<span id="header-brand">DEREZ.AI</span>
|
||||
<span id="header-sep">/</span>
|
||||
<span id="header-sub">API Reference</span>
|
||||
</div>
|
||||
<div id="header-badge">— endpoints</div>
|
||||
</header>
|
||||
|
||||
<!-- ═══ SEARCH ═══ -->
|
||||
<div id="search-wrap">
|
||||
<div id="search-inner">
|
||||
<div id="search-box-wrap">
|
||||
<svg id="search-icon" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
||||
<circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/>
|
||||
</svg>
|
||||
<input id="search-input" type="text" placeholder="Search paths, methods, payloads, UUIDs…" autocomplete="off" spellcheck="false">
|
||||
</div>
|
||||
<div id="search-counter"><span class="cnt" id="cnt-vis">—</span> / <span class="cnt" id="cnt-tot">—</span> endpoints</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ═══ MAIN ═══ -->
|
||||
<main id="main">
|
||||
|
||||
<!-- /agent/list -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/agent/list</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/list</span><button class="copy-btn" data-path="/agent/list" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">?email=</span></td>
|
||||
<td>List all agents for a user</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/73b31740-d2c7-46d7-ab71-7a3fef5f77ff</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /agent/info -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/agent/info</span>
|
||||
<span class="section-count">2 endpoints</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/info</span><button class="copy-btn" data-path="/agent/info" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">?uuid=</span></td>
|
||||
<td>Get agent server details</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/e01d06a3-14c3-4e4e-830f-7d4be9a5f529</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/info</span><button class="copy-btn" data-path="/agent/info" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{uuid, key, value}</span></td>
|
||||
<td>Set agent metadata — name/title (key:"comment"), wizard flag (key:"WIZZARD")</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/e01d06a3-14c3-4e4e-830f-7d4be9a5f529</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /agent/key -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/agent/key</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/key</span><button class="copy-btn" data-path="/agent/key" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">?uuid=</span></td>
|
||||
<td>Get API key info for an agent</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/1f1a6a11-727b-4965-a59a-fde77806d27f</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /agent/password -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/agent/password</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/password</span><button class="copy-btn" data-path="/agent/password" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{uuid, email, password}</span></td>
|
||||
<td>Update instance root password</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/51098cf4-ecfd-4db4-8977-db04f01ce2b1</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /agent/service/restart -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/agent/service/restart</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/service/restart</span><button class="copy-btn" data-path="/agent/service/restart" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{uuid, email, action:"restart"}</span></td>
|
||||
<td>Restart agent server</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/dac205df-66e0-4728-90e5-d784cde167af</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /agent/service/backup -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/agent/service/backup</span>
|
||||
<span class="section-count">3 endpoints</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/service/backup</span><button class="copy-btn" data-path="/agent/service/backup" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">?uuid=</span></td>
|
||||
<td>List backups for agent</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/30eaa32f-378a-4963-9d80-533229d25766</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/service/backup</span><button class="copy-btn" data-path="/agent/service/backup" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{uuid}</span></td>
|
||||
<td>Create a new backup</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/30eaa32f-378a-4963-9d80-533229d25766</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/agent/service/backup</span><button class="copy-btn" data-path="/agent/service/backup" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-PUT">PUT</span></td>
|
||||
<td><span class="cell-query">{uuid, email, action:"restore", archive_name}</span></td>
|
||||
<td>Restore a backup</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/30eaa32f-378a-4963-9d80-533229d25766</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /account/login -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/account/login</span>
|
||||
<span class="section-count">2 endpoints</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/account/login</span><button class="copy-btn" data-path="/account/login" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{email, password}</span></td>
|
||||
<td>Sign in — returns {sessionid}</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/e256310a-6627-45ba-a221-599751943fe6</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/account/login</span><button class="copy-btn" data-path="/account/login" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-DELETE">DELETE</span></td>
|
||||
<td><span class="cell-query">{sessionid} + X-Session-Id header</span></td>
|
||||
<td>Sign out</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/e256310a-6627-45ba-a221-599751943fe6</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /account/password/init_change -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/account/password/init_change</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/account/password/init_change</span><button class="copy-btn" data-path="/account/password/init_change" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{email}</span></td>
|
||||
<td>Request password reset email</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/c2ce0eba-eb26-405d-8a90-8d982ec30698</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /account/password/change -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/account/password/change</span>
|
||||
<span class="section-count">2 endpoints</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/account/password/change</span><button class="copy-btn" data-path="/account/password/change" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{email, password}</span></td>
|
||||
<td>Change password while logged in</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/4644f196-a31c-4d1a-b76e-03e9afe39302</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/account/password/change</span><button class="copy-btn" data-path="/account/password/change" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-PUT">PUT</span></td>
|
||||
<td><span class="cell-query">{token, password, email}</span></td>
|
||||
<td>Confirm password reset from email link</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/c2ce0eba-eb26-405d-8a90-8d982ec30698</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /account/contract -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/account/contract</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/account/contract</span><button class="copy-btn" data-path="/account/contract" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">?uuid=</span></td>
|
||||
<td>Get contract / subscription details</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/18591766-147e-4bcb-b9ac-b0f9a92e74bf</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /admin/dns -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/admin/dns</span>
|
||||
<span class="section-count">3 endpoints</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/dns</span><button class="copy-btn" data-path="/admin/dns" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">—</span></td>
|
||||
<td>List DNS records</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/4ad0c89f-ab8c-45ee-bad1-9321ce94dd64</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/dns</span><button class="copy-btn" data-path="/admin/dns" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{action:"create", name, type, content, ttl, is_disabled}</span></td>
|
||||
<td>Create DNS record</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/4ad0c89f-ab8c-45ee-bad1-9321ce94dd64</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/dns</span><button class="copy-btn" data-path="/admin/dns" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-DELETE">DELETE</span></td>
|
||||
<td><span class="cell-query">{name, type}</span></td>
|
||||
<td>Delete DNS record</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/4ad0c89f-ab8c-45ee-bad1-9321ce94dd64</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /admin/instance -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/admin/instance</span>
|
||||
<span class="section-count">3 endpoints</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/instance</span><button class="copy-btn" data-path="/admin/instance" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">—</span></td>
|
||||
<td>List all instances</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/bb369f27-244c-4f8a-869b-f787050619a2</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/instance</span><button class="copy-btn" data-path="/admin/instance" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-PUT">PUT</span></td>
|
||||
<td><span class="cell-query">{uuid, ssh_port, ram, cpu}</span></td>
|
||||
<td>Edit instance metadata</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/bb369f27-244c-4f8a-869b-f787050619a2</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/instance</span><button class="copy-btn" data-path="/admin/instance" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-DELETE">DELETE</span></td>
|
||||
<td><span class="cell-query">{uuid}</span></td>
|
||||
<td>Delete instance</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/bb369f27-244c-4f8a-869b-f787050619a2</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /admin/key -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/admin/key</span>
|
||||
<span class="section-count">2 endpoints</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/key</span><button class="copy-btn" data-path="/admin/key" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">—</span></td>
|
||||
<td>List all API keys (admin)</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/a001374f-d8c0-4430-9b47-9f1e9ab134c3</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/key</span><button class="copy-btn" data-path="/admin/key" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-DELETE">DELETE</span></td>
|
||||
<td><span class="cell-query">{name}</span></td>
|
||||
<td>Delete API key</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/a001374f-d8c0-4430-9b47-9f1e9ab134c3</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /admin/backup-repo -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/admin/backup-repo</span>
|
||||
<span class="section-count">2 endpoints</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/backup-repo</span><button class="copy-btn" data-path="/admin/backup-repo" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">—</span></td>
|
||||
<td>List backup repositories</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/69c0c632-df3b-457f-affe-b725f217f9a2</span></td>
|
||||
</tr>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/backup-repo</span><button class="copy-btn" data-path="/admin/backup-repo" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-DELETE">DELETE</span></td>
|
||||
<td><span class="cell-query">{id}</span></td>
|
||||
<td>Delete backup repository</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/69c0c632-df3b-457f-affe-b725f217f9a2</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /admin/server -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/admin/server</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/admin/server</span><button class="copy-btn" data-path="/admin/server" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-GET">GET</span></td>
|
||||
<td><span class="cell-query">—</span></td>
|
||||
<td>Server health and monitoring data</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/78c0c2b8-e497-4d44-8f26-fec34217513c</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /etc/signup -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/etc/signup</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/etc/signup</span><button class="copy-btn" data-path="/etc/signup" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{email, password, agent, location}</span></td>
|
||||
<td>Create account and hire agent — returns {checkout_url}</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/4de196b7-2ad2-4f9a-9b4d-dc8d3b30865b</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /etc/coupon -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/etc/coupon</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/etc/coupon</span><button class="copy-btn" data-path="/etc/coupon" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{code}</span></td>
|
||||
<td>Validate and apply coupon code</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/fd6375cb-6d73-4482-bfa3-ef8365f43a67</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /etc/chat -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/etc/chat</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/etc/chat</span><button class="copy-btn" data-path="/etc/chat" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{message, sessionId, email}</span></td>
|
||||
<td>Support chat message</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/a58d00c4-f0c9-40cd-bb50-4f45f0442ef0</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<!-- /etc/referral -->
|
||||
<div class="section" data-section>
|
||||
<div class="section-header">
|
||||
<span class="section-path">/etc/referral</span>
|
||||
<span class="section-count">1 endpoint</span>
|
||||
</div>
|
||||
<div class="section-card"><table>
|
||||
<thead><tr><th>Path</th><th>Method</th><th>Query / Body</th><th>What it does</th><th>Old Webhook URL</th></tr></thead>
|
||||
<tbody>
|
||||
<tr data-row>
|
||||
<td><div class="cell-path"><span class="path-text">/etc/referral</span><button class="copy-btn" data-path="/etc/referral" title="Copy path"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></svg></button></div></td>
|
||||
<td><span class="method method-POST">POST</span></td>
|
||||
<td><span class="cell-query">{referrer, friend_name, friend_email, uuid}</span></td>
|
||||
<td>Send referral invite</td>
|
||||
<td><span class="old-url">https://n8n.derez.ai/webhook/5bb4169d-284a-4006-8952-fcc325da2d22</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
|
||||
<div id="no-results">No endpoints match your search.</div>
|
||||
|
||||
<footer id="footer">
|
||||
Base URL
|
||||
<a href="https://n8n.derez.ai/webhook/">https://n8n.derez.ai/webhook/<ID>/<function></a>
|
||||
</footer>
|
||||
</main>
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
const allRows = Array.from(document.querySelectorAll('tr[data-row]'));
|
||||
const sections = Array.from(document.querySelectorAll('[data-section]'));
|
||||
const total = allRows.length;
|
||||
|
||||
// Cache original cell HTML for highlight restore
|
||||
const originals = allRows.map(function (row) {
|
||||
return Array.from(row.querySelectorAll('td')).map(function (td) { return td.innerHTML; });
|
||||
});
|
||||
|
||||
// Init counters
|
||||
document.getElementById('header-badge').textContent = total + ' endpoints';
|
||||
document.getElementById('cnt-tot').textContent = total;
|
||||
document.getElementById('cnt-vis').textContent = total;
|
||||
|
||||
// Copy-path buttons
|
||||
document.addEventListener('click', function (e) {
|
||||
var btn = e.target.closest('.copy-btn');
|
||||
if (!btn) return;
|
||||
var path = btn.getAttribute('data-path');
|
||||
var svgOrig = btn.innerHTML;
|
||||
var svgCheck = '<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg>';
|
||||
function flash() {
|
||||
btn.classList.add('copied');
|
||||
btn.innerHTML = svgCheck;
|
||||
setTimeout(function () { btn.classList.remove('copied'); btn.innerHTML = svgOrig; }, 1400);
|
||||
}
|
||||
if (navigator.clipboard && navigator.clipboard.writeText) {
|
||||
navigator.clipboard.writeText(path).then(flash).catch(flash);
|
||||
} else {
|
||||
var ta = document.createElement('textarea');
|
||||
ta.value = path; ta.style.cssText = 'position:fixed;opacity:0';
|
||||
document.body.appendChild(ta); ta.select();
|
||||
try { document.execCommand('copy'); } catch (x) {}
|
||||
document.body.removeChild(ta);
|
||||
flash();
|
||||
}
|
||||
});
|
||||
|
||||
// Search
|
||||
var input = document.getElementById('search-input');
|
||||
var cntVis = document.getElementById('cnt-vis');
|
||||
var noRes = document.getElementById('no-results');
|
||||
|
||||
function escRe(s) { return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); }
|
||||
|
||||
function rowText(row) {
|
||||
return Array.from(row.querySelectorAll('td')).map(function (td) { return td.textContent; }).join(' ');
|
||||
}
|
||||
|
||||
function restore(row, idx) {
|
||||
var cells = row.querySelectorAll('td');
|
||||
originals[idx].forEach(function (html, i) { if (cells[i]) cells[i].innerHTML = html; });
|
||||
}
|
||||
|
||||
function hlNodes(node, re) {
|
||||
if (node.nodeType === 3) {
|
||||
var v = node.nodeValue;
|
||||
re.lastIndex = 0;
|
||||
if (!re.test(v)) return;
|
||||
re.lastIndex = 0;
|
||||
var wrap = document.createElement('span');
|
||||
wrap.innerHTML = v.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>')
|
||||
.replace(re, function (m) {
|
||||
return '<mark>' + m.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>') + '</mark>';
|
||||
});
|
||||
re.lastIndex = 0;
|
||||
node.parentNode.replaceChild(wrap, node);
|
||||
return;
|
||||
}
|
||||
if (/^(SCRIPT|STYLE|BUTTON|SVG|svg)$/.test(node.nodeName)) return;
|
||||
Array.from(node.childNodes).forEach(function (c) { hlNodes(c, re); });
|
||||
}
|
||||
|
||||
function applyHL(row, re) {
|
||||
var idx = allRows.indexOf(row);
|
||||
var cells = row.querySelectorAll('td');
|
||||
originals[idx].forEach(function (html, i) {
|
||||
if (!cells[i]) return;
|
||||
var div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
hlNodes(div, re);
|
||||
re.lastIndex = 0;
|
||||
cells[i].innerHTML = div.innerHTML;
|
||||
});
|
||||
}
|
||||
|
||||
input.addEventListener('input', function () {
|
||||
var q = this.value.trim();
|
||||
|
||||
if (!q) {
|
||||
allRows.forEach(function (row, i) { restore(row, i); row.style.display = ''; });
|
||||
sections.forEach(function (s) { s.style.display = ''; });
|
||||
cntVis.textContent = total;
|
||||
noRes.style.display = 'none';
|
||||
return;
|
||||
}
|
||||
|
||||
var re = new RegExp(escRe(q), 'gi');
|
||||
var vis = 0;
|
||||
|
||||
allRows.forEach(function (row, i) {
|
||||
re.lastIndex = 0;
|
||||
if (re.test(rowText(row))) {
|
||||
row.style.display = '';
|
||||
re.lastIndex = 0;
|
||||
applyHL(row, re);
|
||||
vis++;
|
||||
} else {
|
||||
restore(row, i);
|
||||
row.style.display = 'none';
|
||||
}
|
||||
});
|
||||
|
||||
sections.forEach(function (sec) {
|
||||
var any = Array.from(sec.querySelectorAll('tr[data-row]')).some(function (r) {
|
||||
return r.style.display !== 'none';
|
||||
});
|
||||
sec.style.display = any ? '' : 'none';
|
||||
});
|
||||
|
||||
cntVis.textContent = vis;
|
||||
noRes.style.display = vis === 0 ? 'block' : 'none';
|
||||
});
|
||||
}());
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user