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

# Source 블록

> 클라우드 드라이브·데이터베이스·API·파일에서 원시 데이터 끌어오기.

**Source** 스테이지는 파이프라인이 외부 세계에 처음 닿는 곳입니다. Source 블록은 원시 항목 (파일, 레코드, 메시지) 을 파이프라인에 방출해 다음 스테이지들이 작업하게 합니다.

## Source 블록 종류

### 클라우드 폴더

연결된 클라우드 드라이브 (Google Drive, OneDrive, S3 호환) 에서 파일을 끌어옴.

* **Folder** — 연결된 계정에서 선택.
* **Recurse** — 서브폴더 포함. 기본 켜짐.
* **File types** — `.pdf`, `.docx`, `.md`, `.csv` 등으로 제한. 처리 불가한 바이너리는 스킵.
* **Since** — 이 타임스탬프 이후 수정된 파일만. 런 페이로드 타임스탬프와 결합해 증분 파이프라인 구축.

파일마다 하나의 항목 방출 — `content` (바이트), `path`, `mime_type`, `modified_at`, `source_id` (이름 변경에도 안정).

### 문서 스토어

기존 Nora 문서 컬렉션에서 끌어옴. 다른 파이프라인이 이미 큐레이션한 데이터 위에 하류 파이프라인을 만들 때 유용.

### 데이터베이스 쿼리

연결된 Postgres/MySQL/SQL Server 데이터베이스에 SQL 쿼리를 실행, 로우를 스트리밍.

* **Query** — 파라미터화 SQL. 런 페이로드 참조는 `:key`.
* **Batch size** — 방출 항목당 로우 수. 큰 배치는 효율적; 작은 배치는 하류 스테이지 병렬화 잘 됨.

로우당 하나 (또는 배치 > 1 이면 배치당 하나) 방출.

### HTTP fetch

커스텀 HTTP GET/POST. 응답 본문을 방출.

설정:

* URL (런 페이로드로 템플릿화 가능).
* Method, headers, body.
* **Follow pagination** — 중단 조건까지 자동 루프. 커서 파라미터, 페이지 카운트, 또는 "빈 응답까지".

### 웹훅 페이로드

Webhook 트리거의 페이로드를 소스로 사용. 외부 호출 없음 — 페이로드가 이미 메모리에.

### 수동 업로드

파이프라인을 수동 실행할 때 파일을 업로드할 수 있게 하는 빈 Source. 테스트에 유용.

## 멱등성과 중복 제거

방출된 모든 항목은 안정된 **콘텐츠 해시** 를 얻습니다. 같은 소스에 대한 나중 실행은 해시를 재계산 — 변경 없는 항목은 엔드투엔드 스킵.

즉 큰 폴더에 대한 스케줄 Foundry 실행은 저렴합니다: 바뀐 것만 건드립니다.

파이프라인 하류가 바뀌었으면 **Run → Rerun (ignore cache)** 로 전체 재처리를 강제할 수 있음.

## 변경 감지

Watch 트리거의 경우 Source 블록은 소스 항목이 사라질 때 **삭제 이벤트** 도 방출합니다. 하류 스테이지는 삭제를 다뤄야 함 — 새 청크가 아니라 Output 스테이지에 supersede 를 밀어넣는 방식이 흔함. [Supersede](/ko/build/knowledge/supersede) 참고.

## 제한

* **Max items per run** — 기본 50k. 더 큰 실행은 날짜 범위로 분할.
* **Max total bytes** — 기본 5 GB. Enterprise 플랜에서 상향.
* **Per-item byte cap** — 파일당 기본 100 MB. 더 큰 항목은 스킵되고 로그.
