Public Access
1.0 KiB
1.0 KiB
Recipe Catalog Import Phase 3
Scope
Added the admin review API and atomic staged-recipe publication boundary.
Implementation
- Added paginated/filterable queue and provenance detail endpoints under
/api/admin/recipe-imports. - Added approve/reject transitions protected by the existing admin bearer dependency.
- Revalidates immutable Wikibooks payloads and maps exact-name canonical ingredients without fuzzy matching.
- Publishes global text-only recipes and review metadata in one transaction.
- Handles idempotent approval/rejection, deleted-recipe republication, page-level publication deduplication, checksum conflicts, integer bounds, and concurrent revision races.
Verification
- Combined Phase 1-3 PostgreSQL tests:
45 passed in 9.11s. - Offline Wikibooks tests:
23 passed, 2 deselected in 1.70s. - Python compilation and scoped
git diff --check: passed. - Follow-up adversarial review: no remaining P1/P2 findings.
- Disposable PostgreSQL databases were removed.
Status
Phase 3 is complete. Phase 4 is in progress.