> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nora.my/llms.txt
> Use this file to discover all available pages before exploring further.

# nora schema

> Flow 빌더 페이로드 스키마 출력. JSON 편집의 정본

`schema`가 서버가 Flow 페이로드에 기대하는 정확한 모양을 출력. JSON을 손으로 편집하거나, config-as-code를 쓰거나, Flow 페이로드를 만드는 도구를 짤 때 유용.

## 명령

| 명령            | 설명                   |
| ------------- | -------------------- |
| `schema show` | 지금 Flow 페이로드 스키마 출력. |

## `schema show`

```bash theme={null}
nora schema show
```

전체 페이로드 스키마를 출력:

* 모든 최상위 필드.
* 모든 블록 타입(Agent, Tool, Action, Trigger).
* 블록 필드마다 타입, 필수 여부, 허용 값.
* 모든 엣지/와이어 필드.

기본 출력은 사람이 읽는 구조화 텍스트.

JSON 스키마를 아는 도구(`jq`, `ajv`, IDE의 JSON 스키마 바인딩)로 파이프할 때는 `--json`을 붙임.

## 언제 쓰나

* `flows apply` 전에, JSON이 서버가 받는 모양과 맞는지 점검.
* JSON이 거절됐는데 에러 메시지가 흐릿할 때.
* 생성기나 마이그레이션을 짤 때 참고 자료로.

## Flow 파일 로컬 검증

서버가 `flows apply` 때 늘 검증하지만, 아무 JSON 스키마 도구로든 오프라인에서 미리 검증할 수 있음:

```bash theme={null}
nora schema show --json > flow-schema.json
npx ajv validate -s flow-schema.json -d my-flow.json
```

네트워크 왕복 전에 오타와 모양 안 맞음을 잡음.

## 스키마 변화

스키마는 서버와 함께 버전으로 관리됨. 새 서버 버전이 선택 필드를 더할 수 있지만, 필수 필드는 마이그레이션 경로 없이 절대 안 바뀜.

스키마 변경 추적: CI에서 `schema show`를 돌려 이전 버전과 diff. 새 게 나오면 생성기를 업데이트할지 판단.

```bash theme={null}
# CI에서 주기적으로:
nora schema show --json > schema-latest.json
diff schema-current.json schema-latest.json && echo "변경 없음" || echo "스키마 변경됨!"
```

## 스키마가 안 다루는 것

* 런타임 상태. 스키마는 *편집 가능한 페이로드*지 실행 이력이 아님.
* 버전 메타데이터(작성자, 타임스탬프 등). 배포 때 서버 쪽에서 붙음.
* 설정(`nora flows settings get`). 별도 객체.
* 변수(`nora vars list`). 기술적으로 페이로드 일부지만 보통 `vars set`으로 편집.
