内部上线检查

Booking System 上线检查

检查短租 direct booking、中租 quote approval、长租 application、PMS handoff、payment、documents、screening、lease packet、maps、reviews 和 ops alerts 的配置状态。

正在加载上线检查...

Production smoke / 上线证据

这个默认验收用于证明三类租赁系统已经接上生产环境变量、生产数据、Google discovery、reviews import、短租 ARI 日历价格、内部运营收件箱、funnel analytics、ops alert dry run、PMS gateway dry run、integration contracts、payment gateway dry run、payment webhook signed event、guest notification dry run、document storage dry run、长租 provider dry run 和长租 provider callback webhook dry run。默认不会创建真实订单;approved test window 内可加 --document-storage-live-test 验证文件 bucket 写入、读取和删除。

Evidence
生产 / staging 默认验收命令 BOOKING_AUDIT_BASE_URL=https://your-domain.example BOOKING_INTERNAL_API_TOKEN=... BOOKING_SMOKE_SHORT_TERM_PROPERTY_ID=approved-test-property npm run booking:production-smoke -- --require-ready --report-file=reports/booking-production-smoke.json npm run booking:production-smoke -- --env-file=.env.production --require-ready --report-file=reports/booking-production-smoke.json

默认模式要求 env_file_loaded 通过或运行环境已直接注入变量,booking_env_readiness 显示 required env groups 全部 ready,并且目标环境不能配置 BOOKING_SANDBOX_GATEWAYSsource=database、Google Places / Maps 已配置、discovery_provider_live 通过、三类库存 API 有房源、first_screen_contract_routes 证明短租 / 中租 / 长租首屏契约路由通过、booking_integration_contracts_manifest 完整、短租 short_term_ari_gateway_live 有真实 availability/rate、ops_inbox_internalops_inbox_recovery_samplesorder_processing_short_term_packageorder_processing_mid_term_packageorder_processing_long_term_packageanalytics_summary_internalops_alert_configuredops_alert_webhook_configuredops_alert_email_backup_configuredstatus_webhook_configured、PMS gateway dry run、pms_gateway_mid_term_operations_taskspms_gateway_long_term_operations_tasks、payment gateway dry run、payment_gateway_short_term_authorizationpayment_gateway_mid_term_quote_authorizationpayment_gateway_long_term_application_fee_authorizationpayment_gateway_long_term_move_in_authorizationpayment_gateway_short_term_capturepayment_gateway_short_term_pms_failure_voidpayment_gateway_mid_term_booking_failure_voidpayment_gateway_long_term_move_in_voidpayment_webhook_signed_eventguest_notification_configuredguest_notification_account_queue_configuredguest_email_notification_configuredguest_sms_notification_configured、document storage dry run、长租 provider dry run、long_term_provider_webhook_screening_resultlong_term_provider_webhook_lease_packet 都能用内部 token 验证。production_smoke_check_coverage 必须通过,证明 smoke 报告包含所有默认上线检查;production_smoke_plan_ready 必须通过,证明 planGapSummary.readyForLaunchProven=trueops_inbox_recovery_samples 必须证明短租 capture / conversation / cleaning failure、payment void、PMS handoff、screening、lease 和中长租 operations task failure 都会进入正确 owner queue,并带有 critical priority、nextAction、checklist 和 actionLinks。order_processing_*_package 必须证明短租、中租、长租单笔记录能打开 owner queue、handoff、nextActions、eventTimeline 和人工恢复入口;没有 live record 时要验证 authenticated not-found contract。analytics_summary_internal 还必须满足 coverageTypes.has("short_term")coverageTypes.has("mid_term")coverageTypes.has("long_term")coverageShapeOk,也就是每个租赁类型都返回 requiredEvents、missingEvents 和 complete。需要验证 storage object API 时,在 approved test window 加 --document-storage-live-test,输出应包含 document_storage_live_object--allow-sandbox-gateways 只允许本地演练,不能附到上线工单。--report-file 会把完整 JSON 证据包写到指定文件,附到上线工单;--env-file 只输出加载状态和 key 数量,不打印 secret 值。

本地开发放宽命令 npm run booking:production-smoke -- --public-only --allow-fallback-content --allow-sandbox-discovery --report-file=/tmp/gng-booking-smoke-report.json

这个命令只证明本地公开页面和 API 通路能跑;不能作为上线完成证据。它可以验证 report 写入、printsSecretValues=false 和本地 fallback 状态,但不能替代生产 PMS、payment、Supabase、Google 或 provider 验收。

Readiness 证据包模板 npm run booking:readiness-audit -- --report-file=reports/booking-readiness.json --markdown-file=reports/booking-readiness.md

这个命令不会改数据,只把 /api/booking/readiness 的 open items、console URLs、smoke check id、required evidence 和 launch checklist 写成 JSON 与 Markdown。需要给部署流程或上线工单读取精简结构时,用 GET /api/booking/launch-checklist;它只输出状态、下一步、smoke 命令、证据项和 env 名称,不输出 secret 值。

三类租赁首屏契约验收 BOOKING_AUDIT_BASE_URL=https://your-domain.example npm run booking:first-screen-audit

这个命令会检查短租、中租、长租页面是否按计划把搜索、精品分类、精品房源、账号/处理路径放进首屏顺序,并确认 /short-term-rental-booking/mid-term-rental-booking/long-term-rentals/long-term-rental-booking 都返回正确公开内容。

Go-live bundle files / 执行包文件

上线工单不能只写“页面可打开”。必须附上 Supabase SQL 执行包、provider 交接包、readiness 和 production smoke 报告,并证明所有生产外部连接不是 fallback / sandbox。

Required
1. Supabase migration / seed / storage 包 npm run booking:supabase-go-live-bundle -- --manifest-file=reports/booking-supabase-go-live.json --sql-file=reports/booking-supabase-go-live.sql --markdown-file=reports/booking-supabase-go-live.md
  • reports/booking-supabase-go-live.json
  • reports/booking-supabase-go-live.sql
  • reports/booking-supabase-go-live.md
  • reports/booking-supabase-tests/apply-sql.log
  • reports/booking-supabase-tests/supabase-migration-approved-live.json

验收点:status=ready_to_applymigrationCount=6missing=none;生产执行后 /api/rentals/collections?type=short_term 必须返回 source=database,并能看到 12 个短租精品分类。

2. Provider / PMS / payment 交接包 BOOKING_AUDIT_BASE_URL=https://your-domain.example npm run booking:provider-go-live-packet -- --base-url=https://your-domain.example --json-file=reports/booking-provider-go-live.json --markdown-file=reports/booking-provider-go-live.md
  • reports/booking-provider-go-live.json
  • reports/booking-provider-go-live.md
  • reports/booking-provider-tests/*-dry-run.json
  • reports/booking-provider-tests/*-approved-live.json

验收点:providerContractCount=16workflowCount=5workOrderCount=36;approved-live 文件必须来自批准测试窗口,dry run 不能冒充真实 PMS booking、payment capture、screening order 或 lease packet。

3. 最终 readiness / smoke 报告 BOOKING_AUDIT_BASE_URL=https://your-domain.example npm run booking:readiness-audit -- --report-file=reports/booking-readiness.json --markdown-file=reports/booking-readiness.md BOOKING_AUDIT_BASE_URL=https://your-domain.example BOOKING_INTERNAL_API_TOKEN=... npm run booking:production-smoke -- --require-ready --report-file=reports/booking-production-smoke.json
  • reports/booking-readiness.json
  • reports/booking-readiness.md
  • reports/booking-production-smoke.json
  • reports/booking-production-smoke-document-storage.json,如运行 live object test

验收点:readyForLaunch=trueoverallStatus=readyproduction_smoke_plan_readyplanGapSummary.readyForLaunchProven=trueprintsSecretValues=falsesource=database、Google Places / Maps、PMS、payment、notification、documents、screening、lease、status webhook 和 ops inbox 都是生产 configured。

上线验收不要使用 --allow-fallback-content--allow-sandbox-discovery。如果 smoke 输出里 collections/admin content 还是 source=default,或 Places / Maps 还是 fallback,就说明还没有完成生产接入。上线工单必须附上 report.written=trueprintsSecretValues=false 的 production smoke JSON。
Readiness evidence package / 证据包

复制这份 JSON 到上线工单,逐项补齐 missing、needs_verification 和 launch checklist 证据。

加载 readiness 后生成。
Go-live handoff packet / 生产交接包

来自 /api/booking/launch-checklist,把 16 个外部集成合同和 5 条真实 workflow matrix 放在同一份无 secret 的交接包里。

0Contracts
0Workflows
0Configured
0Needs env
0Work orders

加载 launch checklist 后显示合同。

加载 launch checklist 后生成。

运营收件箱

管理公司用内部 token 查看官网已收到的短租草稿 / 订单、中租需求 / 报价、长租看房 / 申请和异常事件。Token 只放在本次请求 header,不写入页面 URL。

Internal

输入内部 token 后读取 /api/booking/ops-inbox。未配置 token 时接口会返回 not_configured。

Booking funnel analytics

管理公司用内部 token 查看短租、中租、长租页面事件和转化漏斗,用于判断 Search -> Detail -> Checkout / Request / Tour / Application 的实际表现。

Internal

输入内部 token 后读取 /api/booking/analytics-summary。该接口只汇总事件,不返回 token 或 raw payment data。