Files
jellytau/api/jellytau_lib/utils/diagnostics/index.html
T

17 lines
8.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Credential redaction and crash capture for diagnostic logs."><title>jellytau_lib::utils::diagnostics - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module diagnostics</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.11.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module diagnostics</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#why-redaction-lives-here-and-not-at-the-export" title="Why redaction lives here and not at the export">Why redaction lives here and not at the export</a></li><li><a href="#what-is-deliberately-not-redacted" title="What is deliberately NOT redacted">What is deliberately NOT redacted</a></li></ul><h3><a href="#constants">Module Items</a></h3><ul class="block"><li><a href="#constants" title="Constants">Constants</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In jellytau_<wbr>lib::<wbr>utils</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">jellytau_lib</a>::<wbr><a href="../index.html">utils</a></div><h1>Module <span>diagnostics</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../../src/jellytau_lib/utils/diagnostics.rs.html#1-399">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Credential redaction and crash capture for diagnostic logs.</p>
<p>TRACES: UR-078 | DR-218</p>
<h3 id="why-redaction-lives-here-and-not-at-the-export"><a class="doc-anchor" href="#why-redaction-lives-here-and-not-at-the-export">§</a>Why redaction lives here and not at the export</h3>
<p>A diagnostic bundle is something a user attaches to a public bug report. If a
Jellyfin access token can reach it, this feature is a credential-disclosure
bug with a friendly button on it.</p>
<p>So <a href="fn.redact.html" title="fn jellytau_lib::utils::diagnostics::redact"><code>redact</code></a> runs in the log <em>formatter</em> — the token never reaches disk —
and again over every line the exporter copies, which covers files written by
an older build that lacked the formatter pass. Redacting only at export would
leave the secret sitting in a file on the device, which is exactly the thing
we are trying not to do.</p>
<h3 id="what-is-deliberately-not-redacted"><a class="doc-anchor" href="#what-is-deliberately-not-redacted">§</a>What is deliberately NOT redacted</h3>
<p>Server host, item ids, filenames and paths inside the apps own directories
all stay. They are not secrets and they are the entire diagnostic value of a
log: a bundle scrubbed of them is one nobody can debug anything from.</p>
</div></details><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><dl class="item-table"><dt><a class="constant" href="constant.REDACTED.html" title="constant jellytau_lib::utils::diagnostics::REDACTED">REDACTED</a></dt><dd>Replacement for a redacted value.</dd><dt><a class="constant" href="constant.SECRET_HEADERS.html" title="constant jellytau_lib::utils::diagnostics::SECRET_HEADERS">SECRET_<wbr>HEADERS</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Header names whose value is a credential.</dd><dt><a class="constant" href="constant.SECRET_JSON_KEYS.html" title="constant jellytau_lib::utils::diagnostics::SECRET_JSON_KEYS">SECRET_<wbr>JSON_<wbr>KEYS</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>JSON keys whose value is a credential.</dd><dt><a class="constant" href="constant.SECRET_QUERY_KEYS.html" title="constant jellytau_lib::utils::diagnostics::SECRET_QUERY_KEYS">SECRET_<wbr>QUERY_<wbr>KEYS</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Query-string parameters whose value is a credential.</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.install_panic_hook.html" title="fn jellytau_lib::utils::diagnostics::install_panic_hook">install_<wbr>panic_<wbr>hook</a></dt><dd>Install a panic hook that records the panic through <code>log::error!</code> before the
default hook runs.</dd><dt><a class="fn" href="fn.panic_payload_string.html" title="fn jellytau_lib::utils::diagnostics::panic_payload_string">panic_<wbr>payload_<wbr>string</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Extract a printable message from a panic payload.</dd><dt><a class="fn" href="fn.redact.html" title="fn jellytau_lib::utils::diagnostics::redact">redact</a></dt><dd>Strip credentials from one log line.</dd><dt><a class="fn" href="fn.redact_emby_auth.html" title="fn jellytau_lib::utils::diagnostics::redact_emby_auth">redact_<wbr>emby_<wbr>auth</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd><code>MediaBrowser Token="abc"</code> -&gt; <code>MediaBrowser Token="[REDACTED]"</code></dd><dt><a class="fn" href="fn.redact_headers.html" title="fn jellytau_lib::utils::diagnostics::redact_headers">redact_<wbr>headers</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd><code>X-Emby-Token: abc</code> -&gt; <code>X-Emby-Token: [REDACTED]</code></dd><dt><a class="fn" href="fn.redact_json_values.html" title="fn jellytau_lib::utils::diagnostics::redact_json_values">redact_<wbr>json_<wbr>values</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd><code>"AccessToken":"abc"</code> -&gt; <code>"AccessToken":"[REDACTED]"</code></dd><dt><a class="fn" href="fn.redact_query_params.html" title="fn jellytau_lib::utils::diagnostics::redact_query_params">redact_<wbr>query_<wbr>params</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd><code>?api_key=abc&amp;x=1</code> -&gt; <code>?api_key=[REDACTED]&amp;x=1</code></dd><dt><a class="fn" href="fn.redact_server_url.html" title="fn jellytau_lib::utils::diagnostics::redact_server_url">redact_<wbr>server_<wbr>url</a></dt><dd>Reduce a server URL to scheme and host.</dd></dl></section></div></main></body></html>