Public Access
26 lines
1.0 KiB
Markdown
26 lines
1.0 KiB
Markdown
# 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.
|