Sonatype IQ Integration, Component Intelligence, Quarantine, Policy Evaluation, and Procurement Controls: Concepts, Architecture, and Mental Model
Separate repository storage from software-supply-chain intelligence: Nexus serves and caches components, IQ Server supplies policy intelligence, Repository Firewall can govern new proxy requests, and a waiver is a scoped risk decision rather than a security fix.
Learning objectives
- Distinguish Nexus Repository, IQ Server, Repository Firewall, and Lifecycle responsibilities.
- Trace a new proxy request through component identification, policy evaluation, and an allow/quarantine outcome.
- Explain Audit Only, Quarantine, and PCCS modes for Nexus 3.94.0+ without relying on legacy capability instructions.
- Explain why quarantine is policy state, not proof of malware, and why release normally requires waiver of failing violations.
- Design waiver ownership, scope, reason, and expiry as auditable governance evidence.
1. The practical problem: a repository can store bytes without deciding whether you should consume them
Chapter 21 established artifact identity and promotion. That still leaves a procurement question: when a developer asks a proxy repository for a third-party component, should the organization admit it? Nexus Repository can authenticate the request, route it to an upstream, cache the bytes, and serve them. Those mechanics do not by themselves tell you whether a component violates a security, license, architecture, or malicious-component policy.
Repository Firewall adds a policy decision at the repository boundary. It uses component intelligence supplied through the Sonatype IQ platform and applies configured policy actions to supported proxy requests. The crucial mental separation is storage state versus intelligence/policy state. A policy outcome may change tomorrow when intelligence or policy changes while the artifact bytes and checksum remain identical.
2. Product boundary: four names that must not collapse into one
| Layer | Primary responsibility | What it is not |
|---|---|---|
| Nexus Repository | Repository endpoints, auth, proxy/hosted/group routing, component/asset metadata, database state, blob storage, client responses. | A vulnerability database or application policy engine by itself. |
| IQ Server / Sonatype IQ platform | Service that powers component intelligence and licensed products such as Lifecycle and Repository Firewall. | The blob store holding your Maven/npm/PyPI package bytes. |
| Repository Firewall | Procurement/admission governance at supported repository proxy boundaries: audit, quarantine, policy-compliant selection where supported. | A generic CI scanner or proof that every stored component is safe. |
| Lifecycle | Application-oriented policy evaluation, reporting, continuous monitoring, remediation and governance across application/organization context. | A replacement for Nexus repository storage or routing. |
A Nexus Community installation can participate in a licensed Firewall deployment; this does not make Firewall a free CE feature. Conversely, buying Nexus Pro is not the same as buying Lifecycle or Repository Firewall. Always verify the actual entitlement and IQ Server license.
3. Mental model: request → identify → evaluate → disposition
flowchart TD
DEV[Developer or CI] -->|request component| NX[Nexus proxy repository]
NX --> UP[Public upstream]
UP --> CAND[New component candidate]
CAND --> IQ[IQ Server / Firewall service]
IQ --> INTEL[Component intelligence]
POL[Configured policy context] --> IQ
IQ --> DEC{Policy disposition}
DEC -->|allowed| CACHE[Nexus cache / serve]
DEC -->|failing policy| Q[Quarantine]
Q --> REVIEW[Human or governed review]
REVIEW -->|scoped waiver| REL[Release]
CACHE --> DB[(Nexus database metadata)]
CACHE --> BLOB[(Nexus blob bytes)]
The request begins at Nexus, but the policy decision depends on external intelligence and configured policy. When content is allowed into the proxy, Nexus persists normal repository state: database metadata and blob bytes. Quarantine adds policy/disposition state around the requested component; it is not a special checksum algorithm and it does not transform the artifact.
4. Current Nexus 3.94+ Firewall modes
| Mode | Repository behavior | Use |
|---|---|---|
| Audit Only | Evaluate and record policy violations without blocking downloads. | Baseline visibility before enforcement, policy tuning, rollout observation. |
| Quarantine | Prevent consumers from downloading components that are quarantined after policy evaluation. | Enforce procurement rules at supported proxy boundaries. |
| PCCS | Quarantine plus policy-compliant metadata filtering. | Currently specific to npm and PyPI; helps select versions without failing policy violations. |
Do not copy pre-3.94 instructions that create a Firewall Audit and Quarantine capability as the current workflow. Sonatype explicitly labels that capability path legacy for older versions. On 3.94+, configuration lives in the repository configuration itself.
5. Quarantine is a disposition, not a malware verdict
A component can be quarantined because a policy with a failing action was triggered. The evidence may involve security risk, license governance, malicious/suspicious research findings, or another configured policy. Therefore “quarantined” means the current policy says do not deliver this newly requested component. It does not mean a forensic analyst proved malware.
Sonatype also documents a subtle boundary: Firewall quarantine applies to newly requested components. Content already present in a proxy repository is audited but is not retroactively quarantined in the same way, specifically to avoid suddenly breaking existing builds. That is one reason repository admission controls and application-level continuous monitoring are complementary.
6. Availability behavior must be documented, not guessed
For repositories using quarantine, current Sonatype guidance states that the Firewall quarantine service fails closed: if the service is unavailable, new component requests are placed into quarantine until they can be evaluated and released. That is different from Audit Only, where the point is observation rather than blocking.
7. A waiver is scoped risk acceptance
Releasing a quarantined component generally requires the failing violations that caused quarantine to be waived. A waiver does not patch the dependency, change its checksum, remove the vulnerability, or prove the license acceptable. It records that an authorized reviewer is accepting a defined risk for a defined scope.
| Waiver field | Governance question | Safer default |
|---|---|---|
| Owner scope | Application, organization, repository, or broader hierarchy? | Smallest scope that satisfies the need. |
| Component matcher | Exact version, all versions, or all components? | Exact component/version when practical. |
| Reason/comment | Why is risk accepted and what mitigates it? | Specific rationale linked to owner/ticket. |
| Expiry | When must the decision be reconsidered? | Short, explicit duration rather than never-expiring. |
| Reviewer | Who is authorized to accept this risk? | Named role/person independent from automatic build success. |
8. State map: what actually changes
- Nexus repository configuration: IQ/Firewall connection details and per-repository Firewall mode.
- Nexus database/blob state: normal component/asset metadata and binary content for admitted/cached artifacts.
- IQ/Firewall state: component identification, policy configuration, violations, quarantine records, waiver records, intelligence freshness.
- Client state: repository URL, credentials, package-manager caches, received HTTP errors such as a blocked/quarantined request.
- Governance evidence: reviewer, rationale, expiry, exception ticket, policy snapshot, timestamps.
Never “repair” a policy problem by deleting Nexus database rows or blob files. Those are different state stores and direct manipulation can corrupt repository consistency without changing the underlying policy decision.
9. Read-only inspection before enabling enforcement
- Record Nexus version, edition, Java runtime, repository format/type, and whether the target is disposable.
- Verify the actual Firewall/IQ license and IQ Server version; do not infer entitlement from Nexus CE/Pro alone.
- For Nexus 3.94+, inspect the repository’s Firewall section and current mode without changing it.
- Verify IQ connectivity using the product’s supported connection test; never print the service credential.
- Inventory repository content already present versus content not yet requested; quarantine semantics differ.
- Export or document the relevant policy/waiver context and identify who owns exception decisions.
10. Why this matters in DevOps
Artifact governance is strongest when it becomes a deterministic boundary rather than an informal approval message. CI asks Nexus for a component; Nexus routes the request; Firewall/IQ supplies policy evidence; a disposition is observable; exceptions are scoped and expire; downstream teams can explain why a component was admitted. This creates the foundation for Chapter 23, where SBOM, provenance, vulnerability intelligence, signatures, and policy evidence are compared explicitly.
11. Knowledge check
Does Nexus Repository Community Edition include Repository Firewall for free?
No. Sonatype documents Firewall as able to integrate with Nexus Community or Pro, but a valid Repository Firewall/IQ service license is still required.
What does Quarantine mode prove about a component?
Only that the current Firewall policy disposition blocks delivery. It does not by itself prove malware or establish a root cause.
For Nexus 3.95.x, should you configure Firewall through the old Audit and Quarantine capability workflow?
No. From 3.94.0 onward, Sonatype documents repository-level Firewall modes. The capability workflow is for older versions.
A quarantine waiver has no expiry and applies to all components in the root organization. What is the principal problem?
The exception is far broader and longer-lived than the specific procurement need, creating hidden future risk and weak auditability.
What happens to new component requests if the quarantine service is unavailable while quarantine is enabled?
Current Sonatype guidance documents fail-closed behavior: new components are quarantined until they can be evaluated/released.
12. Summary and next step
You now have a precise boundary between repository storage and component-policy intelligence, a current 3.94+ Firewall mode model, and a governance interpretation of quarantine and waivers. Lesson 2 turns that model into a completely local, fixture-driven procurement workflow that requires no commercial service.
Official references and version notes
- Sonatype: Getting Started with Self-Hosted Repository Firewall — current product boundary, Nexus Repository + IQ Server requirement, and licensed Firewall integration.
- Sonatype: Firewall Configuration for Nexus Repository — Nexus 3.94.0+ repository-level Audit Only, Quarantine, and PCCS modes.
- Sonatype: Firewall Quarantine — new-request quarantine semantics and documented fail-closed behavior.
- Sonatype: Repository Firewall Waivers — waiver purpose and release-from-quarantine semantics.
- Sonatype: Waivers — hierarchy, component/version scope, expiry, stale and expired waivers.
- Sonatype: Policy Waiver REST API — owner scope, component matching strategy, expiry, and reason fields.
- Sonatype: Repository Firewall API — Nexus-side IQ connection and repository audit/quarantine API surface.
- Sonatype: Quarantine REST API — quarantine evidence and release behavior.
- Sonatype: IQ Server Versions Status — IQ Server 206 GA on 5 August 2026 and support lifecycle.
- Sonatype: Self-Hosted Nexus Repository Feature Matrix — Community/Pro Nexus entitlement boundaries; Firewall is separately licensed.
- Sonatype: 2026 Nexus Repository Release Notes — Firewall changes around 3.91–3.95 and current version context.
Keep the academy open
Support free, practical DevOps education.
Every lesson is designed to remain readable in a browser, downloadable from GitHub, and usable without a paid learning platform. Contributions help expand and maintain the curriculum.
0x716c4Ab160C4B66F31a28AE2448BfF68fc3a2ef0
Send only Ethereum/ERC-20 compatible assets to this
address.