package web // Infra-stack display metadata (v0.126.0 Part B). The protected base stacks (infra.go: // traefik, cloudflared, filebrowser) carry no catalog metadata, so they rendered as bare // directory names on the dashboard and app cards. This map gives them curated Hungarian // identity — DISPLAY ONLY, keyed by stack name; it never affects protection, deploy or // backup logic. // // Linked marks the ONLY infra stack with a customer-facing UI (filebrowser → // files.). cloudflared and traefik have no customer UI — rendering an open link // for them is the guarded-wrong outcome (render test asserts absence). // InfraMeta is one protected infra stack's customer-facing identity. type InfraMeta struct { DisplayName string Description string Linked bool // has a customer-facing URL (subdomain via protectedStackSubdomains) } var infraMetaMap = map[string]InfraMeta{ "cloudflared": { DisplayName: "Cloudflare Tunnel", Description: "Biztonságos internetkapcsolat — a szerver portnyitás nélkül érhető el kívülről.", }, "traefik": { DisplayName: "Traefik", Description: "Forgalomirányító (reverse proxy) — a kéréseket a megfelelő alkalmazáshoz irányítja.", }, "filebrowser": { DisplayName: "FileBrowser", Description: "Fájlkezelő — a tárhely fájljainak böngészése a böngészőből.", Linked: true, }, } // infraMetaFor returns the curated metadata for a protected infra stack, nil for // everything else (templates branch on the nil). func infraMetaFor(stackName string) *InfraMeta { if m, ok := infraMetaMap[stackName]; ok { return &m } return nil } // InfraLogoSVG is the shared generic infra icon (Lucide-style "server", monochrome, // --text-2 stroke) — the last-resort icon for infra stacks whose logo asset is not // synced. Served at /static/infra-logo.svg; consumed via the app-row FallbackIcon slot. const InfraLogoSVG = ``