# OWNER wire checklist — WP-OWNER-WIRE-01
Agent không bịa secret. Paste credential vào file gitignored, rồi bảo agent «wire OWNER».
Paste vào đâu
| Gate | File (gitignore) | Keys |
|---|---|---|
| Firebase Web App ID | mobile/.env.local |
EXPO_PUBLIC_FIREBASE_WEB_APP_ID=1:…:web:… (và giữ Android id trong google-services.json) |
| Firebase Admin SA (optional) | api/.env |
FIREBASE_PROJECT_ID · FIREBASE_CLIENT_EMAIL · FIREBASE_PRIVATE_KEY |
| SMS eSMS | api/.env (+ VPS /opt/welife/api/.env) |
SMS_PROVIDER=esms · ESMS_API_KEY · ESMS_SECRET_KEY · ESMS_BRAND_NAME |
| SMS Twilio | same | SMS_PROVIDER=twilio · TWILIO_ACCOUNT_SID · TWILIO_AUTH_TOKEN · TWILIO_FROM_NUMBER |
| MoMo sandbox | api/.env (+ VPS) |
PAYMENTS_MOCK=false · MOMO_PARTNER_CODE · MOMO_ACCESS_KEY · MOMO_SECRET_KEY · MOMO_IPN_URL · MOMO_RETURN_URL · MOMO_ENV=sandbox |
| Google Maps geocode | api/.env (+ VPS) |
GOOGLE_MAPS_API_KEY · enable Places API (New) + Geocoding API · billing · restriction IP/None (không Android-only) · npm run routing:google:smoke |
Chi tiết: OWNER-GATES.md · OWNER-FIREBASE-HYBRID.md
Sau khi OWNER paste
npm run env:check(local) — không in secret- Restart API (
npm run api:devhoặc VPS recreate) - Smoke:
- Firebase: login web/Expo →
POST /auth/firebase - SMS:
POST /auth/otp/sendvới phone →smsProvider≠ console - MoMo: create payment sandbox → IPN HTTPS
- Firebase: login web/Expo →
- Agent cập nhật status trong
OWNER-GATES.md
Status (2026-08-14)
| Gate | Agent readiness | Blocker / OWNER action |
|---|---|---|
| Firebase Web App ID | WIRED (:web: trong mobile/.env.local) |
Restart Expo · smoke login web |
| Firebase Auth/Hosting deploy | Script firebase-owner-setup.mjs |
OWNER: firebase login rồi chạy script |
| Firebase Admin SA | Bridge off (EXPO_PUBLIC_FIREBASE_BRIDGE=0) |
Optional: paste SA vào api/.env |
| Email OTP (Gmail SMTP) | WIRED PROD | OWNER mở inbox xác nhận OTP thật |
| SMS (eSMS) | KEYS ON VPS · smsLive=true · re-smoke 2026-08-19 |
OWNER: nhận SMS brand WELIFE · hoặc blast ok + SĐT (agent không tự blast) |
| VNPay sandbox | CREATE PASS (re-smoke 2026-08-17) | OWNER: mở payUrl → thanh toán test → ví · report |
| MoMo sandbox | CREATE FAIL (merchant inactive) | OWNER: portal · report |
| EAS preview APK | DONE CON+DRV+PAR | OWNER: cài APK · EAS-BUILD |
MOMO_ENV |
SET sandbox |
— |
Hub: STATUS.md · OWNER-GATES.md
Report Pay: reports/OWNER-PAY-E2E-2026-08-14.md · prior 2026-08-12
Agent stop-gate: không gửi OTP/SMS thật và không hoàn tất thanh toán live trừ khi OWNER mở payUrl thủ công.
Không commit .env / SA JSON / payment keys.