Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

forge-mvc-files

Module opt-in propriétaire de l'upload générique dans Forge MVC : écriture disque sécurisée, storage anti-traversal, service de fichiers (streaming HTTP Range), suppression et rate-limit d'upload.

Statut : extraction complète (ADR-019)

forge-mvc-files détient désormais tout le pipeline d'upload générique, extrait du core : save_upload, SavedUpload, serve_media_file (HTTP Range), storage anti-traversal, suppression et rate-limit. core/uploads/ a été supprimé du core (CORE-DROP-UPLOADS-001). La validation pure de fichier (extension/MIME/taille + UploadError) reste dans le core (core.forms), réutilisée par ce paquet.

Pourquoi ce module (ADR-019)

Après l'extraction du traitement d'image (ADR-018), l'upload générique reste le dernier gros bloc applicatif logé dans le noyau. Un framework web peut exister sans upload de fichiers : c'est une brique applicative, pas un fondement. forge-mvc-files devient l'unique propriétaire de l'upload générique (principes 8 « noyau minimal » et 11 « une seule façon officielle »).

Ce qui a été déplacé du core

  • manager — save_upload, SavedUpload, serve_media_file, delete_upload, delete_media_file, get_upload_path, upload_root, _read_upload ;
  • storage — écriture/anti-traversal (normalize_media_path, media_path_to_storage_path, is_safe_media_path, save_bytes, delete_file) ;
  • rate_limit d'upload (is_upload_rate_limited, record_upload_attempt).

Ce qui reste dans le core (définitif)

  • Les validators purs (validate_extension, validate_mime_type, validate_size) et la hiérarchie d'exceptions UploadError : core/forms (FileField) en dépend, et le core ne peut pas dépendre d'un opt-in (ADR-004). Ce sont des contrôles purs sans I/O. forge-mvc-files les réutilise.

Plan d'exécution (ADR-019)

Ticket Description État
FILES-PKG-SCAFFOLD-001 Squelette du paquet + enregistrement opt-in livré
FILES-VALIDATORS-KEEP-001 Relocaliser validators + exceptions dans le core livré
FILES-MOVE-PIPELINE-001 Déplacer manager + storage + rate_limit livré
FILES-IMAGES-REPOINT-001 forge-mvc-images dépend de forge-mvc-files livré
FILES-CLI-RENAME-001 Générateurs + cli/uploads + starter livré
FILES-DOCS-PERIMETER-001 Docs + ADR-004 + CLAUDE.md §3 livré
CORE-DROP-UPLOADS-001 Suppression de core/uploads/ livré

Installation (mode éditable, depuis les sources)

git clone https://github.com/caucrogeGit/Forge.git
cd Forge
pip install -e packages/forge-mvc-files/

Référence

  • docs/adr/019-upload-extraction.md — décision et périmètre figés.
  • Charte principes 8 (noyau minimal), 11 (une seule façon officielle).

Metadata

Release files for forge-mvc-files 1.0.0rc9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for forge-mvc-files 1.0.0rc9
File Size Uploaded Provenance Actions
forge_mvc_files-1.0.0rc9.tar.gz 38.3 kB Without provenance Details for forge_mvc_files-1.0.0rc9.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for forge-mvc-files 1.0.0rc9
File Interpreter ABI Platform Actions
forge_mvc_files-1.0.0rc9-py3-none-any.whl Python 3 none any Details for forge_mvc_files-1.0.0rc9-py3-none-any.whl

Total release size: 69.4 kB

Release files / forge_mvc_files-1.0.0rc9.tar.gz

Download URL forge_mvc_files-1.0.0rc9.tar.gz
Size 38.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0bb5584b94550023c7f9af42969936b2a972a52740fd4230890d709a62167496
BLAKE2b-256 checksum
How to use checksums
da2f9ccb30dfdb0c0e86bc0ba1b54b35c2de6042daff5ea5383e76b9868d638e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / forge_mvc_files-1.0.0rc9-py3-none-any.whl

Download URL forge_mvc_files-1.0.0rc9-py3-none-any.whl
Size 31.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9d51f961c73e141cd83efb650850c04d25fa4798873606ce811215c356b9a660
BLAKE2b-256 checksum
How to use checksums
69fcf31b69b83cfdb31e3f2c1ed907abf344ad9fd8a64b88e7f147bece6a382e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Security for forge-mvc-files 1.0.0rc9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page