#InterSystems Package Manager (IPM)

13 Followers · 149 Posts

InterSystems Package Manager (IPM) is a tool to deploy the packages and solutions into InterSystems IRIS with dependencies.

Download Package Manager client.

New
Question Sam Hall · May 14

What's the most straight-forward way to install this on an offline server? I'm trying to set this up on an Azure DevOps server to support our CI/CD pipelines. I've tried using zpm installing the tgz from the local filesystem. I note zpm seems to need a repo configured to install but I can't work out how to setup a bare-bones Filesystem repo (please point me to some documentation on this). I have no idea what I'm doing...

zpm:%SYS>install f:/tmp/zpm-registry-1.3.4.tgz 
  
ERROR! 'tmp' not found in any repository. 
zpm:%SYS>install zpm-registry-1.3.4.tgz 
  
ERROR! 'zpm-registry-1.3.4.tgz' not found in any repository. 
zpm:%SYS>install zpm-registry 
  
ERROR! 'zpm-registry' not found in any repository. 
zpm:%SYS>install "f:\tmp\zpm-registry-1.3.4.tgz" 
  
ERROR! 'f:\tmp\zpm-registry-1.3.4.tgz' not found in any repository. 
zpm:%SYS>list 
IPM (zpm) 0.10.6 
zpm:%SYS>repo 
  
  
1) Filesystem 
2) ORAS 
3) Remote Repository 
  
Which sort of repository do you wish to configure? 1 
Name:  local 
local 
        Source:                 F:\tmp\* 
        Enabled?                Yes 
        Available?              Yes 
        Use for Snapshots?      Yes 
        Use for Prereleases?    Yes 
        Is Read-Only?           No
  
local 
        Source:                 F:\tmp\* 
        Enabled?                Yes 
        Available?              Yes 
        Use for Snapshots?      Yes 
        Use for Prereleases?    Yes 
        Is Read-Only?           No

zpm:%SYS>install f:/tmp/zpm-registry-1.3.4.tgz 
  
ERROR! 'tmp' not found in any repository. 
zpm:%SYS>install zpm-registry-1.3.4.tgz 
  
ERROR! 'zpm-registry-1.3.4.tgz' not found in any repository. 
zpm:%SYS>install zpm-registry 
  
ERROR! 'zpm-registry' not found in any repository. 
zpm:%SYS>install "f:\tmp\zpm-registry-1.3.4.tgz" 
  
ERROR! 'f:\tmp\zpm-registry-1.3.4.tgz' not found in any repository. 
zpm:%SYS>info

Welcome to the Package Manager Shell (ZPM). Version: 0.10.6
Enter q/quit to exit the shell. Enter ?/help to view available commands
No registry configured
System Mode: <unset>
Mirror Status: NOTINIT
IRIS for Windows (x86-64) 2025.2 (Build 227U) Thu Jul 10 2025 11:01:07 EDT

Currently installed top-level modules are listed below:
IPM 0.10.6
2
0 26
Question Evgeny Shvarov · Dec 27, 2025

Hi developers!

There is a very neat variable in IPM ${ipmdir} that lets packages be installed on a particular IRIS server and ensures that the data and resources they bring don't mess around as ${ipmdir} variable during the installation transforms into:

iris installation dir/ipm/package_name/version/whatever_you_install_here

It is very convenient, e.g., to bring some data and resource files that can be useful during the installation setup, e.g., via FILECOPY. Indeed, suppose you bring some csv_file, e.g. titanic.csv via FILECOPY as:

<FileCopy Name="data/titanic.csv" Target="${ipmdir}data/titanic.csv"/>

or even the whole folder of data in the source code repo into the package:

<FileCopy Name="data/" Target="${ipmdir}data/"/>

And in the case of Iris in Docker it resides in:

/usr/irissys/ipm/package_name/1.0.0/data/titanic.csv

This is all great, but is there any way for the installed code to determine the location of the data files? It'd be neat to let the installed app know somehow where is the data that came with it? Could it be the method in the IPM client that will resolve ${ipmdir} for the app? 

2
0 100
Question Ashok Kumar Thangavel · Dec 15, 2025

Hello Community,

What is the correct way to import and compile .dfi files when using zpm load? Do .dfi files need to be defined in module.xml?

I have code that imports the .dfi file successfully; however, when I run
zpm "load /home/irisowner/dev/ -v"

I get the message: Unknown file type. Skipping file: .pivot.DFI

    zpm "install isc-dev"do

Thank you!

30
0 244
Question André-Claude Gendron · Jul 31, 2025

Hi everyone,

I’m working with an existing InterSystems IRIS server that hosts several web applications and namespace-specific code and data. I’d like to reverse-engineer the current environment into a %Installer.Manifest file so I can store it in Git and manage its changes.

My goal is to:

  • Track the application setup and configuration in version control
  • Rebuild environments consistently (namespaces, CSP apps, security roles, etc.)
  • Possibly automate deployments later on

I understand that %Installer is declarative and wasn’t necessarily designed to reflect a running system.

1
2 125
Question Justin Millette · Jul 8, 2025

I am trying to set up a web application with Delegated Authentication via IPM. It is possible to give a specific application Delegated Authentication:

<WebApplicationName

with the AutheEnabled field. This will display the authentication as "delegated" in the SMP Web Applications display, but when one enters the settings page for this application, there is no checkbox for Delegated. This also doesn't seem to function -- ZAUTHENTICATE is never called.

3
0 151
Question Evgeny Shvarov · Oct 30, 2023

Hi colleages!

This is very easy to setup a FHIR server in InterSystems IRIS for Health.

It could be even one IPM command with this package:

USER>zpm "install fhir-server"

But which FHIR portal could you recommend to use?

I used to work with this one, which is very easy to install too:

USER>zpm "install fhir-portal"

 but it doesn't work at the moment and I'm not sure if its main contributors @José Pereira and @Henrique Dias plan to support it.

What do you use? What do you recommend? Ideally installable with IPM package manager. Thanks!

3
0 415
Question Alex Woodhead · Jun 30, 2023

Motive

Am just plain curious about how people may be approaching this area.

The Question

The %SYSTEM.License API wraps an IRIS key that is specific to a range of InterSystems products with

  •  Platform features
  •  Platform behaviors
  •  Expiry date
  •  Capacity / Usage limits

If a company is implementing deployed products that:

  • run on top of IRIS
  • optionally support other vendor IRIS products

For example:

  • a "plug-in" API
  • a knowledge-base

And they have an IPM deployed solution.

2
0 322
Question Thomas Kotze · Sep 27, 2022

Hello,

I am getting the following error , and not sure how to get passed this.
We have removed storage on the classes , did a clean compile and still we get the error below on some of the classes
 Compile FAILURE
ERROR! Storage on class [ MyClass] modified by storage compiler, developer should have run ^build to make sure all storage is updated correctly and saved to Perforce

Any Idea how to resolve this or what to look for ?

Regards

9
0 292
Question Yone Moreno · May 13, 2020

Hello,

We have read the installation guide to get started with zpm package manager:

https://openexchange.intersystems.com/package/ObjectScript-Package-Mana…

We wonder what means the second step:

"Import the zpm.xml into IRIS and compile via any desired way (Management Portal, Studio or Terminal)"

We have thought that it means to place the zpm-0.2.2.xml file inside "C:\InterSystems\HealthShare_2\opt\contenedor"

Then in the terminal, go inside one namespace:

zn "esbsscc"

After that we load and compile the .xml:

write $SYSTEM.OBJ.Load("C:\InterSystems\HealthShare_2\opt\contenedor\zpm-0.2.2.

7
1 1842
Question Jonathan Lent · May 6, 2021

I'm just starting off with ZPM and noticed that examples of library-type packages and full applications abound, but I have not unearthed any that demonstrate packaging an interop production. It doesn't seem like it would be too big of a jump from a full application to an interop production, but that is likely ignorance speaking.

So, does anybody know if this is possible/advisable -- or if I am just way off on the intent of ZPM?

Thanks!

3
0 295
Question Nigel Salm · Apr 22, 2021

NigelTSalm

Hi, I am loading zpm for the first time. I downloaded the %ZPM.Installer xml file and then tried to import it trough the Cache Studio. It threw up 4 errors Compilation started on 04/22/2021 23:41:53 with qualifiers 'cukb /checkuptodate=expandedonly' Compiling class %ZPM.Installer Compiling routine %ZPM.Installer.1 ERROR: %ZPM.Installer.cls(ExtractPackage+2) : MPP5610 : Referenced macro not defined: 'FileTempDir' TEXT: Set pFolder = ##class(%File).NormalizeDirectory($$$FileTempDir) ERROR: %ZPM.Installer.

3
0 739
Question Rubens Silva · Mar 27, 2020

Hello,

We're considering adopting the ZPM solution as a way to manage many of our customer updates. However in order to do so we need to know a few things.

  • Is ZPM client compatible with Caché 2017.x versions?
  • Can we configure a self-hosted registry that doesn't require a GitHub repository link?
  • Could the ZPM client zip and upload the whole package (all classes, routines, includes) instead of downloading it from a Github link?
  • Can we declare a module that specifies classes themselves instead of their package counterpart? e.g. My.Class.CLS instead of My.PKG.
1
0 330