"use client"; // @yakcloud/client-shell — 연결 도움말 사이드 시트(usePanelSheets 로 열림). // 자격증명 없이 접속 방법만: host/port(예시 placeholder), _* env 키 이름, 로컬 Docker 사용 안내. // ⛔ /api/internal/credentials 등 비밀 fetch 금지(그런 엔드포인트는 존재하면 안 됨). 값은 전부 placeholder. // ui(CardSheet, CodeBlock, C) 런타임 소비, ds-sdk(BIND_ENV_VARS, bindEnvKeys) type-only 아님 — 상수/헬퍼는 값 import. import { CardSheet, CodeBlock, C } from "@yakcloud/ui"; import { BIND_ENV_VARS, bindEnvKeys } from "@yakcloud/ds-sdk"; import type { ServiceTypeDTO } from "@yakcloud/ds-sdk"; export function ConnectionHelpSheet({ open, onClose, sourceType, alias, scrollContainer, }: { open: boolean; onClose: () => void; sourceType: ServiceTypeDTO; alias: string; // 앱 바인딩 별칭(예: "mydb") → PREFIX 도출 scrollContainer?: HTMLElement | null; }) { const vars = BIND_ENV_VARS[sourceType]; const keys = bindEnvKeys(alias, sourceType); return (

주입되는 환경변수

    {vars.map((v, i) => { const key = keys[i]; return (
  • {key ?? `${alias.toUpperCase()}_${v.suffix}`} {v.desc} 예: {v.example || "(빈값)"}
  • ); })}

로컬 Docker 예시 (모두 placeholder)

# 실제 값이 아닌 예시입니다. 값은 서버에서만 조립됩니다.
docker run \
{vars.slice(0, 4).map((v, i) => { const key = keys[i] ?? `${alias.toUpperCase()}_${v.suffix}`; return ( {" "}-e {key}=<{v.suffix.toLowerCase()}> \
); })} {" "}your-app:latest

비밀번호·액세스 키는 이 화면에 표시되지 않으며, 앱 실행 시점에만 파드 환경으로 전달됩니다.

); }