Reading API /api/v1/logs with a stable cursor, and API tokens
GET /api/v1/logs?query=<LogsQL>&since=<cursor|time|duration>&limit=<n> returns the logs after a cursor, oldest first, with next_cursor and has_more. The cursor is a position on _time (the reception time) plus the number of rows already returned among those sharing that exact time, ordered by a hash of their content, so following the cursors gives every row once even within groups cut by a page. Rows count once older than the lag (30 s), and nothing is returned while the disk spool still holds logs. API tokens (Settings > API) give read-only access to /api/v1/ as "Authorization: Bearer lst_...", in every auth mode; only their SHA-256 is kept in /data/api_tokens.json. README (EN/FR) documents the route and an n8n workflow keeping the cursor in $getWorkflowStaticData. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
d61384ed2c
commit
c8f45044a3
12 files changed
+1327
-7
No files matched your search
@@ -197,6 +197,10 @@
|
||||
<svg viewBox="0 0 24 24"><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v14c0 1.7 3.6 3 8 3s8-1.3 8-3V5M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3"/></svg>
|
||||
<span data-i18n="tabData">Database</span>
|
||||
</button>
|
||||
<button type="button" role="tab" data-tab="api">
|
||||
<svg viewBox="0 0 24 24"><circle cx="7.5" cy="15.5" r="4.5"/><path d="m10.7 12.3 9.3-9.3M16 7l3 3M18 5l2 2"/></svg>
|
||||
<span data-i18n="tabApi">API</span>
|
||||
</button>
|
||||
</nav>
|
||||
<div id="setActions" class="set-actions">
|
||||
<button id="setSave" class="btn save" type="button" disabled>
|
||||
@@ -446,6 +450,34 @@
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<!-- API tokens -->
|
||||
<div class="set-panel wide" role="tabpanel" data-panel="api" hidden>
|
||||
<section class="set-section">
|
||||
<div class="sec-head">
|
||||
<h3 data-i18n="tokensTitle">API tokens</h3>
|
||||
<span id="tokenCount" class="muted small"></span>
|
||||
</div>
|
||||
<p class="muted small" data-i18n="tokensHelp"></p>
|
||||
<div id="tokenList" class="token-list"></div>
|
||||
<form id="tokenForm" class="token-form">
|
||||
<input id="tokenName" type="text" class="dk-filter" maxlength="80" autocomplete="off" spellcheck="false" data-i18n-ph="tokenNamePh" data-i18n-aria="tokenNamePh">
|
||||
<button id="tokenCreate" class="btn" type="submit" data-i18n="tokenCreate">Create a token</button>
|
||||
</form>
|
||||
<div id="tokenNew" class="token-new" hidden>
|
||||
<p class="small" data-i18n="tokenOnce"></p>
|
||||
<div class="token-secret">
|
||||
<code id="tokenSecret"></code>
|
||||
<button id="tokenCopy" class="btn" type="button" data-i18n="tokenCopy">Copy</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="set-section">
|
||||
<h3 data-i18n="tokensUse">Usage</h3>
|
||||
<p class="muted small" data-i18n="tokensUseHelp"></p>
|
||||
<pre id="tokenExample" class="token-example"></pre>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in new issue
Block a user