다음을 통해 공유


validate 명령

런타임을 시작하지 않고 데이터 API 작성기 구성 파일의 유효성을 검사합니다. 검사 시퀀스(스키마, 구조, 사용 권한, 연결, 메타데이터)를 실행하고 성공(0) 또는 실패(0이 아닌)에 대한 종료 코드를 반환합니다. CI/CD 파이프라인에서 유용합니다.

Syntax

dab validate [options]

한눈에 보기

Option 요약
-c, --config 구성 파일의 경로입니다. 기본값은 환경별 또는 dab-config.json.

비고

validate 은 (가) 아닌 --config플래그를 허용합니다.

종료 코드

코드 Meaning
0 구성은 모든 단계를 통과했습니다.
0이 아닌 값 하나 이상의 스테이지가 실패했습니다. 자세한 내용은 로그를 참조하세요.

CI 예제:

dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }

-c, --config

구성 파일의 경로입니다. 생략하면 유효성 검사기가 먼저 dab-config.json찾습니다dab-config.<DAB_ENVIRONMENT>.json.

Example

dab validate --config ./dab-config.prod.json

유효성 검사 단계

유효성 검사는 순서대로 수행됩니다. 한 단계가 실패하면 이후 단계를 건너뜁니다.

1. 스키마

구성 JSON이 스키마와 일치하는지 확인합니다.

규칙

  • $schema 연결할 수 있거나 구조적으로 유효합니다.
  • data-source, runtimeentities 섹션이 존재하며 올바른 형식입니다.
  • 허용되지 않는 예기치 않은 속성(스키마당)
  • 열거형 값(예: database-type)이 유효합니다.

오류 및 수정

문제 Example 수정
맞춤법이 틀린 속성 "conn-string" "connection-string"을 사용합니다.
잘못된 열거형 "database-type": "mydb" 지원되는 값을 사용합니다.
잘못된 셰이프 entities as array 엔터티 이름으로 키가 지정된 개체를 사용합니다.

2. 구성 속성

스키마 이외의 일관성을 확인합니다.

규칙

  • 유효한 database-type 제공
  • 의 경우 cosmosdb_nosql데이터베이스 및 GraphQL 스키마 경로가 필요합니다. 엔터티에 따라 컨테이너가 필요할 수도 있습니다. REST 설정은 무시됩니다.
  • 하나 이상의 엔드포인트(REST, GraphQL, MCP)를 사용하도록 설정해야 합니다.
  • REST/GraphQL 경로는 시작 / 하며 충돌하지 않습니다.
  • 레거시 플래그는 *.disabled 경고를 내보내지만 실패하지 않습니다.
  • JWT를 사용하는 경우 발급자와 대상 그룹을 모두 설정해야 합니다.

오류 및 수정

문제 Example 수정
모든 엔드포인트 해제 REST=false, GraphQL=false, MCP=false 다시 사용하도록 설정합니다.
Cosmos DB 누락된 스키마 아니요 graphql-schema 스키마 경로를 제공합니다.
인증 불일치 발급자 집합, 대상 그룹 누락 둘 다 제공하거나 둘 다 제공하지 않습니다.

3. 사용 권한

각 엔터티의 권한이 유효한지 확인합니다.

규칙

  • 각 항목에는 비어있지 않은 역할이 있습니다.

  • 작업은 유효해야 합니다.

    • 테이블/뷰: create, read, update, delete, *
    • 저장된 프록시: execute, *
  • 빈 작업 목록 없음

  • 단일 작업 집합은 둘 다 아닌 OR 명시적 작업이어야 합니다 * .

오류 및 수정

문제 Example 수정
지원되지 않는 작업 "drop" 사용 read
CRUD를 사용하여 SP 저장된 프로시어 사용 update execute 사용하거나 *.
빈 목록 "actions": [] 작업을 제공합니다.

4. 데이터베이스 연결

데이터베이스 연결이 작동하는지 확인합니다.

규칙

  • 연결 문자열 구문 분석 가능
  • 유효한 자격 증명
  • 데이터베이스/컨테이너가 있음

오류 및 수정

문제 Example 수정
일시 중지 서버에 연결할 수 없음 네트워크/방화벽을 확인합니다.
잘못된 로그인 인증 실패 사용자 이름/암호를 수정합니다.
누락된 DB DB를 찾을 수 없음 DB를 만들거나 구성을 업데이트합니다.

5. 엔터티 메타데이터

데이터베이스에 대한 엔터티 정의를 확인합니다.

규칙

  • 원본 개체가 있음
  • 테이블/뷰: 유효한 키 필드, 포함/제외된 필드가 있음
  • 보기는 항상 필요 source.key-fields
  • 저장 프로시저: 매개 변수가 서명과 일치합니다.
  • 관계: 대상 엔터티가 존재하고 연결 필드가 키와 일치합니다. linking.object는 다대다에 존재해야 합니다.
  • 정책 참조 유효한 필드
  • TTL을 음수가 아닌 캐싱

오류 및 수정

문제 Example 수정
누락된 키 필드 보기 없이 보기 key-fields source.key-fields를 추가합니다.
잘못된 열 fields.include 누락된 열을 나열합니다. 이름을 제거하거나 수정합니다.
관계 불일치 연결 필드 수 != PK 수 연결 필드를 수정합니다.

출력 예제

성공:

Data API builder <version>
Config is valid.

실패:

Data API builder <version>
Error: View 'sales_summary' missing required key-fields.
Config is invalid.

비고

유효성 검사 오류는 단계별 오류입니다. 다시 실행하기 전에 첫 번째 실패 단계를 수정합니다.

Environment-Specific 파일

설정된 경우 DAB_ENVIRONMENT .를 validate 로드합니다 dab-config.<DAB_ENVIRONMENT>.json.

Example

DAB_ENVIRONMENT=Staging dab validate

비고

유효성 검사기는 확인된 단일 파일만 확인합니다. 환경 변형을 병합하지 않습니다.

사용 예시

기초의:

dab validate

명시적 파일:

dab validate --config ./configs/dab-config.test.json

다중 환경:

for env in Development Staging Production; do
  echo "Validating $env..."
  DAB_ENVIRONMENT=$env dab validate || exit 1
done

CI 빠른 실패:

dab validate && echo "OK" || { echo "INVALID CONFIG"; exit 1; }

워크플로

  1. dab validate을 실행합니다.
  2. 첫 번째 실패 단계 수정
  3. 종료 코드가 0이 될 때까지 다시 실행
  4. 유효성이 검사된 구성 커밋

팁 (조언)

작은 변경 내용의 유효성을 자주 검사합니다. 버전 제어 차이로 회귀를 빠르게 파악할 수 있습니다.