Skip to content
Discussion options

You must be logged in to vote

It's not the UID — that "access denied" is a deliberate 403 from Facet's own path check, which is why nothing shows up in podman logs. Nothing errored; the API just declined and returned a normal response.

The check is _validate_target_dir in api/routers/export.py, and it's fail-closed:

real = os.path.realpath(target_dir)
roots = _allowed_export_roots()
if not roots:
    raise HTTPException(
        status_code=403,
        detail="Copy/symlink export is disabled — configure viewer.export.allowed_target_dirs",
    )
for root in roots:
    if real == root:
        return root
    if real.startswith(root + os.sep):
        return real
raise HTTPException(status_code=403, detail="target_dir …

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by ncoevoet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants