# In qbits.lockpackages:"@qrun/auth-sso":version:"2.0.1"resolved:"https://voyage.qrun.io/qbits/@qrun/auth-sso/2.0.1.tar.gz"integrity:"sha512-abc123def456..."
Verification Flow
Download package tarball to temp file
Compute SHA-512 hash of downloaded file
Compare with integrity field from registry/lockfile
If match: extract to vendor directory
If mismatch: delete temp file, report error, exit 7 (INTEGRITY)
Integrity File Format
# vendor/qbits/.integrity
# Generated by qctl - do not edit
@qrun/auth-sso@2.0.1 sha512-abc123def456...
@qrun/reports@1.3.0 sha512-xyz789...
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #11
User Story
As a developer, I want package integrity verified so I know downloaded packages haven't been tampered with.
Design
Integrity Format
Uses Subresource Integrity (SRI) format:
sha512-<base64-hash>Verification Flow
integrityfield from registry/lockfileIntegrity File Format
Files to Create/Modify
qctl-qbit/src/main/java/io/qrun/qctl/qbit/integrity/IntegrityVerifier.javaqctl-qbit/src/main/java/io/qrun/qctl/qbit/integrity/IntegrityFile.java.integrityfileqctl-qbit/src/main/java/io/qrun/qctl/qbit/vendor/PackageDownloader.javaVerify Command (Future)
Error Messages
Implementation Tasks
IntegrityVerifierclasssha512-...)IntegrityFilefor.integritymanagementPackageDownloader--skip-integrityflag (with warning)Acceptance Criteria
--skip-integritybypasses check with warning.integrityfile updated after successful download