page:blueprints:publishing:asset library:django

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

Resource Requirements

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

Limitations

Examples