利用しているデータの規模
数が大きいこと自体を価値とは考えていません。登録した地域やモノによって答えが変わり、次の行動へ変換できるデータだけを選びます。
東京都内の区市町村等を地域選択の対象として管理
住所対応と各機能の対応範囲は分けて判定
街区、集合住宅、町会、公式地区などの条件差を保持
数字は機能ごとに意味が異なります
62自治体で同じ粒度の料金、収集日、品目判定を提供するという意味ではありません。機能別の内訳と制約はデータ対応範囲で公開しています。
62自治体で同じ粒度の料金、収集日、品目判定を提供するという意味ではありません。機能別の内訳と制約はデータ対応範囲で公開しています。
システム全体像
STATIC DELIVERYCloudflare Pages
アプリのWeb bundleと公開Wikiを配信します。家庭データを保管するDatabaseではありません。
Expo AppReact Native / Expo Router
Local repositoryゲスト利用・オフライン継続
Encrypted storageNativeはAES-256-GCM、鍵はSecureStore
クラウド選択時
Auth + PostgreSQL世帯状態、役割、revision、RLS
Private Storage写真・説明書・保証書、署名付きURL
Edge Functions秘密鍵、外部API、入力・送信境界
必要な操作時のみ
東京都・自治体の公式情報snapshot、自治体別shard、SQLite索引
OpenAI・商品Provider写真候補、商品名・型番検索のみ
Expo Push・Google Calendar任意接続。本番・物理端末検証に制約
重要な境界:AIは品目や型番の候補を作れますが、分別区分、収集日、料金、施設状態を生成しません。公式データを安全に判定できない場合は、推測せず原典へ案内します。
データが流れる3つの場面
LOCAL FIRST
モノを登録する
写真・手入力確認・修正端末保存
AIを使わなければ写真と家庭データは端末内で完結します。Nativeの保存状態は暗号化し、ゲストとして主要機能を利用できます。
OPTIONAL CLOUD
家族と共有する
本人確認RLS判定世帯同期
クラウドを選んだ場合だけ世帯状態を同期します。owner、editor、viewerの権限をDatabaseとアプリの両方で判定します。
OFFICIAL ACTION
地域の捨て方を調べる
モノ+地域公式条件行動計画
更新スクリプトで確認した自治体別データを読み、必要条件、結論、手順、注意、原典を一つの導線へ変換します。
セキュリティの6層
Nativeの業務データはAES-256-GCMで暗号化し、鍵を端末限定のSecureStoreへ分離します。
Databaseのmembershipを正本とし、RLSとアプリのmutation境界で権限外の操作を拒否します。
写真や書類は非公開Storageへ置き、必要な時だけ短時間の署名付きURLを発行します。
AI、商品検索、Google連携の秘密情報はEdge Function側へ置き、クライアントへ含めません。
送信は利用者が機能を選んだ時だけ。商品検索へ住所、場所階層、所有物一覧を送りません。
通常削除は30日間復元可能にし、完全削除とアカウント削除ではDatabaseとStorageを対象にします。
セキュリティ実装と本番保証は同じではありません
RLS、非公開Storage、世帯権限、アカウント削除は遠隔自動検証済みです。一方、物理端末2台のRealtime、署名URLの実時間失効、Push、Google OAuth、scheduled purgeを含む本番連続運用には未検証項目があります。
RLS、非公開Storage、世帯権限、アカウント削除は遠隔自動検証済みです。一方、物理端末2台のRealtime、署名URLの実時間失効、Push、Google OAuth、scheduled purgeを含む本番連続運用には未検証項目があります。
構成要素と役割
| 構成要素 | 主な役割 | 家庭データとの関係 | 現在の状態 |
|---|---|---|---|
| Expo / React Native | iOS・Android・WebのUIと端末機能 | 端末内repositoryを通じて操作 | 実装済み |
| Cloudflare Pages | Web bundleと公開Wikiの静的配信 | 家庭データのDatabaseではない | 公開中 |
| Supabase Auth | メール認証とsession | クラウド利用を選んだ場合 | 実装済み |
| PostgreSQL + RLS | 世帯状態、役割、同期revision | household単位で分離 | 遠隔自動検証済み |
| Private Storage | 写真、説明書、保証書、レシート | 非公開object pathと署名URL | 遠隔自動検証済み |
| Edge Functions | AI・商品API・OAuth等のserver境界 | secretと送信項目を端末から分離 | 実装済み・接続条件あり |
| 自治体別runtime asset | 分別、収集日、回収・リユース | 読み取り専用の公式情報 | 機能別coverage |
| OpenAI・商品Provider | 候補生成と商品検索 | 利用者の選択時だけ送信 | 任意・条件付き |
| Expo Push・Google Calendar | 通知と専用予定連携 | 明示的な有効化が必要 | 本番・物理端末未検証あり |
公式データの更新方法
01原典を取得東京都・自治体のCSV、HTML、PDF
02変更だけ抽出ETag、Last-Modified、hash
03人が確認条件、出典、利用許諾、更新日
04assetを生成自治体別JSON shard・SQLite索引
05アプリで判定不明時は公式原典へfallback