Every plugin update (initial publish or new version) follows a sequential pipeline. Failures at server-side checks (Zip safety, Virus scan, Manifest, Signature) short-circuit the process and return an immediate rejection. Linting failures do not short-circuit; they are persisted as warnings for human moderators to review.
Pipeline Flow:
- Upload (CLI or web)
- Content-length check (10 MB limit)
- Zip safety scan
- Virus scan (ClamAV, if enabled)
- Manifest parse and validation
- Signature verification (if provided)
- Automated linting
- Submission record persisted (status:
pending_review) - Email notification to publisher and moderators
- Human moderation
- Outcome:
approved (becomes current version), changes_requested (fix required), rejected (terminal), or quarantined (security review required).