English {#english}
Tenant command center
In prego-control-plane React admin, open /cp/tenant (optional query ?tenant_id= for deep links). Search tenants via GET /internal/tenants-directory?q=, pick a row, then the page loads related internal APIs in parallel and merges a read-only timeline.
Authentication matches other CP tools: cp_internal_key in sessionStorage (Bearer INTERNAL_API_KEY). See prego-control-plane-dashboard.
Internal APIs used (tenant-scoped where supported)
| Endpoint | tenant_id filter | Notes |
|---|---|---|
GET /internal/tenants-directory?q= | Indirect (search matches tenant_id exact or subdomain) | Master row: status, plan, region, subdomain, hostname. |
GET /internal/provision-jobs?tenant_id= | Yes | Recent jobs for the tenant; latest job drives trace fetch. |
GET /internal/onboarding-status?tenant_id= | Yes | Coarse onboarding steps + trace_id / origin URLs when present. |
GET /internal/allocation-decisions?tenant_id= | Yes | Placement audit rows for the tenant. |
GET /internal/provision-trace-detail?job_id= and/or ?trace_id= | Via job/trace | Ordered trace_events (e.g. prego_ui_step_*). Prefer job_id when known. |
GET /internal/funnel-events?trace_id= | No — filters by trace_id only | Load funnel rows after a trace_id is resolved (job, onboarding, or allocation). If there is no trace, funnel stays empty. |
This is a front-end aggregation (plan option A). If latency becomes an issue, a future GET /internal/tenant-journey?tenant_id= BFF could collapse the calls (Worker-only; no Zuplo).
Related
- Control Plane — provisioning progress (operator) — when to use Provision trace vs Onboarding vs Infra.
- Internal placement API — placement diagnostics.
한국어 {#korean}
Tenant command center (테넌트 통합 화면)
prego-control-plane React 관리자에서 /cp/tenant 로 진입한다(딥링크 ?tenant_id= 가능). GET /internal/tenants-directory?q= 로 검색 후 행을 선택하면, 관련 internal API 를 병렬 호출해 타임라인을 한 화면에 모은다.
인증은 다른 CP 도구와 동일: sessionStorage 의 cp_internal_key(Bearer INTERNAL_API_KEY). 배포 URL·키는 prego-control-plane-dashboard 참고.
사용하는 Internal API (tenant 필터 여부)
위 영어 표와 동일하다. 퍼널은 trace_id 가 있을 때만 GET /internal/funnel-events?trace_id= 로 채운다.