콘텐츠로 이동

DADP Hub CLI

DADP Hub 6.0 CLI는 Hub 설치 패키지에 포함되는 운영 명령줄 도구다. 운영자는 이 도구로 Hub 로그인, 라이선스 확인, Wrapper JAR 다운로드, Wrapper 등록, Wrapper refresh를 수행한다.

기본 형식

dadp [--hub-url http://127.0.0.1:9004] <command>

최초 로그인 시 Hub URL을 검증하고 저장한다.

dadp --hub-url http://<hub-host>:9004 login

저장된 Hub URL을 사용하면 이후 명령에서는 --hub-url을 반복 입력하지 않아도 된다.

도움말

CLI는 명령별 설명과 예시를 자체 도움말로 제공한다.

dadp help
dadp login --help
dadp wrapper --help
dadp wrapper schema register --help
dadp wrapper refresh --help

help, --help, -h는 동일한 도움말 요청으로 처리한다. 도움말 출력은 Hub API를 호출하지 않는다.

명령 목록

명령 설명
login [username] [password] Hub URL을 검증하고 로그인 세션을 저장한다.
logout 저장된 로그인 세션을 제거한다.
license status Hub 라이선스 상태를 조회한다.
license register <license-key> 라이선스 키를 등록한다.
system status Hub, DB, Manager, 라이선스 상태를 조회한다.
wrapper download [--lib-dir <app-lib-dir>] 현재 Wrapper JAR를 애플리케이션 lib 디렉터리에 다운로드한다.
wrapper enroll [--alias <alias>] [--lib-dir <app-lib-dir>] 이미 스키마가 등록된 alias에 대해 새 Wrapper tenant만 발급한다.
wrapper schema register 대화형으로 DB 스키마를 수집하고, alias와 함께 Hub에 등록하고, wrapper tenant runtime을 저장한다.
wrapper schema collect --lib-dir <app-lib-dir> --jdbc-url <jdbc:dadp:...> DB 스키마 JSON만 생성한다. Hub에 접속하지 않고 tenantId를 발급하지 않는다.
wrapper schema register --file <schema-register.json\|-> --alias <alias> 기존 스키마 JSON을 alias와 함께 Hub에 등록한다.
wrapper refresh [<app-lib-dir>\|--lib-dir <app-lib-dir>] 기존 proxy-config.json의 tenantId/runtimeVersion으로 wrapper runtime 파일을 갱신한다.
version CLI 버전을 출력한다.

Wrapper 표준 설치 흐름

고객사 애플리케이션의 lib 디렉터리에서 실행한다.

cd /opt/customer-app/lib

dadp --hub-url http://<hub-host>:9004 login
dadp wrapper download
dadp wrapper schema register
dadp wrapper refresh

wrapper schema register 대화형 입력:

Alias:
JDBC URL:
DB user:
DB password:
Wrapper lib dir [<current directory>]:

JDBC URL에는 DB 접속 정보만 넣는다. hubUrl, alias, tenantId, cryptoMode, enabled, failOpen, debugEnabled, debugLevel, policySyncAutoEnabled, runtime.engineUrl은 JDBC URL에 넣지 않는다.

예:

jdbc:dadp:postgresql://192.168.0.2:5434/test_app_postgres_db?ssl=false

Wrapper runtime 파일

CLI는 Wrapper JAR가 있는 lib 디렉터리 기준으로 runtime 파일을 생성한다.

<app-lib-dir>/dadp/wrapper/<alias>/proxy-config.json
<app-lib-dir>/dadp/wrapper/<alias>/policy-mappings.json

wrapper refresh는 alias나 tenantId를 인자로 받지 않는다. CLI는 proxy-config.json에서 tenantId와 runtime version을 읽어 Hub에 요청한다. 변경이 없으면 Hub는 304 Not Modified를 반환하고, 변경이 있으면 200 OK와 함께 최신 runtime 설정과 정책 매핑을 반환한다. 이 명령은 DB 스키마를 수집하지 않고, alias를 등록하지 않고, 새 tenantId를 발급하지 않는다.

Wrapper enrollment output

표준 설치에서는 --output-enrollment를 사용하지 않는다.

기본 저장 위치:

<app-lib-dir>/dadp/wrapper/<alias>/proxy-config.json

예외적으로 직접 지정해야 한다면 파일명까지 포함한 경로를 입력한다.

dadp wrapper schema register \
  --file schema-register.json \
  --alias customer-db \
  --lib-dir /opt/customer-app/lib \
  --output-enrollment /opt/customer-app/lib/dadp/wrapper/customer-db/proxy-config.json

alias 디렉터리 경로가 들어오면 CLI는 <alias>/proxy-config.json으로 정규화한다. 해당 위치가 파일이면 Hub 등록 요청 전에 실패한다.