Skip to content

Latest commit

 

History

History
66 lines (44 loc) · 2.82 KB

File metadata and controls

66 lines (44 loc) · 2.82 KB

Ambassador Godknows Igali Digital Library

A Next.js + TypeScript + Tailwind research catalog for source-backed books, articles, interviews, videos, statements, reports, speeches, profiles, and other public records connected to Ambassador Godknows Igali. It uses SQLite + Drizzle locally and keeps public publication behind an explicit approval gate.

Current research corpus

The current import source is:

docs/Ambassador_Godknows_Igali_Exhaustive_Master_Catalog_223_Records.json

It contains 223 records: 195 verified, 21 needs review, and 7 candidates. The SQLite seed includes all 223 records and their available provenance, sources, rights notes, identifiers, participants, topics, and research notes. Only approved verified records are public; needs-review and candidate records remain private.

Local setup

npm install
npm run db:migrate
npm run catalog:replace -- --confirm-replace
npm run catalog:approve-initial
npm run dev

Open http://localhost:3000.

Reusable production seeding

The seed commands accept either a positional JSON path or CATALOG_SOURCE_FILE. Set the production database path/connection configuration in the deployment environment, never in committed files.

# Validate a source before importing it
CATALOG_SOURCE_FILE=/secure/catalog.json npm run catalog:validate

# Idempotently import a source without deleting existing catalog rows
CATALOG_SOURCE_FILE=/secure/catalog.json npm run catalog:import

# Deliberately replace catalog-owned tables only (requires explicit confirmation)
CATALOG_SOURCE_FILE=/secure/catalog.json npm run catalog:replace -- --confirm-replace

# Approve the research-verified initial collection after import
CATALOG_APPROVAL_ACTOR=production-curator npm run catalog:approve-initial

# Machine-readable reconciliation report
npm run catalog:verify-import

catalog:replace clears only the catalog tables managed by this application; it does not delete unrelated future application tables. It always requires --confirm-replace, including in production. The import is staged and idempotent when using catalog:import; the replacement command is for a deliberate full-corpus refresh.

Quality checks

npm run catalog:validate
npm run catalog:test-import
npm run catalog:test-repository
npm run catalog:test-url
npm run lint
npm run typecheck
npm run build

Dashboard status

An editor/dashboard UI is not implemented yet. New material is currently introduced through a reviewed research JSON file and the import workflow above. A future dashboard should write the same provenance, review, and publication-approval fields rather than bypassing them.

Important copyright rule

Do not upload or rehost copyrighted books, articles, videos, or full transcripts unless permission exists. Store metadata, citations, source links, and permitted embeds only.