コンテンツにスキップ

アダプタ検証状況

アダプタ検証状況と実接続設定

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.0
bun install --frozen-lockfile --ignore-scripts
bun run test:adapters:local
bun run test:containers

test: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.