Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,12 @@ This can be introduced incrementally after Phase 2 or alongside Phase 3 without
- Public exceptions: `/api/health`, `/docs`, `/openapi.json`.
- Next: move to managed auth, add refresh tokens, roles/ACLs, rate limiting, and guest upload permissions.

**Postman collection**
- Collection: `postman/throwbackmemo.postman_collection.json`
- Environments: `postman/environments/*.postman_environment.json` (local/staging/prod templates). Set `api_base_url`, `auth_email`, `auth_password`, and optionally `access_token` (Auth → Login/Signup will store it automatically).
- Requests cover health, auth, albums, and assets (upload uses `/api/assets/upload`; select a file manually and set `album_id`).
- Legacy curl examples live in `tests/API_LOCAL_TEST_GUIDANCE.md`.

---

## Development Quality
Expand Down
8 changes: 7 additions & 1 deletion app/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,13 @@
from app.settings import settings

servers = [{"url": settings.app_base_url}] if settings.app_base_url else None
app = FastAPI(title="Wedding Media Hosting API", version="0.3.0", servers=servers)
app = FastAPI(
title="Throwbackmemo API",
version="0.3.0",
servers=servers,
docs_url=f"{API_PREFIX}/docs",
openapi_url=f"{API_PREFIX}/openapi.json",
)

public_api = APIRouter(prefix=API_PREFIX)
public_api.include_router(auth.router)
Expand Down
45 changes: 45 additions & 0 deletions postman/environments/local.postman_environment.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"id": "1d2c946d-2c55-4a1b-b4b8-4c5299d17f37",
"name": "throwbackmemo-local",
"values": [
{
"key": "api_base_url",
"value": "http://localhost:8000/api",
"enabled": true
},
{
"key": "auth_email",
"value": "",
"enabled": true
},
{
"key": "auth_password",
"value": "",
"enabled": true
},
{
"key": "access_token",
"value": "",
"enabled": true
},
{
"key": "album_id",
"value": "",
"enabled": true
},
{
"key": "asset_id",
"value": "",
"enabled": true
},
{
"key": "media_file_path",
"value": "",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2025-12-04T14:30:00Z",
"_postman_exported_using": "Postman/11.19.0",
"type": "environment"
}
45 changes: 45 additions & 0 deletions postman/environments/production.postman_environment.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"id": "cb7b1d59-8b95-4e02-85fc-34a5934a3c9e",
"name": "throwbackmemo-production",
"values": [
{
"key": "api_base_url",
"value": "https://throwbackmemo.com/api",
"enabled": true
},
{
"key": "auth_email",
"value": "",
"enabled": true
},
{
"key": "auth_password",
"value": "",
"enabled": true
},
{
"key": "access_token",
"value": "",
"enabled": true
},
{
"key": "album_id",
"value": "",
"enabled": true
},
{
"key": "asset_id",
"value": "",
"enabled": true
},
{
"key": "media_file_path",
"value": "",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2025-12-04T14:30:00Z",
"_postman_exported_using": "Postman/11.19.0",
"type": "environment"
}
45 changes: 45 additions & 0 deletions postman/environments/staging.postman_environment.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"id": "4f5f2d58-7b1f-4b56-97ef-1b1e4200e0bc",
"name": "throwbackmemo-staging",
"values": [
{
"key": "api_base_url",
"value": "https://staging.throwbackmemo.com/api",
"enabled": true
},
{
"key": "auth_email",
"value": "",
"enabled": true
},
{
"key": "auth_password",
"value": "",
"enabled": true
},
{
"key": "access_token",
"value": "",
"enabled": true
},
{
"key": "album_id",
"value": "",
"enabled": true
},
{
"key": "asset_id",
"value": "",
"enabled": true
},
{
"key": "media_file_path",
"value": "",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2025-12-04T14:30:00Z",
"_postman_exported_using": "Postman/11.19.0",
"type": "environment"
}
Loading