Skip to content

[FILES-07] RFC proposal: platform-configurable TTL for browser-facing media presigned URLs #1897

Description

@dimitri-tombroff

Motivation

The presigned URLs the backend rewrites into markdown media links and serves to the user's browser expire after a hardcoded 1 minute:

content_controller.py:124

url = content_store.get_presigned_url(object_key, expires=timedelta(minutes=1))
(inside _replace_with_presigned, invoked at content_controller.py:212).

1 minute is a reasonable secure default but too short for some deployments — large media still loading past expiry, slow client networks, and documents rendering many assets where later fetches race the TTL. Operators cannot tune it without editing source.

By contrast, the backend-internal tabular presigned TTL is already configurable: internal_presigned_ttl_seconds (default 3600s) at structures.py:878, exposed as storage.tabular_store.query.internal_presigned_ttl_seconds. The browser-facing TTL should follow the same established pattern.

Metadata

Metadata

Assignees

No one assigned

    Fields

    No fields configured for Feature.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions