fix(api): keep error URLs readable and mask host paths in dashboard logs

This commit is contained in:
imSp4rky
2026-09-08 17:37:32 -06:00
parent 0b055e43ba
commit 76d82df25b
6 changed files with 65 additions and 21 deletions
+17 -1
View File
@@ -16,7 +16,14 @@ from unshackle.core.utilities import (
log_event,
timed_operation,
)
from unshackle.core.utils.redact import redact_all, redact_path, redact_text, redact_url, safe_display_url
from unshackle.core.utils.redact import (
redact_all,
redact_path,
redact_secrets,
redact_text,
redact_url,
safe_display_url,
)
from unshackle.core.utils.subprocess import log_tool_run
pytestmark = pytest.mark.unit
@@ -266,6 +273,15 @@ def test_redact_all_composes_secrets_urls_and_paths():
assert "<unshackle>/temp" in out
def test_redact_secrets_keeps_the_url_but_drops_credentials_and_paths():
root = str(Path(__import__("unshackle.core.utils.redact", fromlist=["x"]).__file__).resolve().parents[3])
out = redact_secrets(f"404 Not Found: https://u:p@cdn.x/a/b.mpd?token=t (cwd {root}/temp)")
assert "cdn.x/a/b.mpd" in out
assert "u:p@" not in out
assert "token=t" not in out
assert "<unshackle>/temp" in out
def test_logged_output_dir_is_path_redacted(debug_log: Path):
root = str(Path(__import__("unshackle.core.utils.redact", fromlist=["x"]).__file__).resolve().parents[3])
log_event("downloader_start", context={"output_dir": f"{root}/temp", "filename": "Audio_3eeab4ed.mp4"})