#InterSystems Package Manager (IPM)

0 Followers · 142 Posts

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

Download Package Manager client.

InterSystems staff + admins Hide everywhere
Hidden post for admin
Article Evgeny Shvarov · Aug 29, 2019 4m read

Hi Developers!

Often when we develop some library, tool, package, whatever on InterSystems ObjectScript we have a question, how we deploy this package on the target machine?

Also, we often expect that some other libraries already installed, so our package depends on them, and often on some particular version of it.

When you code on javascript, python, etc the role of packages deployment with dependency management takes package manager.

So, I'm pleased to announce that InterSystems ObjectScript Package Manager available!

19
4 3544
Article Luis Angel Pérez Ramos · Sep 30 11m read

Welcome, dear members of the Community!

In this article, we will present an example of a project implementing a FHIR-based solution. This project will be based on the national project (Spanish national project), known as ÚNICAS.

What is ÚNICAS?

In his own words:

A project whose objective is to create an ecosystem of partnerships to improve healthcare for pediatric patients with complex rare diseases (RMDs). This project is being implemented through the network within the National Health System (NHS) to improve the diagnosis and care of patients with rare diseases.

0
0 0
Question Sam Duncan · Aug 20

I've been trying to set up a script I can run after installing an instance to enable IPM across all namespaces. I have been able to install IPM successfully using

set r = ##class(%Net.HttpRequest).%New(),
    r.Server="pm.community.intersystems.com",
    r.SSLConfiguration="ISC.FeatureTracker.SSL.Config" 
d r.Get("/packages/zpm/latest/installer"),
    $system.OBJ.LoadStream(r.HttpResponse.Data,"c")

and then running the zpm commands

repo -r -n registry -url https://pm.community.intersystems.com/ -user "" -pass ""
enable -map -globally
0
0 0
Question André-Claude Gendron · Jul 31

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
0
0 0
Question Justin Millette · Jul 8

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="/${namespaceLower}/api"NameSpace="${namespace}"DispatchClass="pkg.isc.genai.rest.Handler"MatchRoles=":%All"AutheEnabled="#{$$$AutheDelegated}"Recurse="1"CookiePath="/${namespaceLower}/"
        />
0
0 0
Question Jonathan Lent · Jul 24

I feel I may be in the "people unclear on the concept" group here.

System Default Settings is a great mechanism, and we use some custom code to deploy it in our pipeline after environment specific changes have been applied to the content. However, we are trying our best to reduce the amount of custom code we use in our system that does not relate directly to the business. For CI/CD, this means we are trying to leverage IPM for the heavy lifting.

0
0 0
Article Evgeny Shvarov · Feb 15, 2020 5m read

Hi Developers!

As you know the concept of ObjectScript Package Manager consists of ZPM client - client application for IRIS which helps you to install packages from the registry. And the code which works "on the other side" is  ZPM Registry - server which hosts packages and exposes API to submit, list and install it. Now when you install the ZPM client it installs packages from community package registry, which si hosted on pm.community.intersystems.com

2
1 1194
InterSystems Official Henry Wojnicki · Jul 9, 2024

The Application Services team is pleased to announce the release of git-source-control version 2.4.0, introducing several new features to the open-source project.

For those unfamiliar, git-source-control is an embedded (or "server-side") source control tool for InterSystems products, installed through the InterSystems Package Manager.

Here are the key additions to the 2.4.0 release:

  1. Basic Mode
0
0 0
Article Kunal Pandey · May 12 1m read

Introducing Smart Clinical Sidechick — the intelligent, no-drama partner your EHR wishes it could be. She reads FHIR data in real time, interprets lab results without ghosting, and explains clinical alerts like she actually cares. Built with GPT-4 brains and YAML sass, she’s not here to replace your main EHR—just to make it look bad. Tired of irrelevant alerts and cryptic warnings? Sidechick serves up real, explainable insights, not vague “elevated risk” vibes. And when your backend crashes, she doesn’t panic—she self-heals. Secure, responsive, and (unlike your last vendor) emotionally

0
0 0
Question Evgeny Shvarov · Apr 26

Hi developers!

While developing web apps the security practice I consider safe and convenient is to create a special Role (e.g. equal application name) which contains security resources which application will need (SQL tables, priviledges, database access, etc) and assign it to the Web Application.
So the user gets this role once it loggs in to the application (via password, no password or delegated).

Convenient, right?

So, the question is, when I deploy the app as an IPM module what should I put as a database access?

0
0 0
Article janzai renato · Apr 1 1m read

# IRIS-Intelligent ButlerIRIS Intelligent Butler is an AI intelligent butler system built on the InterSystems IRIS data platform, aimed at providing users with comprehensive intelligent life and work assistance through data intelligence, automated decision-making, and natural interaction.## Application scenarios adding services, initializing configurations, etc. are currently being enriched## Intelligent ButlerIRIS Smart Manager utilizes the powerful data management and AI capabilities of InterSystems IRIS to create a highly personalized, automated, secure, and reliable intelligent life and

0
0 0
Article lando miller · Mar 31 2m read

Prompt

Firstly, we need to understand what prompt words are and what their functions are.

Prompt Engineering

Hint word engineering is a method specifically designed for optimizing language models.
Its goal is to guide these models to generate more accurate and targeted output text by designing and adjusting the input prompt words.

Core Functions of Prompts

0
0 0
Question Dmitrii Baranov · Mar 31

I'd like to ask you for recommendations on how to properly use repository dependencies when using VSCode and Client-side editing. Suppose I have projects A, B and C, with A being independent, B depending on A, and C depending on A and B. I am currently working with the main project C, and I want to be able to contribute to all the other projects in a single VSCode window (instead of opening three instances). How do you solve this problem? Git submodules? ZPM? Something else?

0
0 0
Question Pravin Barton · Feb 14

For some build scripting with the InterSystems Package Manager, I'd like to first uninstall a package with `zpm "uninstall"` and then load it from disk using `zpm "load"`. That way anything that got deleted from the source will also be deleted from IRIS. 

The problem is that `zpm "uninstall"` takes in a module name and I only have the directory path to the package source. Is there a way to get the module name for an installed IPM module given the source path? It's okay  to assume that it has previously been installed from that same directory with `zpm "load"`.

0
0 0
Article John McBride · Jul 10, 2024 2m read

Overview

After having some discussions at Global Summit and using a lot of package managers in my day to day development (npm,nuget,Chocolatey, etc) in addition to recently using the InterSystems Package Manager for some CICD process I'm building using Intersystems IRIS and IRIS 4 Health, I wanted an easy and integrated way to search/view/install packages related to the Intersystems tech stack.

I recently built a VSCode extension for IPM repositories that I will be open sourcing and publishing to the marketplace but wanted create this post to get some feedback from the community.

0
0 0
InterSystems Official Timothy Leavitt · Dec 17, 2024

We have released IPM 0.9.0. I previously remarked on some of the history and reasoning here; to summarize, this is a big release for two reasons: it represents a long-overdue reunification of our internal and community-driven work around IRIS-centric ObjectScript package management, and it has some backwards incompatibilities. There are several necessary backwards incompatibilities in our roadmap, and we've lumped them together; this will not be some new norm.

0
0 0
Article sara aplin · Dec 20, 2024 2m read

Monitor incremental changes in the database through scheduled tasks, display change trends through charts, set alarm thresholds, and write information to messages.log

How to use it

You can install it through Docker or ZPM

Deploying with Docker Prerequisites

Make sure you have git and Docker desktop installed.

Installation

1.Clone/git pull the repo into any local directory

git clone https://github.com/Sara771dev/Database-Size-Monitoring.git

Open the terminal in this directory and run

docker-compose build

Run the IRIS container

docker-compose up -d

ZPM Package Deployment

Open the terminal to run

0
0 0
Question Jani Hurskainen · Oct 30, 2024

I assume IPM manifest tag UnitTest is tightly coupled with the standard unit test framework, right? However we have our own one that predates the standard one and we are not going to switch.

I think I need to import the unit test cases and then be able to run a single class method for the test run. Any ideas how this would be possible?

0
0 0
Question Jani Hurskainen · Oct 29, 2024

I'm working on my first (!) IPM module and I'm a little puzzled with the registry authorization.

I have a working local registry (I hope!) and the module is loaded (with load-command) to the namespace.

Now publish-command fails because of missing authorization. I have set nothing authorization related myself and I'm lost how the authorization should be configured. All the material I have read so far seems to ignore that and only mentions one have to authenticate ...

Here's the command output:

0
0 0
Question Jani Hurskainen · Nov 5, 2024

I have a custom IPM resource processor like:

<Resource Name="example.json" ProcessorClass="OSEX.ipm.demo.IpmResourceProcessor" Foo="from manifest Resource attribute"/>

What is the best practice to deploy the custom resource processors to the IRIS instance? It can't be part of the module that uses it for obvious (?) chicken-egg situation.

My best idea atm is to put all those custom processors into a (library) module and all modules using any of them just have a dependency to the custom processors module.

0
0 0
Discussion Timothy Leavitt · Oct 31, 2024

Is anyone using the IPM client (e.g., running commands like zpm "install somepackagename") on an IRIS version earlier than 2022.1?

We're thinking about raising the minimum supported version so we can use Embedded Python in IPM. I'm curious if this would impact anyone. Of course, you'd be able to continue to use an earlier version of IPM.

0
0 0
Question Jani Hurskainen · Oct 30, 2024

It's not supported at the moment but is it possible to implement the Sonatype Nexus (or JFrog Artifactory) support based on the current (or upcoming) IPM version?

In repo command help I see there is a support for filesystem repositories (which I have not yet tried) and my current (hopefully not far-fetched) interpretation is the IPM is designed to be able to support different repositories:

0
0 0
Question Jani Hurskainen · Oct 30, 2024

I'm trying package IPM command but I'm getting the following error:

zpm:IPMTEST1>package -verbose -only -path /home/irisowner/ osex-ipm-hello

[IPMTEST1|osex-ipm-hello]       Package START
Exporting 'OSEX.ipm.hello.Hello.cls' to '/home/irisowner/src/OSEX/ipm/hello/Hello.cls'
Exported to /home/irisowner/module.xml
Module exported to:
        /home/irisowner/

[osex-ipm-hello]        Package FAILURE
ERROR! ObjectScript error: <VALUE OUT OF RANGE>zConstructTar+19^%ZPM.Utils.FileBinaryTar.1

What's wrong here?

I can see all the correct module files created:

0
0 0
Question Jani Hurskainen · Oct 28, 2024

I'm trying out the package manager (IPM). I'm trying to create a local (private) registry. To me it looks like the local registry installation succeeded but I can't figure out how to use it.

I'm using latest stable v0.7.3.

I have uploaded one module there (as told in one forum post):

$ curl http://localhost:52774/registry/
{"version":"1.3.2"}
$ curl http://localhost:52774/registry/packages/-/all
[{"name":"objectscript-math","description":"Math library for InterSystems ObjectScript","repository":"https://github.com/psteiwer/ObjectScript-Math/","origin":"","versions":["0.0.5"],"is_owner":0}]
0
0 0