The outcome

Let users work with files without making host data, other users' uploads, generated assets, or a local workstation publicly reachable.

Gradio is a open-source Python and JavaScript framework for building, testing, sharing, and serving interactive machine-learning and AI applications. Rapidly turning Python functions, models, agents, media pipelines, and APIs into interactive demos, internal tools, evaluation interfaces, and production AI web applications. This guide narrows that broad capability into one repeatable outcome, with checkpoints that keep the source material and your judgment in the loop.

Before you begin

Set the boundary before the tool starts.

Choose one real task, identify who will use the result, and decide what evidence or test will make the result acceptable. Gather only the source material needed for that task. If the work contains confidential, personal, regulated, or client-owned information, confirm that the platform and account are approved before sharing it.

Troiana principle

AI should make the work easier to inspect. If the workflow removes the source, the owner, or the review step, redesign the workflow.

Step by step

A workflow you can repeat.

  1. 01

    Inventory upload, static, cache, temporary and output paths, allowed file types and sizes, users, retention, sharing need, malware controls, and every route that can return a file URL.

  2. 02

    Use a dedicated empty working directory, keep allowed_paths to exact approved locations, set blocked_paths for secrets and system data, avoid broad static directories, and configure a private cache root.

  3. 03

    Validate signatures and size before processing, rename uploads to generated IDs, sandbox parsers, strip metadata where appropriate, never pass user text through as a file path, and authorize each download.

  4. 04

    Avoid share=True for production; if a temporary tunnel is necessary, assume it is public, add basic protection, use non-sensitive test data, monitor it, and terminate it immediately after the review window.

  5. 05

    Test traversal, symlinks, hidden files, arbitrary returned paths, cross-user guessing, oversized and malicious uploads, cache races and deletion, then expire generated files and verify URLs no longer resolve.

Working standard

What good use looks like.

  • Never return user-supplied paths.
  • Keep allowed paths exact and minimal.
  • Treat share links as public tunnels.

A Gradio share link makes the locally running app publicly reachable, and uploaded, returned, cached, static, or explicitly allowed files can become URL-accessible. Built-in password authentication is described as a basic layer and lacks controls such as MFA, rate limiting, and automatic lockout. Use production-grade identity at the edge, keep allowed paths minimal, block sensitive paths, cap upload and request size, never turn user text into a returned file path, isolate model execution, expire caches, and do not expose secrets in client code or app state.

Official references

Check the current product documentation.

Features, plan limits, availability, and data controls change. These official pages are the starting points used for this collection.