Platform

Platform overview How it works Authorization testing Evidence & reports Private scanning Integrations

Solutions

Security agencies Product teams Regulated industries Partner programme

Learn

Blog Knowledge hub Compare

Resources

Pricing Documentation Help centre FAQ Security & data What we haven’t proved

Company

About Contact Careers Sign in to the platform Start a $199 pilot →

Home / Knowledge hub / Private registry

Knowledge hub

Private registry

An internal package store that keeps your private code off public indexes.

Illustration explaining Private registry

What it means

A private registry is a package store that your organisation controls. It holds the libraries you write for internal use, and it can also act as a gateway to public ones such as npm, PyPI or Maven Central. Builds fetch packages from it rather than straight from the internet. Teams use products such as Artifactory, Nexus or a cloud provider's own package service for this.

It gives you one place to decide what may be installed. Internal names stay internal, public packages can be cached after review, and you can see and revoke who has access. That control is the whole value of the idea.

Why it matters

Without one, a build that asks a public index for a package name may get a surprise. If your internal package name is not taken on the public index, an outsider can publish one with that name. This is dependency confusion, and the build may pick the outsider's version. Fixing a mix-up like that after the fact is hard, because the harmful code has already run.

A registry also gives you a record of what went into a build, and a place to block a bad package for everyone at once. It supports supply chain security by shrinking the places a package can come from. It also lets you remove a package that proves harmful, in one place.

How it shows up

Configure each tool so internal names resolve only from the private registry. In npm, scopes such as @yourcompany/ can be pointed at a specific registry. In other ecosystems, use a single virtual repository, or exclude internal names from public sources.

Common mistakes are leaving the public index as a fallback for internal names, using one shared token for everyone, and never pruning old versions. Reserve your internal names on public indexes where you can, and review who can publish. See dependency confusion for the attack in full.

Questions people ask

Private registry, answered

What is the difference between a private registry and a container registry?

A container registry stores images. A private package registry stores libraries for languages like JavaScript, Python or Java. Some products do both.

Both need access control and scanning. Many products serve both jobs.

Does a private registry stop dependency confusion?

It does when it is the only source for internal names. If the build can still fall back to a public index for those names, the risk remains.

Scoping and routing rules do the real work.

Can a private registry proxy public packages?

Yes. Many act as a caching proxy, so builds pull public packages through it. You can then block known bad packages and keep a copy if the original is removed.

This also keeps builds working during public outages.

Who should be able to publish to it?

Usually only your build pipeline, using a narrow token, and a small group of maintainers. Developers' machines should generally read, not publish.

That limits what a stolen laptop can do.

Is a hosted registry as safe as one we run ourselves?

It can be, if access control is well set and the provider is trusted. The choice is mostly about who maintains it.

Running your own adds a system to patch and protect.

Cyberlop mark

Where do your packages come from?

Cyberlop tests your running web app and its APIs, so it does not audit package sources. It finds what an outsider can actually exploit and proves it with evidence. Ask us to run it on one of your applications.

Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.