page:guides:fastapi:private file access

Enforce Private-File Authorization for FastAPI

Private file access for a FastAPI app on Ample. Verified on FastAPI: a role-to-document access model with negative tests (401, 403) and an authorized private-bucket round-trip (private=ok).

Build and start: pip install into .ample/python from requirements.txt, then uvicorn from run.py reading PORT on the python-3.12 template.

Resource Requirements

Infrastructure Requirements

  1. Compute
    • verified
    • Apps run in isolated x86_64 Firecracker microVMs that auto-pause when idle and wake on request; sizes are the priced VM sizes.
  2. Postgres
    • verified
    • Managed PostgreSQL 16 runs in its own microVM and is auto-provisioned when an app needs a database and no DATABASE_URL is supplied.
  3. S3-compatible object storage
    • verified
    • Buckets are S3-compatible with issued credentials; PutObject and GetObject are verified by canary. Other S3 operations are not verified.

Prerequisites

  1. A FastAPI project (pip install into .ample/python from requirements.txt, then uvicorn from run.py reading PORT on the python-3.12 template)
  2. A PostgreSQL driver reading DATABASE_URL at runtime
  3. A bucket from ample bucket create with credentials passed as encrypted S3_* environment variables
  4. An Ample account token with servers:write, databases:read, buckets:read

Workflow Steps

Examples

Success Checks

  1. app responds on its public URL
    • kind: http_get
    • path: /
    • expect: ample canary fastapi patterns
  2. private-document-library check from the example
    • kind: http_get
    • path: /p/private-document-library
    • expect: see the pattern fixture checks

Limitations

Cost Estimate

Evidence Summary

Last Verified At

Next Actions

  1. Browse the catalog index
  2. Search published recipes by intent, stack, and constraints
  3. Prepare a side-effect-free deployment plan for an authorized project
  4. Read the existing agent authentication setup
  5. Browse FastAPI
  6. Browse Connect app to storage
  7. Browse Private document library