AI Page Import — 概要
Page Import は独立して再利用できる public URL capture system です。POST /page-imports が PostgreSQL の page_import 行を作成して attempt-fenced SQS message を送り、apps/page-import が Playwright Chromium で URL を開きます。完全に render された page を capture し、immutable evidence を S3 に保存して、POST /api/v1/webhooks/ai-status へ terminal manifest を通知します。
Figma plugin から scraping は開始しません。Public URL capture は REST から別に開始します。Plugin は completed Page Import を一覧し、user が選択した後にだけ separate Code2Des API を呼び、その新しい result を materialize します。
Scope
- Import ごとに一つの公開 HTTP(S) URL と viewport。
- JavaScript 実行後の DOM、computed style、document geometry、paint order、SVG evidence、screenshot、image asset。
- 任意の
readySelectorと、navigation/readiness/asset download の timeout。 - Worker は LLM、embedding、PostgreSQL、DocumentDB を使用しません。
- Crawl、認証済み browser session、form submit、複数 viewport は対象外です。
Security boundary
Worker は新しい browser context を使います。Credential 付き URL と非標準 port を拒否し、DNS 結果が public address であることを要求します。Navigation 中の private/link-local/loopback request を遮断し、asset redirect の各遷移先も download 前に再検証します。Asset と result は tenant-scoped key へ immutable write します。
Ownership
| Layer | Responsibility |
|---|---|
| Backend | Authorization、Page Import PostgreSQL lifecycle、nonce/attempt、queue dispatch、webhook transition |
| Page Import worker | Browser capture、normalization、immutable S3 artifact、terminal webhook |
| Code2Des worker | Pinned capture から native-Figma spec への決定的変換 |
| Figma plugin | 完了 job の選択と native node 作成のみ |
別途記載されている repository/CLI upload API は将来の source adapter の計画です。実装済み public-URL pipeline の source path ではありません。