skills/introduction-to-intersystems/SKILL.md
# Introduction to InterSystems Package Manager Manager This page describes how to install InterSystems Package Manager (IPM) and get started with it. It also summarizes commands needed for configuring IPM , discovering modules, managing modules, and other tasks. ## 1 Purpose InterSystems Package Manager (IPM) is a package manager for InterSystems products. Use IPM to search, install, update, remove, and publish modules (also known as packages). Each module could be an application, framework,
npx skillsauth add sorodriguezz/skills-objectscript skills/introduction-to-intersystemsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manager
This page describes how to install InterSystems Package Manager (IPM) and get started with it. It also summarizes commands needed for configuring IPM , discovering modules, managing modules, and other tasks.
InterSystems Package Manager (IPM) is a package manager for InterSystems products. Use IPM to search, install, update, remove, and publish modules (also known as packages). Each module could be an application, framework, tool, or technology example. With IPM, you can install:
InterSystems class definitions and ObjectScript routines
Front end applications
Interoperability applications
IRIS BI solutions
IRIS data sets
Embedded Python wheels or any other files
The modules can reside in multiple locations, depending on how you want to share code:
The InterSystems Community registry, at https://pm.community.intersystems.com (the default)
The Open Exchange, a community registry at https://openexchange.intersystems.com/, which contains code and libraries not written or supported by InterSystems.
Private registries
Local directories Initial setup code for IPM is provided as part of your InterSystems product distribution. Once you load and use this code, you can upgrade IPM, retrieving the most recent version of the code from the default registry.
To install IPM and start using it:
Open an ObjectScript shell.
If you want to enable IPM only in a specific namespace, switch to that namespace.
You can later enable it in other namespaces, if you change your mind.
Getting Started
ObjectScript
do $system.OBJ.Load($System.Util.InstallDirectory()_"dist/install/misc/zpm.xml","ck")
This loads the file
install-dir/dist/install/misc/zpm.xml.
You will see a series of messages as the installer extracts items and then loads and compiles code. The process can take a couple of minutes.
============================================================================= || Welcome to the Package Manager Shell (ZPM). Version: 0.10.2 || || 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 <version information here> zpm:USER>
You can now enter IPM shell commands. Notice that this message indicates that no registry is configured, so the ne xt step is generally to configure IPM to use the def ault registry (https://pm.community.intersystems.com).
repo -reset-defaults — Use this command if you want to configure IPM to use the def ault registry.
repo -community — Use this command if you want to configure IPM to use the def ault registry and you also want to enable IPM in all namespaces.
This generates additional messages including these:
registry Source: https://pm.community.intersystems.com Enabled? Yes Available? Yes Use for Snapshots? Yes Use for Prereleases? Yes Is Read-Only? No Default Deployment Registry? No
command accepts wildcards. For example:
zpm:USER>search data registry https://pm.community.intersystems.com: ccd-data-profiler 1.1.3 databasesizemonitoring 1.0.0 dataset-apachelog 1.0.5 dataset-countries 1.1.4 dataset-finance 1.0.8 dataset-health 1.2.1 dataset-medical 1.0.5 dataset-oex-reviews 1.0.0 dataset-simple-m-n 1.0.5 dataset-titanic 1.0.0 iris-data-analysis 1.0.0 iris-datapipe 2.0.5 iris-dataviz 0.0.1 iris-energy-isodata 1.1.0 iris-rest-api-databasemanager 1.0.0 iristestdatagenerator 1.0.0 test-data 1.0.4
where you want the code to reside. Then use the following command in the IPM shell:
install modulename
Overview of Module Definitions
Where modulename is the name of a module that is available to you (as seen by the search command). You will see a series of messages, that vary depending on which module is being installed. The downloaded files are in <install-dir>/ipm/modulename.
The modulename directory has a subdirectory for the version that you downloaded. That subdirectory should contain a README.md file or other e xplanatory file. The module.xml file defines the module. Other directories and files v ary by module.
At a high level, use the following general process to define a module:
Identify the code and related artifacts that you want to package together and organize the files into a suitable directory structure. The goal is to have one directory that completely contains all the needed files.
Typically, the code source files are in dif ferent subdirectories depending on the language used, and by the type of code as well (classes versus routines, for example). Related artifacts such as exported globals or other data files are generally contained in other directories.
The directory structure may need to be aligned with the directory structure used by your source control integration.
There are two ways to start creating this file:
Copy the module.xml file from an e xisting package that looks similar to what you need.
Use the generate command, which prompts you for input and then generates a module.xml file.
Make sure that you understand the dependencies of the new module and declare them in the manifest. This includes both the system dependencies (such as the InterSystems IRIS version or the OS version) and dependencies on any other modules.
example:
zpm:USER>load C:\InterSystems\IRISTest\ipm\mysample\1.0.0
The following commands configure ho w IPM works:
init – Configures the namespace for use of IPM (interacti ve). This sets up the local cache and allows for configuration of extensions for source control and IPM itself. Use this, for example, if you add a new namespace to the server.
config – Updates IPM settings.
enable – Enables IPM in other namespaces from a namespace in which IPM is already installed.
repo – Configures the current namespace to search for modules on a remote serv er or on the local file system.
default-modifiers – Manages default modifiers to use for all package manager commands in the current namespace.
Commands for Discovery
The following commands enable you to obtain information about modules:
search – Lists modules in the current registry.
list-installed – Lists installed modules in the current namespace.
list-dependents – Lists modules dependent on a specified module.
namespace – Switches to a namespace and lists the modules installed in that namespace. There is also an option to list modules in all namespaces.
orphans – Lists resources in the default code database (of the current namespace) that are not part of any module.
The following commands apply to the process of installing, compiling, testing, packaging, and publishing modules:
module-action – Performs operations on modules: compiling, running tests, packaging, registering, and so on). Many of the other commands in this list are synonyms for module-action used with different keywords.
install – Installs a module from a configured repository .
reinstall – Reinstalls a module from a repository.
update – Updates an installed module to a newer version and runs all the update steps needed.
reload – Reloads module source into the namespace, without recompiling it.
compile – Compiles resources in a module.
makedeployed – Marks resources as deployed, where possible.
module-version – Displays or modifies the v ersion of a module.
test – Runs unit tests for a module, if defined.
verify – Runs the unit tests that are specified to run in the verify phase.
package – Exports the module’s resources and bundles them into a module artifact (.tgz file).
generate – Generates a stub module.xml for use as a starting place for a new module manifest.
arrange – Rearranges the resources in the given module manifest to follow the standard format.
publish – Uploads the module to the repository for which deployment is enabled. Currently, there may only be one of these per namespace.
unpublish – Removes a module from a repository.
uninstall – Uninstalls a module that is currently installed locally.
Other Commands
The rest of the commands are as follows:
help – Shows help for the IPM shell or for an individual IPM command.
version – Prints the version numbers of the currently installed IPM and current registry.
run-from-file – Executes a sequence of IPM commands from a text or JSON script.
load – Loads a module from the specified directory or archi ve into the current namespace. Dependencies are also loaded automatically, provided that they can be found in repositories configured with the repo command. This command (and import) are useful when working with files that are not yet in an y repo.
import – Imports classes from a file or file(s), ree
xporting to source control if needed.
exec – Executes the given ObjectScript statement and displays any output from it. This IPM option enables you to accomplish additional tasks without having to exit the IPM shell.
quit – Exits the IPM shell.
IPM Wiki pages on GitHub
The IPM code on GitHub
Where to report issues on GitHub
data-ai
# XDBC Gateway XDBC Gateway Overview The XDBC Gateway provides a single interface for connecting InterSystems IRIS® to an external database with JDBC or ODBC. It acts as the modern, streamlined successor to the SQL Gateway. The XDBC Gateway acts like a JDBC or ODBC driver and lets you perform any of the following operations: - Access data stored in third-party relational databases within InterSystems IRIS applications. - Store persistent InterSystems IRIS objects in external relational data
devops
# Windows Installation Guide Windows Installation Overview The Windows Installation Guide provides guidance on installing kit-based deployments on Microsoft Windows. ### 1.1 How to Use This Guide For all installations, you should begin with the Pre-Installation steps. You can then follow the steps for either an attended or unattended installation. The attended installation process is different depending on the setup type you choose. After following the steps for attended installations, use t
testing
# Windows Installation Details Windows User Accounts When installing InterSystems IRIS, you must choose the Windows user account to run the InterSystems service, InterSystems IRIS Controller for <instance-name>. There are two options: - The default SYSTEM account (Windows Local System account). This is used in Minimal security installations. - A defined Windows user account. This account must have interactive login privileges for the duration of the installation; they can be revoked after.
tools
# Web Gateway Guide C.2.1 Method 1: Building the CSP Module as Shared Object with apxs (APache eXtenSion) Appendix D: Add the Web Gateway to a Locked-Down Apache Installation (UNIX®/Linux/macOS) The Web Gateway: Serve InterSystems Web Applications and REST APIs to a Web Client An InterSystems IRIS® web application consists of code which provides content dynamically to a web client (usually a web browser) in response to a request. The InterSystems Web Gateway makes this possible: it is a soft