feat: verify frontend supply chain
This commit is contained in:
@@ -892,6 +892,31 @@ owner와 만료 시한이 있는 quarantine만 허용한다.
|
||||
RP-11은 P1 최종 저장소 기준선이다. scanner outage를 무검증 승인으로 우회하지
|
||||
않고 promotion을 보류한다.
|
||||
|
||||
**구현 증거 (2026-07-26)**
|
||||
|
||||
- VD-09에서 frozen pnpm graph와 lockfile을 local SSOT로, package manifest
|
||||
license policy와 CycloneDX 1.6을 local evidence로 채택했다. 외부 vulnerability
|
||||
report와 signed attestation이 없으면 promotion은 `FAIL_UNVERIFIED`다.
|
||||
- 현재 직접 35개, 전체 전이 561개 dependency의 name/version, direct/scope/
|
||||
optional, SHA-512 integrity, license와 dependency edge를 deterministic
|
||||
inventory로 생성한다. lockfile row와 inventory가 양방향 일치하지 않으면
|
||||
실패한다.
|
||||
- 승인 baseline digest와 actual add/remove/change/upgrade diff를 계산하고 새
|
||||
direct production dependency에는 owner와 다른 reviewer, reason과 rollback을
|
||||
요구한다.
|
||||
- CycloneDX SBOM component/edge와 local in-toto/SLSA 형태 provenance의
|
||||
source/lock/SBOM/dist digest를 coherence gate로 다시 계산한다.
|
||||
- license allow/deny, vulnerability severity와 독립·만료 exception 정책,
|
||||
provider lock digest와 attestation subject를 machine-readable하게 검증한다.
|
||||
provider fixture는 promotion PASS를 증명한 뒤 unconfigured
|
||||
`FAIL_UNVERIFIED`를 복원한다.
|
||||
- secret scan을 source/scripts/tests/config/schema/public/dist/generated release
|
||||
metadata로 확장하고 원문 대신 rule/path/line/fingerprint만 SARIF에 남긴다.
|
||||
test-only allowlist도 owner/reason/expiry를 강제한다.
|
||||
- `SOURCE_DATE_EPOCH` 기반 동일 build 2회 digest, 실제 frozen install mismatch,
|
||||
transitive omission/integrity/baseline/self-review/license/vulnerability/
|
||||
provider/SBOM/provenance/secret negative fixture를 blocking gate에 연결했다.
|
||||
|
||||
## 9. P1 exit gate
|
||||
|
||||
- 현실적인 form의 validation/dirty/pending/422/conflict가 작동한다.
|
||||
|
||||
Reference in New Issue
Block a user