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
20 changes: 17 additions & 3 deletions docs/database/entity-enrichment-pipeline.md
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,10 @@ Recommended implementation home:
- candidate extraction and profile/Gemini enrichment: ai-server scheduler or
worker, because `instagram.py`, Instaloader, Gemini usage, and existing
scheduler patterns already live there;
- admin control and review: Next.js admin APIs/pages under `packages/web`;
- operation writes: service-role server-side only, with audit/provenance.
- admin control and review: Next.js admin pages; **operation DB reads via api-server**
(`GET /api/v1/admin/entity-enrichment/instagram-accounts`, #578) — not Vercel
`DATABASE_SERVICE_ROLE_KEY`;
- operation writes: service-role on api-server / ai-server only, with audit/provenance.

## Admin Dashboard Scope

Expand Down Expand Up @@ -336,7 +338,19 @@ We want to use Gemini 2.5 Flash with Google Search grounding to enrich missing `
- First release should process both new tagged accounts and existing operation `instagram_accounts` that are missing names/images/review state.
- Reuse the existing R2 public URL strategy for profile/logo images; do not add Supabase Storage for this flow.
- Review operation RLS posture before exposing more audit/admin data. Current MCP advisory reports RLS disabled on `seaql_migrations`, `admin_audit_log`, and `post_magazine_events`.
```

## Program follow-up (text → FK-first)

Ship scope for the pipeline itself is [#495](https://github.com/decodedcorp/decoded/issues/495) (closed, PR #544). Broader **entity ID migration** (app/search/write path) is tracked on GitHub only — not a separate file under `docs/database/`.

| Item | GitHub |
| ---- | ------ |
| Program epic | [#580](https://github.com/decodedcorp/decoded/issues/580) |
| S1 audit & S2 plan | [#581](https://github.com/decodedcorp/decoded/issues/581) |
| Admin list api-server proxy | [#578](https://github.com/decodedcorp/decoded/issues/578) |
| Backfill queue PoC | [#582](https://github.com/decodedcorp/decoded/issues/582) |

Sprint task ↔ issue mapping lives in vault `2026-S1` (not monorepo). S2 waves (Meilisearch, UI resolver, write path) are out of scope for this RFC — see epic #580.

## Documentation Checklist

Expand Down
1 change: 1 addition & 0 deletions docs/database/operating-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ unset PRD_DB_URL
| Supabase CLI 사용법 (link, push, gen types) | [`docs/database/04-supabase-cli-setup.md`](04-supabase-cli-setup.md) |
| nightly drift CI 운영 (#373) | [`docs/database/drift-check.md`](drift-check.md) |
| Entity enrichment RFC | [`docs/database/entity-enrichment-pipeline.md`](entity-enrichment-pipeline.md) |
| Entity ID migration program (issues only) | GitHub [#580](https://github.com/decodedcorp/decoded/issues/580) (+ #581, #582); sprint mapping in vault `2026-S1` |
| PRD → dev 시드 자동화 스크립트 | [`scripts/seed-from-prod.sh`](../../scripts/seed-from-prod.sh) |
| assets 프로젝트 설계 (#333) | [`docs/architecture/assets-project.md`](../architecture/assets-project.md) |
| agent 짧은 요약 | [`docs/agent/database-summary.md`](../agent/database-summary.md) |
Expand Down
Loading
Loading