Home Applications zpm-registry


This application is not supported by InterSystems Corporation. Please be notified that you use it at your own risk.
1 reviews
IPM installs
Pull requests
InterSystems ObjectScript Registry Server For ZPM packages

What's new in this version

Analytics support is introduced.
We changed how custom code is executed when analytics events occur.

To execute your code after the event occurs, you should implement a subclass of the ZPM.Analytics.AbstractEventProcessor class
and override the method: ClassMethod Process(event as ZPM.Analytics.Event) As %Status

intersystems zpm-registry

Quality Gate Status

ZPM Registry is a a server part of ObjectScript Package Manager.

ZPM Registry hosts ZPM packages and publishes API to publish, list and deploy packages.

InterSystems Developers Community has the the public ZPM Registry - Commmunity Registry hosted on pm.community.intersystems.com and this code works there. Here is the list of available packages.
ZPM Client by default installs packages from Community Registry.
You can use ZPM Registry project to build your own private registry to have the option to install packages with ZPM client from your private registry.


ZPM Registry works only on IRIS and IRIS For Health, community and Enterprise versions.


ZPM Installation

install zpm-registry

Docker Installation

Build docker container

Usual Installation

Import classes from cls and run Installer from Root


ZPM Registry exposes REST API, which perfoms listing, publising and deployment services. You can examine the REST in the source class Registry.cls or via Swagger

Note, when you publish the repo via API you need to provide the Github URL of the repo, which will contain module.xml.
And published package will remember the repository and will not allow to publish/update package with the same name but with another repository.

Working With Your Registry From ZPM Client

You can setup ZPM client to work with your registry with the following command:

zpm:USER>repo -n registry -r -url https://registry.yourdomain.com


To configure the registry, utilize the zpm-registry.yaml file located within the IRIS installation folder. Retrieve the IRIS directory in which the file should reside using the following command: write ##class(%SYSTEM.Util).InstallDirectory().


Starting from version 1.1.2, zpm-registry includes the Proxy feature.
This allows the IPM client to use only your private registry and install packages from your private registry, all the while retaining the capability to install packages from an external registry (Uplink).

External registries that your local registry can access are called Uplinks. You can define one or more external registries. You can also list which packages from the Uplink registry should be available.

These settings are set in the zpm-registry.yaml file.

Settings file example:

        url: https://pm.community.intersystems.com/
        allow_packages: dsw,zpm*,?u*

For more information, see https://community.intersystems.com/post/new-zpm-registry-feature-%E2%80%93-proxy-registry

Delete packages

Starting from version 0.7, IPM introduces support for the “unpublish” command, which facilitates the removal of a package that was previously published.
In order for this command to be executed, it is necessary to explicitly allow the removal of packages on the side of the registry. To do this, add the line “delete-enabled: true” to the settings file zpm-registry.yaml

Settings file example:

delete-enabled: true
Made with
zpm install zpm-registry download archive
1.2.721 Aug, 2023
Developer Environment
Works with
InterSystems IRISInterSystems IRIS for Health
First published
14 Dec, 2019
Last checked by moderator
27 Jun, 2023Works