アダプタ検証状況
アダプタ検証状況と実接続設定
Section titled “アダプタ検証状況と実接続設定”記録日: 2026-10-17。検証レベルを混同しない。モック成功・型検査・互換サービス成功は、本番サービスの接続確認ではない。
| Adapter | 実施範囲 | 確認内容 | 未検証の範囲 | 必要な設定・前提 |
|---|---|---|---|---|
| PostgresGraphAdapter / DDL / introspection | 実PostgreSQL/Docker | 生成DDL、実テーブル参照、再帰探索・循環データ。 / Generated DDL, introspection and recursive traversal of cyclic data. | クラウドDBのTLS・権限・性能・大規模グラフ。 / Hosted TLS/privileges/performance/large graphs. | query(sql, values) for graph; connectionString + schema/table for introspection; dedicated writable test database. |
| DatabaseContentAdapter | 実PostgreSQL合成/composition | NeonAdapter(queryFn)でsave/update/get/list/deleteとtenant分離。 / Real save/update/get/list/delete and tenant separation. | 他のDB委譲先・競合更新。 / Other delegated backends and concurrent upserts. | db, table, mapping; set underlying idColumn to slug column where save updates by slug; tenantField/tenantId. |
| S3ContentAdapter | 実MinIO合成/composition | JSON/Markdownの保存・更新・再読込、永続index、削除。 / JSON/Markdown persistence, updates, persisted index and deletion. | クラウドストレージ固有挙動、分散同時更新。 / Cloud-specific behavior and distributed concurrent writes. | storage, keyPrefix, format; underlying storage credentials belong to its adapter. |
| GitMarkdownAdapter | 実ローカルFS + Git | frontmatter往復・パス安全性・実create/deleteコミット。 / Frontmatter/containment and actual create/delete commits. | remote pull/push、認証、merge conflict。 / Remote authentication/pull/push/merge conflicts. | repoPath/contentDir; autoCommit requires repository-local Git identity. pullBeforeWrite needs remote/upstream and app-managed Git credentials; no push guarantee. |
| HttpTaskGraphAdapter | 実loopback HTTP + 単体/loopback HTTP and unit | 実BFF handlerとのload/critical path/validateと不正token拒否。 / Real BFF load/critical-path/validate and invalid-token rejection. | 利用アプリのBFF・実ネットワークの全経路。 / App BFF and end-to-end network paths. | baseUrl, optional fetch/getToken/headers/credentials/endpoints; deployed handler with authorization and graph backend. |
| SchemaAwareSupabaseAdapter | 実PostgREST合成+単体/PostgREST composition and unit | 実RESTでのschema-aware find、カラム変換・schema mapping。 / Actual REST schema-aware find plus conversion/mapping unit tests. | ホストSupabase/RLSとschema mapping全組合せ。 / Hosted Supabase/RLS and every schema-mapping combination. | Supabase client + schemas; underlying REST prerequisites apply. This class is an internal implementation, not a separate supported export path. |
| CsvExcelAdapter / MockExcelAdapter | ローカル変換・モック/local and mock | CSV変換、ブラウザ/利用側テスト。 / CSV conversion and browser/consumer tests. | Mockは実Excelバックエンドの証拠ではない。 / Mock is not evidence for a real Excel backend. | Local data; Mock intentionally has no external connection. |
| WasmExcelAdapter / Excelize | 実WASMはExcelize経路/actual WASM via Excelize | ExcelizeはNode/Bunで実XLSX往復・style/formula/date・失敗。WasmExcelAdapterはinjected executorのJSON/byte境界のみ。 / Actual Excelize XLSX round trips/style/formula/date/errors; WasmExcelAdapter only has injected-executor JSON/byte checks. | WasmExcelAdapterの任意wasmUrl/Go executor、全ブラウザでの任意WASM配信。 / Arbitrary wasmUrl/Go executors and browser delivery. | WasmExcelAdapter: wasmUrl or customExecutor; Excelize: packaged WASM/runtime and appropriate host loader. These are separate paths. |
| HttpServerExcelAdapter | 実loopback HTTP/real loopback HTTP | binary byte往復・request/header・401拒否。生成サーバーは試験用でXLSX形式検査ではない。 / Binary/request/header transport and 401 rejection; fixture server does not certify XLSX format. | 利用アプリの実HTTP生成サーバー。 / App-owned HTTP generation server. | endpointUrl, headers/customFetch; server accepting workbook JSON and returning XLSX bytes; timeoutMs as needed. |
| SlackNotificationAdapter | 単体/モック/unit/mocked dispatch | 通知service経由の組立・失敗処理。 / Service composition/error handling. | Slack APIへの実送信・OAuth scope・rate limit。 / Actual delivery, OAuth scopes and rate limits. | botToken; channel ID, optional appToken/signingSecret; dedicated test workspace/channel and installed bot permissions. No live send runner. |
| LineNotificationAdapter | 単体/モック/unit/mocked dispatch | 通知service/署名等のローカル範囲。 / Local service/signature boundaries. | LINE API送信・reply token寿命。 / Actual sends and reply-token lifetime. | channelId/channelSecret/accessToken; dedicated Messaging API channel, recipient test user/group; webhook secret/URL. No live send runner. |
| GoogleChatNotificationAdapter | 単体/モック/unit/mocked dispatch | カード・通知の組立。 / Card/notification composition. | 実Webhook配信・workspace権限。 / Actual webhook delivery and workspace permissions. | webhookUrl (with key/token); dedicated Chat space. API mode additionally needs its configured identity/scopes. No live send runner. |
| Google Calendar client / GIS / watch | 単体モック/unit mocks | mapper・watch・OAuth stateのテスト。 / Mapping/watch/OAuth-state tests. | 実OAuth同意・refresh・API CRUD/watch・push通知。 / Actual consent/refresh/API CRUD/watch/push callbacks. | GoogleAuthConfig.clientId/scopes; app-origin OAuth setup, user access token, dedicated calendarId; public HTTPS callback and channel ID/token for watch. No live provider runner. |
| Storage editor / FileProvider composition | 実SQLite+ローカルFSのpacked利用側/packed consumer | DBとbinary storage、削除・補償・検索。 / DB/binary storage, deletion/compensation/search. | 全DB×全storageの組合せ、remote credentials。 / Every backend pair and remote credentials. | Explicit db/storage/file provider supplied by host; use dedicated metadata table and object prefix. |
再現手順
# public/ root; Docker + Node >=24 + Bun 1.4.0bun install --frozen-lockfile --ignore-scriptsbun run test:adapters:localbun run test:containerstest:adapters:local はD1/Better AuthとSupabase・Mongo・Convex・コンテンツ合成を実行する。test:containers は加えて既存MinIO/PostgreSQL検証を実行する。TOOLS_TEST_CONTAINERS=1 bun run verify でも両方が必須になる。
ログは各所有パッケージまたはルートの.verification/logs/。固有Compose projectとloopback動的ポートを使い、テストデータ/コンテナ/一時ファイルはfinallyで削除。外部サービス用の設定はアプリへ渡す値であり、上記ローカルrunnerが自動的に外部へ接続する環境変数ではない。外部接続試験は専用の非本番リソースと本人の許可を用意し、成功証跡・対象版・未実施項目を追記する。
References: Miniflare D1, PostgREST, Convex self-hosting, Better Auth SQLite.