Hi, Community!
Do you need a way to securely manage your passwords, API keys, and other credentials? See how the Secure Wallet in InterSystems IRIS® data platform can help:
InterSystems IRIS is a Complete Data Platform
InterSystems IRIS gives you everything you need to capture, share, understand, and act upon your organization’s most valuable asset – your data.
As a complete platform, InterSystems IRIS eliminates the need to integrate multiple development technologies. Applications require less code, fewer system resources, and less maintenance.
Hi, Community!
Do you need a way to securely manage your passwords, API keys, and other credentials? See how the Secure Wallet in InterSystems IRIS® data platform can help:
We are a group of interface analysts in a healthcare setting, running IRIS for Health 2024, having upgraded over time from an old ENSEMBLE environment. We have been working on a wish list of development goals, but are having trouble finding the correct, best practice method/path for getting to what we envision.
Current state: We run IRIS for Health on a Redhat 8 virtual machine. We run Interoperability productions (IE.cls) out of 6 namespaces. We have a dev/test box and a production box.
If you want to generate JWT from x509 cert/key, any operation (including reading) on %SYS.X509Credentials requires U on %Admin_Secure resource.%Admin_Secure is required because %SYS.X509Credentials is persistent, and it's implemented this way to prevent all users from accessing private keys.
If %Admin_Secure resource is not available at runtime, you can use the following workaround.
Upon reviewing the code for JWT generation, I discovered that the JWT code utilizes %SYS.X509Credentials solely as a source of runtime data for PrivateKey, PrivateKeyPassword, and Certificate.
SET assigns value to the variable at RUNTIME.
#DIM declare the variable and it's Data Type at COMPILE TIME.
SET |
#DIM |
| Makes the variables Dynamic. | Improves Readability. |
| No Data Type Declaration. | Enables IDE auto-completion. |
| Runtime | Useful for Object references. |
#DIM name As %String
Set name = "Micheal Scott"
#DIM age As %Numeric
Set age = 36
#DIM employer As App.Employer ; compile time
Set employer = ##class(App.Employer).%New() ; runtime
SET or #DIM? Your design, your rules.
I’m working on XML Digital Signature in InterSystems IRIS using %XML.Security.Signature
I start with an XML document that is created by parsing an input XML string, and I want to digitally sign this document using an X509 certificate.
Set x509 = ##class(%SYS.X509Credentials).GetByAlias(credAlias)
Set signature = ##class(%XML.Security.Signature).CreateX509(x509,$$$SOAPWSIncludeNone ,$$$KeyInfoX509Certificate)
Set signature.Id = "SIG1"
DO signature.SetSignatureMethod($$$SOAPWSrsasha1)
DO signature.SetDigestMethod($$$SOAPWSsha1)
Set signature.SignedInfo.CanonicalizationMethod.Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Advancing Healthcare Interoperability - Strategy and Vision @ Ready 2025
I have a business service that actively reads data from a remote Postgres database. OnProcessInput opens a XDBC (actually JDBC) connection, executes an SQL query, fetches several thousand rows, iterates the resultset, and closes the connection. On each iteration I also need to update each source row in the remote database using PreparedStatement.
In other words, in every OnProcessInput call I have a long running SELECT statement and several thousands small UPDATE statements.
InterSystems IRIS is built on an architecture that separates the logical organization of data (namespaces) from its physical storage location (databases). Understanding this separation and the distinction between Namespaces and Databases is crucial for effective data management, security, and especially, high-performance data sharing.
In this article, I will discuss these foundational components and provide a practical guide on leveraging global mappings to share native data structures (globals) across different logical environments.
A database represents the physical reality of where the data is stored on the disk. First and foremost, it’s a file in a file system called IRIS.dat (e.g., <Install folder>\mgr\user\IRIS.DAT). The maximum size of this file is 32TB. It is the container for all the actual data and the code. Databases are managed by the IRIS kernel, which handles caching, journaling, and transaction logging at the physical file level.
When you install InterSystems IRIS DBMS, the following databases are installed automatically:

I have a new project to store information from REST responses into an IRIS database. I’ll need to sync information from at least two dozen separate REST endpoints, which means creating nearly that many ObjectScript classes to store the results from those endpoints.
Could I use ChatGPT to get a headstart on creating these classes? The answer is “Yes”, which is great since this is my first attempt at using generative AI for something useful. Generating pictures of giraffes eating soup was getting kind of old….
Sometimes it is more convenient, more efficient, and more secure, to limit FHIR Searches per pre-defined "Lists" of Resources.
Since v2025.1 we support several List-related features in our FHIR Server.
I will highlight these here, and provide some samples.
I have see this discussed on the community but I'm not quite finding an answer.
I have a method that is called in the OnPreHttp() method of a CSP page. That method returns a dynamic object and a set a new variable to the %ToJSON method of the object so I can use it in my JavaScript code later to init a table of data (using the #(variable)# syntax). This creates a MAXSTRING error. So I changed it to return a %Stream.TmpCharacter. But if I call Read($$$MaxStringLenght) I only get part of the data.
I have a Photo that is stored as an VARBINARY within MS SQL. I would like to Select the data into a EnsLib.SQL.Snapshot, is that possible? I would take it out of the Snapshot and send it to a %Stream so it can be written out to a file.
I didn't know about ObjectScript until I started my new job. Objectscript isn't actually a young programming language. Compared to C++, Java and Python, the community isn't as active, but we're keen to make this place more vibrant, aren't we?
I've noticed that some of my colleagues are finding it tricky to get their heads around the class relationships in these huge projects. There aren't any easy-to-use modern class diagram tool for ObjectScript.
Related Work
I have tried relavant works:
- InterSystems class view:
1. https://github.
Developing Custom Components for Integrations – In Person (Boston, MA) February 10-12, 2026
Hi, Community!
Ready to strengthen your deployment of InterSystems IRIS® data platform?
👨💻See how to configure a mirrored pair to preserve the integrity of your data:
I was trying to see if we could connect to another Server, we use to execute external scripts using %Net.SSH.Session.
TESTCLIN>set sshSession = ##class(%Net.SSH.Session).%New()
TESTCLIN>set user = <omitted>
TESTCLIN>set host = <omitted>
TESTCLIN>set privateKey = "/nfs/data/ssh/<omitted>"
TESTCLIN>set publicKey = "/nfs/data/ssh/<omitted>.pub"
TESTCLIN>Set statusConnection = sshSession.Connect(host)
TESTCLIN>set statusAuth = sshSession.Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
Hi Developers!
Sometimes we need to deal with classes/tables where the primary key and the IdKey are something that is maintained by yourself.
What is the proper way to generate a new ID in case where ID is a %BigInt?
Property id As %Library.BigInt
Are there any system methods to provide it?
There is data already imported via SQL, so there is no last ID stored in ^myclassD, so I cannot do $I(^myclassD).
Thinking of:
set newid=$O(^myclassD(""),-1),newid=$I(newid)What do you think?
Hello community!
I have a small challenge for you :)
One of customers is sending quite a lot of messages between interoperability components, which mix standard request content and streams representing serialized JSON objects. As these JSON streams can be quite long (but not too long, just couple hundreds of characters) they would appreciate if the JSON content of stream was displayed in a nice-to-read way, using syntax highlighting by message trace view.
Time for another round of code golf!
Develop a function that performs a two-step encryption process on a given string:
First Step: Reverse Cipher
Second Step: Alphabetic Index Binary Encoding
encrypt("Hello World!
We are implementing delegated auth between Kong Gateway and IRIS. Kong is correctly configured to forward JWT authenticated requests with consumer headers (X-Consumer-Username, etc.) to IRIS, but the ZAUTHENTICATE routine (deployed in the %SYS namespace) never executes, leaving ZW ^ZAUTHLOG empty despite successful header delivery.
401 errors response:
...
* Request completely sent off
<
Defining my first REST API within InterSystems using iris-rest-Api-template as a basis and I am seeing if someone could provide me some guidance to see if I can make it work.
In some of my other posts, I have been trying to come up with a way for our Enterprise Application Development team which works with .Net to build Applications to make a REST call to our instance of InterSystems to query some of the Cache Tables we have defined.
Using the iris-rest-api-template, I have created the osuwmc.DataLookup.REST.Base.cls
Class osuwmc.DataLookup.REST.Base Extends %CSP.1. vscode extensions : intersystems.language-server-2.8.0@linux-arm64.vsix
2. api/atelier web application is enabled

3. vscode connect failed.

.png)
The most upvoted idea on the InterSystems Ideas Portal—garnering 74 votes—requests a lightweight version of IRIS. While the platform has grown into a powerful data engine, many projects require only its SQL database capabilities. This article demonstrates how to build an unofficial, compact IRIS Community Edition image focused solely on core database functionality, reducing the image size by over 80%.
This project produces an unofficial, experimental image of InterSystems IRIS Community Edition.
While IRIS today includes rich functionality—interoperability, analytics, machine learning, system management, etc.—many projects only require its core SQL capabilities. The official Community Edition Docker image is approximately:
IRIS Light reduces that to:
This makes it suitable for:
There is a Master Table within IRIS that I am populating from Epic but want to share it with our Enterprise Application Development Team (Web). As a test I was able to use _SYSTEM from postman to execute the following.
POST /api/atelier/v1/xxxx/action/query HTTP/1.1
Host: xxxxxxxx
Content-Type: application/json
Authorization: ••••••
Cookie: CSPSESSIONID-SP-443-UP-api-atelier-=00f0000000000AKyLjBfUvU$MpFD8UT8y$EoNKNw1ixZeXN4_Q; CSPWSERVERID=hzZAT5rb
Content-Length: 86
{"query": "SELECT * FROM osuwmc_Epic_Clarity.The demo is based on the raw class descriptions.
The data classes used are Address, Person, Employee, Company
For a more attractive demo, a JSONtoString method by ID was added.
Has anyone tried to authenticate IRIS client in Snowflake using Key Pair Auth as described in this doc?
I have been struggling sometime with trying to take a FHIR Bundle Response, extract the "entry.resourceType", extract the MRN and Name from the Patient FHIR Response...
Going through learning.intersystems.com, it suggested that I try using fhirPathAPI to parse and search my response for certain values, however I am not sure my syntax is correct. Using the AI code, it suggested to set my tree = "Bundle.entry.resource.resourceType"
ClassMethod Transform(source As HS.FHIRServer.Interop.Response, target As osuwmc.Epic.FHIR.DataStructures.