n8n 스키마 검사는 통과했는데 엉뚱한 고객을 수정했다면
워크플로가 성공으로 끝나고 JSON 스키마도 통과했는데 엉뚱한 고객을 수정할 수 있습니다. 값도 있고 타입도 맞지만, 잘못된 출처 경로에서 가져왔기 때문입니다.
스키마가 잡지 못하는 오류
주문 웹훅에 정상적인 ID가 여러 개 있다고 가정해보겠습니다.
{
"webhook": { "actor": { "id": "usr_101" } },
"order": { "customer": { "id": "cus_9001" } },
"output": { "customer_id": "usr_101" }
}
customer_id는 문자열이므로 단순 스키마를 통과합니다. 하지만 주문 고객이 아니라 웹훅을 실행한 사용자를 선택했습니다.
n8n의 공식 데이터 매핑 문서처럼 표현식은 이름이 지정된 이전 노드나 다른 분기의 데이터를 참조할 수 있습니다. 이 유연성 때문에 타입 검사만으로는 선택한 노드와 경로가 올바른 권한 출처인지 알 수 없습니다.
1. 후보 값이 서로 다른 fixture를 만드세요
모든 후보 값이 123이면 잘못된 매핑도 통과합니다. 각 후보가 정상 형식이지만 서로 다른 값을 갖게 만드세요.
{
"webhook": { "actor": { "id": "usr_101" } },
"order": { "customer": { "id": "cus_9001" } },
"account": { "owner": { "id": "own_77" } }
}
기대 출력은 cus_9001 하나뿐입니다. 쓰기·전송·결제·수정 노드로 갈 수 있는 모든 분기에 이 fixture를 통과시키세요.
2. 되돌릴 수 없는 작업 직전에 출처를 검증하세요
const items = $input.all();
return items.map((item, index) => {
const expected = item.json.order?.customer?.id;
const actual = item.json.output?.customer_id;
if (!expected || actual !== expected) {
throw new Error(`Semantic mapping failed for item ${index}`);
}
return item;
});
이 검사는 customer_id가 존재하는지만 보지 않습니다. 합의한 출처 경로의 값과 같은지 확인합니다.
n8n의 공식 항목 연결 문서는 출력 항목이 어느 입력 항목에서 왔는지 n8n이 알아야 한다고 설명합니다. Code 또는 사용자 정의 노드가 항목을 만들 때 연결 정보를 보존하고, 여러 항목의 순서를 바꾼 fixture도 실행하세요.
3. 민감한 원문 대신 출처 영수증을 남기세요
{
"field": "customer_id",
"expectedSource": "order.customer.id",
"selectedSource": "order.customer.id",
"mappingStatus": "accepted",
"businessKeyDigest": "sha256:...",
"receiptStatus": "terminal"
}
영수증은 다음을 구분할 수 있어야 합니다.
- 올바른 권한 출처의 올바른 값
- 잘못된 출처의 정상 형식 값
- 누락된 값
- 여러 항목 사이의 모호한 연결
- 변환은 끝났지만 최종 증거가 없는 상태
배포 전 4개 필수 테스트
- 권한 출처의 값이 정상적으로 매핑된다.
- 권한 출처 값은 없고 대체 후보만 있을 때 실패한다.
- 정상 형식의 후보 두 개가 다를 때 권한 출처만 통과한다.
- 여러 항목의 순서가 바뀌어도 각 출력이 올바른 입력과 연결된다.
n8n의 실행 기록 문서에 따라 이전 실행 데이터를 진단과 재시도에 사용할 수 있습니다. 다만 실행 기록의 성공 표시는 비즈니스 결과가 맞았다는 증거가 아닙니다.
Builderlog 브라우저 진단은 데이터를 업로드하거나 이메일을 받지 않고 출력 형식, 권한 경계, 중복, 멈춘 트리거, 영수증, 복구를 확인합니다.
n8n Production Reliability Kit Pro.4 →은 이 오류를 AC-12로 포함하고 빈 브랜치·불명확한 재시도 사례를 추가해 14개 실행 사례와 17/17 verifier를 제공합니다. 현재 가격은 buyer #1 Solo $19, 한 조직·내부 사용자 10명까지의 Team $99입니다.