환불 규칙을 실행하고, 무엇을 확인했는지 남기세요.
검토한 규칙과 엄격한 JSON 입력으로 로컬에서 한정된 결정을 내립니다. 결과 디렉터리에는 준비된 규칙, 정규 입력, 결과, 발급 가능한 portable core가 함께 남습니다.
- 01검토한 규칙
- 02엄격한 JSON 입력
- 03결정: allow
- 04확인 가능한 core
1. 규칙
(let ((days (cdr (car input)))
(opened (cdr (car (cdr input)))))
(if (< days 15)
(if opened "deny" "allow")
"deny"))2. 입력
{
"days": 14,
"opened": false
}3. 로컬 실행
lispex rule run \
--source refund-window.lspx \
--input day-14-unopened.json \
--prepare-limits prepare-limits.json \
--eval-limits evaluation-limits.json \
--out decision
lispex rule inspect --dir decision
lispex rule verify --dir decision
lispex rule replay --dir decision배송 후 14일, 미개봉 주문의 결과는 allow.
실행 없이 살펴보고, 정확한 바이트를 검증하거나, 새 평가기 인스턴스에서 한 번 재실행할 수 있습니다.
core가 결속하는 것
의미 규칙, 정규 입력, 정확한 한도, 평가기 아티팩트, 결정적 결과입니다.
core가 부여하지 않는 것
발급자 신원, 신선도, 정책의 정당성, 재사용 방지, 외부 행위 권한입니다.
장치보다 결정을 먼저 읽어 보세요
규칙이 묻는 것은 두 가지뿐입니다. 배송 후 며칠이 지났는지, 상품을 개봉했는지입니다. 파일을 찾거나, 네트워크를 호출하거나, 시계를 읽거나, 숨겨진 호스트 함수를 부르지 않습니다.
| 입력 | 결정 | 이유 |
|---|---|---|
| 14일, 미개봉 | allow | 아직 환불 기간 안에 있습니다 |
| 15일, 미개봉 | deny | 환불 기간을 지났습니다 |
| 14일, 개봉 | deny | 개봉한 상품은 허용하지 않습니다 |
allow와 deny를 실제 업무에서 어떻게 처리할지는 애플리케이션의
책임입니다. 리스펙스는 데이터를 반환할 뿐, 환불을 직접 실행하지 않습니다.
다섯 identity를 분리하세요
개발 제품, 최신 공개 제품, 문서 제품군, 의미 프로필, 변경 불가능한 다운로드는
서로 다른 identity입니다. develop 체크포인트는 공개되지 않은 새 바이트가
있다고 가장하지 않고도 앞으로 갈 수 있습니다. /version.json은 현재 축을
각각 보여 주고, 다운로드 링크는 실제 공개 릴리스에 정확히 결속됩니다.
명령을 네 개로 나눈 이유
| 명령 | 하는 일 |
|---|---|
rule run | 규칙을 준비하고 엄격한 JSON을 정확한 한도 아래 평가한 뒤, 다섯 파일로 된 결정 디렉터리를 한 번에 기록합니다 |
rule inspect | 실행하지 않고 디렉터리의 내용을 읽어 요약합니다 |
rule verify | 실행하지 않고 파일 집합, identity, hash, 결속 관계를 검증합니다 |
rule replay | 기록된 요청을 새 평가기 인스턴스에서 한 번 실행하고 같은 결과인지 확인합니다 |
디렉터리에는 준비된 아티팩트, 정규 입력, 정확한 요청이 결속된 결정적 결과, 발급 가능한 portable core, 파생된 비권위적 요약이 들어갑니다. 원본 규칙 소스는 들어가지 않습니다. 기존 출력은 덮어쓰지 않으며, 잘못된 입력, 변조된 파일, 여분 파일, 심볼릭 링크는 거부합니다.
허용한 발급자 키 하나를 인증하세요
v1.14.5 Native 체크포인트는 디렉터리의 깊은 검증이 끝난 뒤 정확한 결정
자료와 발급자 envelope를 제한된 정규 .lpxdecision 파일 하나에 담을 수
있습니다. 신뢰 정책은 수신자가 만듭니다. bundle이나 envelope가 스스로
신뢰할 키나 규칙을 고를 수는 없습니다.
lispex rule issue --dir decision \
--private-key issuer.pkcs8.der \
--issuer-label "환불 데스크 A" \
--out issuer-envelope.json
lispex rule policy create --dir decision \
--public-key issuer.spki.der \
--consumer-label "환불 수신자" \
--out recipient-policy.json
lispex rule authenticate --dir decision \
--envelope issuer-envelope.json \
--policy recipient-policy.json
lispex decision issue --dir decision \
--private-key issuer.pkcs8.der \
--issuer-label "환불 데스크 A" \
--out refund.lpxdecision
lispex decision inspect --bundle refund.lpxdecision
lispex decision authenticate --bundle refund.lpxdecision \
--policy recipient-policy.json
lispex decision replay --bundle refund.lpxdecision \
--policy recipient-policy.jsonbundle에는 정규 입력, manifest, 발급자 envelope, 준비 아티팩트, portable core, 결과 아티팩트, 파생 요약이라는 정확한 일곱 파일만 들어갑니다. 규칙 소스, 원본 입력 JSON, private key, 시간, route, 행동 권한 token은 들어가지 않습니다. Native는 발급·검사·인증·재실행을 제공합니다. npm은 오프라인 검사와 인증만 제공하며 발급하거나 재실행하지 않습니다. 브라우저와 플레이그라운드는 이 검증 모듈을 노출하지 않습니다.
인증 보고서는 패키지 무결성, 서명과 수신자 정책의 허용, 정확한 요청 결속,
새 인스턴스 재실행, 재사용 방지, 외부 행동 권한을 각각 따로 보여 줍니다.
rule authenticate는 규칙을 실행하지 않습니다. 새 재실행은
not-performed, 재사용 방지는 not-provided, 외부 행동 권한은 absent로
남습니다. 발급자 label은 서명되지 않은 설명용 metadata입니다.
결정 인증과 Vouch는 서로 다른 흐름입니다
portable core는 의미 규칙, 정규 입력, 한도, 정확한 평가기 아티팩트, 결정적 결과를 하나로 묶습니다. 무엇을 평가했는지 확인하기에는 충분합니다.
선택적 decision envelope는 수신자 정책이 허용한 정확한 키 하나를 인증합니다. 조직 identity, 최신성, 공정성, 재사용 방지, 행동 허가는 증명하지 않습니다. Vouch는 별도의 인증 및 요청 결속 흐름입니다. 결정 인증과 Vouch evidence 어느 쪽도 스스로 외부 행동 권한으로 승격되지 않습니다.
이 명령을 쓸 수 있는 제품
rule 흐름과 decision 발급·재실행은 Native 제품이 제공합니다. npm은
검증 전용 decision inspect와 decision authenticate를 추가로 제공합니다.
공개 브라우저 WASM과 플레이그라운드는 이 decision 명령을 노출하지 않습니다.
플레이그라운드의 첫 결정 모드에서는 선택한 입력에 맞는 정확한 소스 포함 작성 인계 ZIP을 받을 수 있습니다. 새 디렉터리에 풀고 포함된 명시적 명령을 실행하면 이 Native 흐름으로 이어집니다. 이 ZIP은 준비 자료이지 결정 디렉터리, portable core, 서명, 권한이 아닙니다.