mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-11-14 04:55:07 +00:00
Deployed 7d31153 with MkDocs version: 1.6.1
This commit is contained in:
@@ -2241,7 +2241,7 @@ dashboard UI that wants history must keep its own copy.</p>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>/api/dashboard/sessions</code></td>
|
||||
<td>Every live remote session: <code>id</code>, <code>owner</code> (username or masked key), <code>creator_ip</code>, <code>service</code>, <code>title_id</code>, <code>titles</code>, <code>tracks</code>, <code>title</code> (the display name of the title the client is on: the last one it asked tracks for, else the first resolved title), <code>auth_status</code>, <code>auth_error</code>, <code>server_account</code> (the server profile lent to the remote session, else <code>null</code>), <code>client</code>, <code>actions</code>, <code>created_at</code> and <code>last_accessed</code> (ISO 8601) with <code>created_ts</code> and <code>last_accessed_ts</code> (Unix epoch, the same clock as log <code>ts</code>), <code>age_seconds</code>, <code>idle_seconds</code>, <code>log_seq</code>. <code>client</code> is whatever the remote client sent as <code>client</code> in its session create request. The CLI sends <code>version</code>, <code>code_hash</code> (the commit the client runs, <code>null</code> when its source cannot be read), <code>platform</code> and <code>argv</code>. <code>argv</code> is the command line the user ran: proxy and URL userinfo, secret query parameters and credential values become <code>***</code>, home and install paths shorten as in the logs, and the line is cut at 3000 characters. An older client sends less or nothing and the field is <code>{}</code>. <code>log_seq</code> is the last sequence number in the remote session's service log - poll <code>/api/dashboard/sessions/{id}/logs</code> when it changes. <code>actions</code> is the session's request log, newest last, capped at 500: <code>ts</code>, <code>method</code>, <code>action</code> (<code>titles</code>, <code>tracks</code>, <code>segments</code>, <code>license</code>, <code>prompt</code>, …), <code>query</code>, <code>status</code>, <code>ms</code>, <code>bytes_in</code>, <code>bytes_out</code>.</td>
|
||||
<td>Every live remote session: <code>id</code>, <code>owner</code> (username or masked key), <code>creator_ip</code>, <code>service</code>, <code>title_id</code>, <code>titles</code>, <code>tracks</code>, <code>title</code> (the display name of the title the client is on: the last one it asked tracks for, else the first resolved title), <code>auth_status</code>, <code>auth_error</code>, <code>server_account</code> (the server profile lent to the remote session, else <code>null</code>), <code>server_cdm</code> (<code>false</code> when the client's own device licenses the remote session), <code>server_cdm_max_height</code> (the tallest video the server CDM licenses live, else <code>null</code>), <code>client</code>, <code>actions</code>, <code>created_at</code> and <code>last_accessed</code> (ISO 8601) with <code>created_ts</code> and <code>last_accessed_ts</code> (Unix epoch, the same clock as log <code>ts</code>), <code>age_seconds</code>, <code>idle_seconds</code>, <code>log_seq</code>. <code>client</code> is whatever the remote client sent as <code>client</code> in its session create request. The CLI sends <code>version</code>, <code>code_hash</code> (the commit the client runs, <code>null</code> when its source cannot be read), <code>platform</code> and <code>argv</code>. <code>argv</code> is the command line the user ran: proxy and URL userinfo, secret query parameters and credential values become <code>***</code>, home and install paths shorten as in the logs, and the line is cut at 3000 characters. An older client sends less or nothing and the field is <code>{}</code>. <code>log_seq</code> is the last sequence number in the remote session's service log - poll <code>/api/dashboard/sessions/{id}/logs</code> when it changes. <code>actions</code> is the session's request log, newest last, capped at 500: <code>ts</code>, <code>method</code>, <code>action</code> (<code>titles</code>, <code>tracks</code>, <code>segments</code>, <code>license</code>, <code>prompt</code>, …), <code>query</code>, <code>status</code>, <code>ms</code>, <code>bytes_in</code>, <code>bytes_out</code>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>/api/dashboard/jobs</code></td>
|
||||
@@ -2342,11 +2342,11 @@ is open.</p>
|
||||
<h2 id="keys">Keys<a class="headerlink" href="#keys" title="Permanent link">¶</a></h2>
|
||||
<div class="language-text highlight"><pre><span></span><code><span id="__span-4-1"><a id="__codelineno-4-1" name="__codelineno-4-1" href="#__codelineno-4-1"></a>GET /api/dashboard/keys
|
||||
</span><span id="__span-4-2"><a id="__codelineno-4-2" name="__codelineno-4-2" href="#__codelineno-4-2"></a>[{"id": "3ed054be9371", "role": "user", "label": "tier1", "services": ["EXAMPLE", "DEMO"],
|
||||
</span><span id="__span-4-3"><a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a> "server_cdm": false, "server_accounts": false, "server_proxy": false,
|
||||
</span><span id="__span-4-3"><a id="__codelineno-4-3" name="__codelineno-4-3" href="#__codelineno-4-3"></a> "server_cdm": false, "server_cdm_max_height": null, "server_accounts": false, "server_proxy": false,
|
||||
</span><span id="__span-4-4"><a id="__codelineno-4-4" name="__codelineno-4-4" href="#__codelineno-4-4"></a> "tier": "bot", "rate_limit": 600, "window_used": 412,
|
||||
</span><span id="__span-4-5"><a id="__codelineno-4-5" name="__codelineno-4-5" href="#__codelineno-4-5"></a> "requests": 41300, "rejected": 4, "bytes_out": 103079215104, "last_seen": 1756909188.2},
|
||||
</span><span id="__span-4-6"><a id="__codelineno-4-6" name="__codelineno-4-6" href="#__codelineno-4-6"></a> {"id": "7c1d0f52a884", "role": "dashboard", "label": "dash…", "services": [],
|
||||
</span><span id="__span-4-7"><a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> "server_cdm": false, "server_accounts": false, "server_proxy": false,
|
||||
</span><span id="__span-4-7"><a id="__codelineno-4-7" name="__codelineno-4-7" href="#__codelineno-4-7"></a> "server_cdm": false, "server_cdm_max_height": null, "server_accounts": false, "server_proxy": false,
|
||||
</span><span id="__span-4-8"><a id="__codelineno-4-8" name="__codelineno-4-8" href="#__codelineno-4-8"></a> "tier": null, "rate_limit": null, "window_used": 0,
|
||||
</span><span id="__span-4-9"><a id="__codelineno-4-9" name="__codelineno-4-9" href="#__codelineno-4-9"></a> "requests": 8140, "rejected": 0, "bytes_out": 41200311, "last_seen": 1756909350.9}]
|
||||
</span></code></pre></div>
|
||||
@@ -2374,6 +2374,10 @@ here, so use <code>id</code> as the identity and <code>label</code> only for dis
|
||||
<td><code>false</code>, <code>true</code>, or the list of service tags the grant covers.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>server_cdm_max_height</code></td>
|
||||
<td>The configured limit on live server CDM licences: a height, a map of service tag to height, or <code>null</code> for no limit.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>server_proxy</code></td>
|
||||
<td>Boolean. Only a literal <code>true</code> grants it, and an API key with no <code>users</code> entry does not get it.</td>
|
||||
</tr>
|
||||
|
||||
@@ -4072,6 +4072,11 @@ an HTTP caller would be remote code execution. You configure post-scripts only i
|
||||
<td><code>FORBIDDEN</code></td>
|
||||
<td>A gated parameter is not permitted.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>403</code></td>
|
||||
<td><code>SERVER_CDM_CAPPED</code></td>
|
||||
<td>The API key has a <code>server_cdm_max_height</code> for the service, and the job has no <code>quality</code> at or under it, sets <code>best_available</code>, or has <code>HYBRID</code> in <code>range</code>.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3 id="get-apidownloadjobs"><code>GET /api/download/jobs</code><a class="headerlink" href="#get-apidownloadjobs" title="Permanent link">¶</a></h3>
|
||||
@@ -4399,6 +4404,11 @@ an HTTP caller would be remote code execution. You configure post-scripts only i
|
||||
<td><code>FORBIDDEN</code></td>
|
||||
<td>A gated parameter is no longer permitted.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>403</code></td>
|
||||
<td><code>SERVER_CDM_CAPPED</code></td>
|
||||
<td>The job is no longer inside the <code>server_cdm_max_height</code> of the API key.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h3 id="post-apidownloadjobsjob_idpriority"><code>POST /api/download/jobs/{job_id}/priority</code><a class="headerlink" href="#post-apidownloadjobsjob_idpriority" title="Permanent link">¶</a></h3>
|
||||
@@ -5222,6 +5232,10 @@ A slow answer arrives as a <a href="#slow-responses">slow response</a>.</p>
|
||||
<td>403</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>SERVER_CDM_CAPPED</code></td>
|
||||
<td>403</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>GEOFENCE</code></td>
|
||||
<td>403</td>
|
||||
</tr>
|
||||
|
||||
@@ -2442,6 +2442,11 @@ but the defaults hold for the overwhelming majority of responses.</p>
|
||||
<td>The action is not allowed. Raised by server-side gates (per-key restrictions on CDM or credential overrides) and by remote session IP binding.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>SERVER_CDM_CAPPED</code></td>
|
||||
<td>403</td>
|
||||
<td>The server CDM does not license live above the <code>server_cdm_max_height</code> of the API key. <code>details.reason</code> is <code>server_cdm_max_height</code> (with <code>details.max_height</code>) or <code>client_device</code>, for a remote session where the client's own device licenses. A remote client licenses the track with its own device.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>GEOFENCE</code></td>
|
||||
<td>403</td>
|
||||
<td>The title is not available in the applicable region.</td>
|
||||
|
||||
@@ -2630,6 +2630,16 @@ CDM.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="admonition note">
|
||||
<p class="admonition-title">A height limit on the server CDM</p>
|
||||
<p>An API key with <code>server_cdm_max_height</code> gets the server CDM only up to that height. The
|
||||
session create response tells the client who licenses the session in <code>server_cdm</code> and gives
|
||||
the limit in <code>server_cdm_max_height</code>. In a server CDM session, the batch licence response
|
||||
lists each track the server refused to license live under <code>capped_tracks</code>. A single-track
|
||||
server CDM licence answers <code>403 SERVER_CDM_CAPPED</code> for such a track. In both cases the client
|
||||
licenses those tracks in proxy mode with its own local CDM. See
|
||||
<a href="../../../reference/configuration/services/"><code>server_cdm_max_height</code></a>.</p>
|
||||
</div>
|
||||
<hr />
|
||||
<h2 id="remote-session-lifecycle-and-expiry">Remote session lifecycle and expiry<a class="headerlink" href="#remote-session-lifecycle-and-expiry" title="Permanent link">¶</a></h2>
|
||||
<p>Remote sessions live in an <strong>in-memory store on the server</strong> and expire on a timer. You
|
||||
|
||||
Reference in New Issue
Block a user