### Publishing: asset library using Django

**Summary:** A asset library blueprint for publishing built with Django on Ample. Domain schema: titles (isbn_or_slug, title, author, imprint, published_at): the catalog of titles; editions (title_id, format, version, object_key): editions and versioned files; customer_workspaces (name, license_type, seat_count): institutional or trade customers; customer_assets (workspace_id, title_id, object_key, license_expires_at): licensed files per customer; uploads (id, owner_reference, object_key, content_type, size, uploaded_at): validated uploads linked to their owner. Public information: title catalog and author pages, release schedules, rights and permissions contact. Kept out of scope until handling is reviewed: unreleased manuscripts, royalty statements, customer license keys. Manuscripts and royalty data are confidential; licensed files are authorized per customer workspace.

### Framework and Industry
- **Framework:** Django  
- **Workload:** Asset library  
- **Industry:** Publishing

### Resource Requirements
- **Compute**: Isolated x86_64 Firecracker microVMs.  
- **Postgres**: Managed PostgreSQL 16 runs in microVM and is auto-provisioned.  
- **S3-compatible object storage**: Buckets are S3-compatible.

### Workflow Steps
1. **Model the publishing domain:** Create the tables for titles, editions, customer workspaces, customer assets, and uploads.  
2. **Model assets linked to their owning group or workspace.**  
3. **Validate uploads and store them in the private bucket; link each object to its row.**  
4. **Authorize downloads by membership.**  
5. **Deploy and verify rejection of disallowed files and a linked upload.**  
6. **Run the synchronous deploy once and read the result. Re-running with no change is a no-op.**

### Cost Estimate
- **Monthly Amount (USD):** 10.0  
  - **Components:**  
    - App server: 5.0  
    - Managed PostgreSQL database: 5.0  
- **Note:** Always-on monthly price of the tested sizes; buckets are allocation-priced per quota and not included.

### Limitations
- Public content and synthetic examples only until actual data-handling requirements reviewed.  
- Verified on the python-3.12 template; region, request-duration limits and other sizes are unknown.  
- No health, financial, privacy, or other compliance claims are made.

### Examples
- **Title:** Django pattern fixture  
  **Description:** Verified browser file uploads basis for this blueprint.
