Namespaces for Second-Generation Managed Packages
A namespace is a 1–15 character alphanumeric identifier that distinguishes your package
and its contents from other packages in your customer’s org. A namespace is assigned to a
second-generation managed package (managed 2GP) at the time that it’s created, and can’t be
changed.
When you specify a package namespace, every component added to a package has the namespace prefixed to the component API name. Let’s say you have a custom object called Insurance_Agent with the API name, Insurance_Agent__c. If you add this component to a package associated with the Acme namespace, the API name becomes Acme__Insurance_Agent__c.
When you work with namespaces, keep these considerations in mind.
- You can develop more than one managed 2GP package and associate the packages with the same namespace. But a single managed 2GP package can't be associated with more than one namespace.
- If you work with more than one namespace, we recommend that you set up one project for each namespace.
- It's beneficial for managed 2GP packages to share the same namespace, but it's not required. Carefully consider your package and namespace strategy. After a namespace is associated with a managed 2GP, the association can't be changed.
- There are scenarios where you may prefer to keep a managed 2GP package isolated from other managed 2GP packages you're developing. For example, if you’re developing a product that you intend to sell or spin off, having a unique namespace for that package enables you to transfer the namespace with the package.