import { Activity, ArrowUpRight, Box, Database, ShieldCheck, Users, } from "lucide-react"; import { Link } from "react-router-dom"; import { Badge } from "../../components/ui/badge"; import { Button } from "../../components/ui/button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "../../components/ui/card"; import { t } from "../../lib/i18n"; import PermissionChecker from "./components/PermissionChecker"; const summaryCards = [ { labelKey: "ui.admin.overview.summary.total_tenants", labelFallback: "Total Tenants", value: "-", hintKey: "msg.admin.overview.summary.total_tenants", hintFallback: "Tenant-aware core", icon: Users, }, { labelKey: "ui.admin.overview.summary.oidc_clients", labelFallback: "OIDC Clients", value: "-", hintKey: "msg.admin.overview.summary.oidc_clients", hintFallback: "Hydra registry", icon: ShieldCheck, }, { labelKey: "ui.admin.overview.summary.audit_events_24h", labelFallback: "Audit Events (24h)", value: "-", hintKey: "msg.admin.overview.summary.audit_events_24h", hintFallback: "ClickHouse stream", icon: Activity, }, { labelKey: "ui.admin.overview.summary.policy_gate", labelFallback: "Policy Gate", value: "Planned", hintKey: "msg.admin.overview.summary.policy_gate", hintFallback: "Keto + Admin checks", icon: Database, }, ]; function GlobalOverviewPage() { return (

{t("ui.admin.overview.kicker", "Global Overview")}

{t("ui.admin.overview.title", "Tenant-independent control plane")}

{t( "msg.admin.overview.description", "모든 테넌트 공통 지표와 정책 상태를 한 곳에서 확인합니다.", )}

{t("msg.admin.overview.idp_primary", "IDP: Ory primary")} {t("msg.admin.overview.idp_fallback", "Fallback: Descope")}
{summaryCards.map( ({ labelKey, labelFallback, value, hintKey, hintFallback, icon: Icon, }) => ( {t(labelKey, labelFallback)}
{value}

{t(hintKey, hintFallback)}

), )}
{t("ui.admin.overview.playbook.title", "Admin playbook")} {t( "msg.admin.overview.playbook.description", "운영 정책, 레이트리밋, 감사 로그의 기본 룰을 요약합니다.", )}

{t( "msg.admin.overview.playbook.idp_title", "Backend-only IDP access", )}

{t( "msg.admin.overview.playbook.idp_body", "모든 IDP 호출은 backend를 통해서만 수행하며, Hydra/Kratos admin 포트는 외부에 노출하지 않습니다.", )}

{t( "msg.admin.overview.playbook.tenant_title", "Tenant isolation", )}

{t( "msg.admin.overview.playbook.tenant_body", "Tenant 헤더와 감사 로그 규칙을 기본 적용하며, 향후 Keto 정책으로 확장 예정입니다.", )}

{t("ui.admin.overview.quick_links.title", "빠른 이동")} {t( "msg.admin.overview.quick_links.description", "주요 운영 화면으로 바로 이동합니다.", )}
); } export default GlobalOverviewPage;