Clear filter
Article
Yuri Marx · Apr 13, 2023
It is a recommended security practice to login into sensitive Administrator Portals without any input passwords. Thus, it is necessary to identify and authenticate the users correctly. A common technique employed by web portals and mobile applications is to use Google social login. Today, Google Gmail has 2 billion users (source: https://www.usesignhouse.com/blog/gmail-stats). Therefore, it is a perfect shared login service to utilize to login InterSystems IRIS users when they need to manage their instances. This article will detail all the steps to embed Google Login into your InterSystems Management Portal.
Register your InterSystems instance in the Google Console
1. Go to https://console.cloud.google.com and log in with your Google user account.2. On the header click Select a project:
3. Click the button NEW PROJECT:
4. Create a sample project for this article called InterSystemsIRIS and click the button CREATE:
5. Go to the Header again and select the created project InterSystemsIRIS hyperlink in the table:
6. Now the selected project is the working one:
7. In the header look for credentials on the Search field and choose API credentials (third option for this image):
8. On the top of the screen, click the + CREATE CREDENTIALS button and select OAuth 2.0 Client ID option:
9. Now click CONFIGURE CONSENT SCREEN:
10. Choose External (any person who has Gmail is able to use it) and click the CREATE button:
11. In Edit app registration, complete the field values as follow:App Information (use your email for user support email):
App Logo (save any vertical InterSystems Logo on your computer and use it here):
App Domain (set home page with the value http://localhost:52773/csp/sys/%25CSP.Portal.Home.zen)
For Authorized domains, it is not necessary to set anything because this sample will use localhost. Set the developer contact information with your email and click the SAVE AND CONTINUE button:
12. Click ADD OR REMOVE SCOPES and select the following scopes, scroll the dialog, and click the UPDATE button:
13. Your non-sensitive, sensitive, and restricted scopes are listed. Accept all of them and click the SAVE AND CONTINUE button:
14. Include your email into the Test users list (using the +ADD USERS button) and click the SAVE AND CONTINUE button:
15. The wizard shows you the Summary of the filled fields. Scroll the screen and click the BACK TO DASHBOARD button.16. Now, it is time to configure the credentials for this new project. Select the option Credentials:
17. Click the button +CREATE CREDENTIALS and select OAuth client ID (we need to take this step again because now we have OAuth consent screen defined):
18. Select Web application in the Application Type and InterSystems IRIS in the Name field:
19. Configure JavaScript origins and redirects (click +ADD URI to get more fields) as follows and click the SAVE button:
JavaScript URI 1: http://localhost:52773
JavaScript URI 2: http://localhost
Redirect URI 1: http://localhost:52773
Redirect URI 2: http://localhost
Redirect URI 3: http://localhost:52773/csp/sys/dc.login.GoogleLogin.cls
20. Now we have a Client ID and a Client Secret. You should copy them to a text file on your disk or save the data using DOWNLOAD JSON:
Now we will embed Google Login to our local InterSystems IRIS instance.
InterSystems IRIS Delegated Authentication Mechanism to the Management Portal
InterSystems IRIS allows us to use a few authentication options, including Instance Authentication (a default option that uses a user and a password managed by the IRIS instance), LDAP (users managed by an enterprise repository), and Delegated Authentication (for customized authentication mechanism).We will choose Delegated Authentication because this is the option where the login uses OAuth and a custom code to get user credentials and authenticate users without the input passwords. When using OAuth, the OAuth server (Google in our use case) will authenticate and return to the InterSystems IRIS (OAuth client) the user details logged in.In our example, we want to set up Delegated Authentication to the Management Portal (csp/sys application). To make it happen, you need to take the following steps:
Create a class extending %CSP.Login and write the custom HTML, JavaScript, and CSS code for the customized login. In this article sample we will embed a Google button to log in with the Google user.
Create and write Object Script in the macro ZAUTHENTICATE.mac with the custom backend authentication login logic.
Enable Delegated Authentication to the InterSystems IRIS.
Set up Delegated authentication and the custom login page (the class extending %CSP.Login) for the /csp/sys web application (Management Portal web application).
All these steps should be done in the %SYS namespace.
Using a sample application to learn how to embed Google Login into Management Portal
To learn how to embed Google Social Login into an instance of the InterSystems IRIS, we will use the application Google IRIS Login (https://openexchange.intersystems.com/package/Google-IRIS-Login). Follow these steps in order to get it:
1. Clone/git pull the repo into any local directory:
git clone https://github.com/intersystems-community/intersystems-iris-dev-template.git
2. Go to the .env file and input your CLIENT_ID generated in your Google Cloud Console in the first part of this article.3. Open the terminal in this directory and call the command to build InterSystems IRIS in a container
docker-compose build
4. To run the InterSystems IRIS in a container, do the next:
$ docker-compose up -d
5. Access the Management Portal (http://localhost:52773/csp/sys/%2525CSP.Portal.Home.zen) and use your Google user to enter:
Ready! In the upcoming sections, we will see all the steps one needs to configure and develop inside IRIS to embed Google Social Login.
Creating a custom Login Page extended from %CSP.Login
To embed the Google Login into the Management Portal we need to create a new Login page extending from %CSP.Login. This allows us to reuse the default Login Page but requires adding the necessary source code for supporting Google Login. The custom login page will override the following class methods:
OnLoginPage: used to write the HTML and JavaScript code to render the login form with the Google Login button.
DrawHead: employed to add JavaScript code that will persist Google Login credentials returned into cookies for the backend logic use.
GoogleLogin.cls source code
Important actions on this page:1. We got CLIENT_ID and LOGIN_URI from the env file to use as parameters for the Google Login button:
Set envClientId = ##class(%SYSTEM.Util).GetEnviron("CLIENT_ID")
Set envLoginURI = ##class(%SYSTEM.Util).GetEnviron("LOGIN_URI")
2. Before the content, we needed to load the Google JavaScript library
<script src="https://accounts.google.com/gsi/client" async defer></script>
3. Our next step was to write the HTML code to render the Google button using LOGIN_URI and CLIENT_ID environment variables collected from the .env file:
<div id="g_id_onload"
data-client_id="#(envClientId)#"
data-context="signin"
data-ux_mode="popup"
data-callback="handleCredentialResponse"
data-login_uri="#(envLoginURI)#"
data-auto_prompt="false">
</div>
<div class="g_id_signin"
data-type="standard"
data-shape="rectangular"
data-theme="outline"
data-text="signin_with"
data-size="large"
data-onsuccess="onSignIn"
data-logo_alignment="left">
</div>
4. On the DrawHead class method, we wrote JavaScript functions to get the Google user credentials and store them in cookies for the backend use:
function setCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires + "; path=/";
}
function newSession() {
eraseCookie('email');
window.location.reload();
}
function eraseCookie(name) {
// This function will attempt to remove a cookie from all paths.
var pathBits = location.pathname.split('/');
var pathCurrent = ' path=';
// do a simple pathless delete first.
document.cookie = name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT;';
for (var i = 0; i < pathBits.length; i++) {
pathCurrent += ((pathCurrent.substr(-1) != '/') ? '/' : '') + pathBits[i];
document.cookie = name + '=; expires=Thu, 01-Jan-1970 00:00:01 GMT;' + pathCurrent + ';';
}
}
function deleteAllCookies() {
const cookies = document.cookie.split(";");
for (let i = 0; i < cookies.length; i++) {
const cookie = cookies[i];
const eqPos = cookie.indexOf("=");
const name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
// called when page is loaded
function pageLoad()
{
// see if we can give focus to the UserName field:
if (self.document.Login && self.document.Login.IRISUsername) {
self.document.Login.IRISUsername.focus();
self.document.Login.IRISUsername.select();
}
return true;
}
function decodeJwtResponse(token) {
var base64Url = token.split('.')[1];
var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function(c) {
return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);
}).join(''));
return JSON.parse(jsonPayload);
}
function handleCredentialResponse(response) {
const responsePayload = decodeJwtResponse(response.credential);
console.log("ID: " + responsePayload.sub);
console.log('Full Name: ' + responsePayload.name);
console.log('Given Name: ' + responsePayload.given_name);
console.log('Family Name: ' + responsePayload.family_name);
console.log("Image URL: " + responsePayload.picture);
console.log("Email: " + responsePayload.email);
setCookie('email', responsePayload.email);
setCookie('googleToken', response.credential);
if(responsePayload.email !== null) {
document.getElementsByName('Login')[0].submit();
}
}
5. To see all the content for the Login Page go to src > cls > dc > login > GoogleLogin.cls file.
Creating the backend code to authenticate Google users
To write the backend logic to handle custom login using delegated mechanism, it is necessary to apply a macro with the name ZAUTHENTICATE.mac into %SYS namespace.
ZAUTHENTICATE.mac source code
Important actions in this file:1. Define and store an encrypted password for the new user selected in the Google Login prompt:
Set GooglePassword = $SYSTEM.Util.GetEnviron("GOOGLE_PASSWORD")
Set GlobalPassword = $EXTRACT(##class(dc.login.CypherUtil).DoAESCBCEncrypt(GooglePassword),1,20)
2. Refer to the Management Portal application (csp/sys) for Google Login:
Set App = $SYSTEM.Util.GetEnviron("ISC_App")
Set:App="" App = "/csp/sys"
Set GN = "^%ZAPM.AppsDelegate"
If $EXTRACT(App,*)'="/" {
Set App=App_"/"
}
3. Get the Google user selected and stored in the email cookie:
Set Email = %request.GetCookie("email")
4. Test if the user already exists. If not, create the user as a Superuser (My choice is the %All role, but you can pick another option, for example, the %Developer role). If the user already exists, just log in:
Set EmailUser = $PIECE(Email,"@")
Set qry = "select * from Security.Users where EmailAddress = ?"
Set tStatement = ##class(%SQL.Statement).%New()
Set qStatus = tStatement.%Prepare(qry)
Set rset = tStatement.%Execute(Email)
While rset.%Next() {
Set UserExists = 1
}
If UserExists = 1 {
Set Username = rset.Name
Set Password = GlobalPassword
Quit $SYSTEM.Status.OK()
} Else {
Set $nameSpace = "%SYS"
if '##class(Security.Users).Exists($PIECE(Email,"@")) {
Set status = ##class(Security.Users).Create($PIECE(Email,"@"),"%ALL",GlobalPassword,$PIECE(Email,"@"),"","","",0,1,"",1,0,"","","","")
Set status = ##class(Security.Users).Get($PIECE(Email,"@"),.properties)
Set properties("EmailAddress")=Email
Set status = ##class(Security.Users).Modify($PIECE(Email,"@"), .properties)
If status = 1 {
Set Username = $PIECE(Email,"@")
Set Password = GlobalPassword
Quit $SYSTEM.Status.OK()
}
}
}
5. Compile these files into the “%SYS” namespace.
It is time to set some parameters to ensure the delegated authentication using the custom source code written above.
Adjust the settings to ensure delegated login
1. Go to the Management Portal (http://localhost:52773/csp/sys/%2525CSP.Portal.Home.zen) and log in with _system/sys credentials.2. Proceed to System Administration > Security > System Security > Authentication/Web Session Options:
3. The option “Allow Delegated authentication” must be checked:
4. Now go to System Administration > Security > Users and select the user CSPSystem. The user must have the role DB_IRISSYS or %All role (it is necessary because this user is utilized to run the login page and the authenticate.mac logic with the permissions required to execute it):
5. Move to the System Administration > Security > Applications > Web Applications and select the /csp/sys application.6. In the "Allowed Authentication Methods" field, check the option "Delegated.7. The Login Page field must have dc.login.GoogleLogin.cls as a value (we need it to call our custom login page, instead of the IRIS default page):
8. Now to ensure the correct functioning, attach Shell to your IRIS docker instance:
9. Now restart the page from the prompt writing and execute the command "iris restart iris":
10. Finally, go to the Login page again.
Now you have Google as an option to log in. Enjoy it! wow - what an incredibly in-depth tutorial! thank you @Yuri.Gomes for the time you took putting this together for the Community! Many thanks! @Yuri.Gomes Thank you so much for this great work - tutorial, and application! 👏👏
Looks like you implemented the idea:
💡Please add google oauth authorization to login to the management portal💡
from Ideas Portal ✨
Many thanks!👏 Thanks! Yes, I implemented it. Thank you, @Yuri.Gomes! Can we have the similar implementation for GitHub OAuth too? Github is the most popular site for developers, so authentication via GItHub will be very handy for developers. Yes, I will work on Github too.
Announcement
Anastasia Dyubaylo · Jul 12, 2023
Hey Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
⏯ Projecting Data into InterSystems IRIS with Foreign Tables
See the benefits of projecting data into InterSystems IRIS® data platform using Foreign Tables. This feature allows you to access external data without loading it into your instance, saving on storage space and guaranteeing your data is up to date.
Subscribe to our channel to stay tuned!
Announcement
Anastasia Dyubaylo · Jul 18, 2023
Hi Community,
Watch this video to learn how InterSystems software enables both horizontal and vertical scaling:
⏯ Scaling for User and Data Volume in InterSystems IRIS
Stay tuned and subscribe to InterSystems Developers YouTube!
Announcement
Jessica Simmons · Nov 1, 2022
VetsEZ is looking for an InterSystems Technology Platform - Practice Lead to serve our Federal healthcare customers. As a lead systems integrator, VetsEZ has been delivering large-scale implementations for various federal customers, including the Department of Veterans Affairs (VA), with the world's largest footprint of InterSystems technologies. InterSystems Technology Platform comprises core technologies, including HealthShare, Caché, IRIS, Ensemble, DeepSee, and iKnow. The ideal candidate will possess the required technical knowledge and the leadership skills necessary for leading and growing our practice. We aim to become a certified InterSystems partner and achieve the Unified Care Record (UCR) certification. We value candidates with solid communication skills who can work in a fast-paced, challenging environment.
The candidate must reside within the continental US.
Responsibilities:
• Engage with clients at the senior leadership level to understand unique business drivers, pain points, overall technology landscape, timeline, and priorities; understand what success looks like to the client; and, most importantly, how our services can help fill that need
• Grow strong clientele and partner relationships through regular communication, reliable expectation management, and delivering on promises
• Identify skill sets and timing for resource needs and help to shepherd resources in and out of projects
• Act as a technical lead, and mentor team members while maintaining a hands-on role. Subject-matter expertise in healthcare interoperability and InterSystems Technology Platform
• Understand complex technical and business requirements and translate them into highly scalable, robust integration architectures
• Architect and configure the InterSystems HealthShare / IRIS platform with a focus on Automation and CI/CD
• Utilize Healthcare Interoperability Standards (HL7v2, FHIR, CCDA, IHE, X12) appropriately in solution designs.
• Lead development teams in building solutions and automating processes
• Utilize CI/CD technologies and processes including but not limited to Git, Jenkins, Docker
• Use AWS-based cloud architectures, VM and Containers, and deployment strategies to Architect solutions
• Utilize Enterprise Integration Patterns in solution designs.
Required Skills and Abilities:
• Hands-on Architect with leadership experience to guide and mentor a team
• Flexible and able to adapt to frequently changing standards and priorities
• Customer advocate, working hard to ensure customer success and satisfaction
• Proven experience developing and implementing highly scalable enterprise-level interoperability solutions
• Passion for deploying scalable, robust solutions with an eye toward futureproofing
• Strong interpersonal skills, with a desire to interact with various team members, customers, and end-users.
Qualifications:
• Bachelor's Degree in Computer Science or equivalent area. Master's degree preferred.
• Experience in the VA, specifically with VA VistA and FileMan, is a plus.
• Background in healthcare preferred.
• 5+ years of experience
• Must be able to obtain and maintain public trust clearance
• Team-oriented contributor with excellent interpersonal skills
Additional Qualifications:
Must be able to obtain and maintain Public Trust Clearance
Team-oriented contributor with excellent interpersonal skills
Must have reliable internet service for remote work
Background in the Department of Veterans Affairs and healthcare preferred
Benefits:
Medical/Dental/Vision
401k with Employer Match
Corporate Laptop
PTO + Federal Holidays
Training opportunities
Remote work options
Qualified applicants will receive consideration for employment regardless of race, color, religion, sex, national origin, sexual orientation, gender identity, disability, or protected veteran status.
Sorry, we are unable to offer sponsorship currently.
https://vetsez.breezy.hr/p/edb1586759dc01-intersystems-technology-platform-practice-lead-remote-opportunity?state=published
Announcement
Bob Kuszewski · Nov 22, 2022
Announcing the InterSystems Container Registry web user interface
InterSystems is pleased to announce the release of the InterSystems Container Registry web user interface. This tool is designed to make it easier to discover, access, and use the many Container images hosted on ICR.
The InterSystems Container Registry UI is available at: https://containers.intersystems.com/contents
Community Edition Containers
When you visit the ICR user interface, you’ll have access to InterSystems' publicly available containers, including the IRIS community edition containers. Use the left-hand navigation to select the product family that interests you, then the container, and finally select the specific version.
Enterprise Edition Containers
You can see the private containers, including the IRIS enterprise edition, by clicking on the Login button. Once logged in, the left-hand navigation will include all the containers you have access to.
Enjoy!
That great, can be very useful to just check if a version is still available or the one that just came out. A great resource for our community - thanks! This is nice !! Thank you @Robert.Kuszewski !! SUPER !!!
Article
Anastasia Dyubaylo · Mar 30, 2023
Hi Community,
Some of you would like to share an event (online or offline) with others on our Community and here is a how-to on how to actually create an Event to invite your fellow members.
The main challenge when creating an event is to fill in all the necessary pieces of information in the right places. So let's look at what needs to be done.
First of all, you need to choose the tag Events
After you've done it, you'll see that a new form appeared at the bottom of the page:
When filling in the form please follow the instruction provided. Click Publish as usual and your event will become visible on the main page of the Community. And this is it.
If you have any comments or questions, please don't hesitate to ask them in the Comments section.
Announcement
Bob Kuszewski · Jun 2, 2023
We often get questions about recent and upcoming changes to the list of platforms and frameworks that are supported by the InterSystems IRIS data platform. This update aims to share recent changes as well as our best current knowledge on upcoming changes, but predicting the future is tricky business and this shouldn’t be considered a committed roadmap.
With that said, on to the update…
IRIS Production Operating Systems and CPU Architectures
Red Hat Enterprise Linux
Recent Changes
RHEL 9.2 & RHEL 8.8 were released in May, 2023. Red Hat is planning to support these releases for 4 years. InterSystems is planning to do additional testing of IRIS on RHEL 9.2 through a new process we’re calling “Minor OS version certification” that is intended to provide additional security that a minor OS update didn’t break anything obvious.
With the release of RHEL 9.2, Red Hat has ended support for RHEL 9.1. This is consistent with the “odd/even” support cycle that Red Hat has been using since RHEL 8.0.
RHEL 8.4 extended maintenance ends 5/31/2023, which means that IRIS will stop supporting this minor version at that time as well.
Upcoming Changes
RHEL 9.3 is planned for later in the year. This will be a short-term-support release from Red Hat, so InterSystems won’t be recommending it for production deployments.
Previous Updates
IRIS 2022.1.2 adds support for RHEL 9.0. 9.0 is a major OS release that updates the Linux Kernel to 5.14, OpenSSL to 3.0, and Python 3.9
IRIS 2022.2.0 removes support for RHEL 7.x. RHEL 7.9 is still supported in earlier versions of IRIS.
Further reading: RHEL Release Page
Ubuntu
Recent Changes
Ubuntu 22.04.02 LTS was released February 22, 2023. InterSystems is currently performing additional testing of IRIS on 22.04.02 LTS through a new process we’re calling “Minor OS version certification”. So far, so good.
Upcoming Changes
The next major update of Ubuntu is scheduled for April, 2024
Previous Updates
IRIS 2022.1.1 adds support for Ubuntu 22.04. 22.04 is a major OS release that updates the Linux Kernel to 5.15, OpenSSL to 3.0.2, and Python 3.10.6
IRIS 2022.2.0 removes support for Ubuntu 18.04. Ubuntu 18.04 is still supported in earlier versions of IRIS.
IRIS 2022.1.1 & up containers are based on Ubuntu 22.04.
Further Reading: Ubuntu Releases Page
SUSE Linux
Upcoming Changes
SUSE Linux Enterprise Server 15 SP5 is currently in public beta testing. We expect SUSE to release 15 SP5 late Q2 or early Q3 with support added to IRIS after that. SP5 will include Linux Kernel 5.14.21, OpenSSL 3.0.8, and Python 3.11
General Support from SUSE for Linux Enterprise Server 15 SP3 came to an end on 12/31/2022, but extended security support will continue until December, 2025.
Previous Updates
IRIS 2022.3.0 adds support for SUSE Linux Enterprise Server 15 SP4. 15 SP4 is a major OS release that updates the Linux Kernel to 5.14, OpenSSL to 3.0, and Python 3.9
Further Reading: SUSE lifecycle
Oracle Linux
Upcoming Changes
Based on their history, Oracle Linux 9 will include RHEL 9.2 sometime in the second half of 2023.
Previous Updates
IRIS 2022.3.0 adds support for Oracle Linux 9. Oracle Linux 9 is a major OS release that tracks RHEL 9, so it, too, updates the Linux Kernel to 5.14, OpenSSL to 3.0, and Python 3.9
Further Reading: Oracle Linux Support Policy
Microsoft Windows
Upcoming Changes
Windows Server 2012 will reach its end of extended support in October, 2023. If you’re still running on the platform, now is the time to plan migration. IRIS 2023.2 will not be available for Windows Server 2012.
Previous Updates
We haven’t made any changes to the list of supported Windows versions since Windows Server 2022 was added in IRIS 2022.1
Further Reading: Microsoft Lifecycle
AIX
Upcoming Changes
InterSystems is working closely with IBM to add support for OpenSSL 3.0. This will not be included in IRIS 2023.2.0 as IBM will need to target the feature in a further TL release. The good news is that IBM is looking to release OpenSSL 3.0 for both AIX 7.2 & 7.3 and the timing looks like it should align for IRIS 2023.3.
Previous Updates
We haven’t made any changes to the list of supported AIX versions since AIX 7.3 was added and 7.1 removed in IRIS 2022.1
Further Reading: AIX Lifecycle
Containers
Upcoming Changes
IRIS containers will only be tagged with the year and release, such as “2023.2” instead of the full build numbers we’ve been using in the past. This way, your application can, by default, pick up the latest maintenance build of your release.
We are also adding “latest-em” and “latest-cd” tags for the most recent extended maintenance and continuous distribution IRIS release. These will be good for demos, examples, and development environments.
We will also start to tag the preview containers with “-preview” so that it’s clear which container is the most recent GA release.
These changes will all be effective the 2023.2 GA release. We’ll be posting more about this in June.
Previous Updates
We are now publishing multi-architecture manifests for IRIS containers. This means that pulling the IRIS container tagged 2022.3.0.606.0 will download the right container for your machine’s CPU architecture (Intel/AMD or ARM).
IRIS Development Operating Systems and CPU Architectures
MacOS
Recent Changes
We’ve added support for MacOS 13 in IRIS 2023.1
Upcoming Changes
MacOS 14 will be announced soon and expect it will be GA later in the year.
CentOS
We are considering removing support for CentOS/CentOS Stream. See reasoning below.
Red Hat has been running a developer program for a few years now, which gives developers access to free licenses for non-production environments. Developers currently using CentOS are encouraged to switch to RHEL via this program.
CentOS Stream is now “upstream” of RHEL, meaning that it has bugs & features not yet included in RHEL. It also updates daily, which can cause problems for developers building on the platform (to say nothing of our own testing staff).
We haven’t made any changes to the list of supported CentOS versions since we added support for CentOS 8-Stream and removed support for CentOS 7.9 in IRIS 2022.1
InterSystems Components
InterSystems API Manager (IAM)
IAM 3.2 was released this quarter and it included a change to the container’s base image from Alpine to Amazon Linux.
Caché & Ensemble Production Operating Systems and CPU Architectures
Previous Updates
Cache 2018.1.7 adds support for Windows 11
InterSystems Supported Platforms Documentation
The InterSystems Supported Platforms documentation is source for definitive list of supported technologies.
IRIS 2020.1 Supported Server Platforms
IRIS 2021.1 Supported Server Platforms
IRIS 2022.1 Supported Server Platforms
IRIS 2023.1 Supported Server Platforms
Caché & Ensemble 2018.1.7 Supported Server Platforms
… and that’s all folks. Again, if there’s something more that you’d like to know about, please let us know.
AIX 7.3 TL 1 and later has OpenSSL 3.X
From the linked IBM page AIX 7.3 TL1 was released six months ago.$oslevel -s7300-01-02-2320$openssl versionOpenSSL 3.0.8 7 Feb 2023 (Library: OpenSSL 3.0.8 7 Feb 2023) Unfortunately, there are significant bugs in the OpenSSL 3 available for AIX 7.3 that make running IRIS (or any other high user of OpenSSL) impossible. We have a build in-house from IBM that has fixed the problems that should be available to the public later in the year.
Announcement
Anthony Jackson · Jun 3
Summary:
Duties and Responsibilities:
Design and implement healthcare data integration solutions using the InterSystems platform /HealthShare platform, ensuring data interoperability across various healthcare systems.
Develop and maintain data mappings and transformations to ensure accurate data exchange between systems, leveraging IRIS API’s, HL7, FHIR, and other healthcare data standards.
Build and maintain interfaces to connect health information systems, including clinical applications, EHR, and other healthcare data sources.
Work closely with cross-functional teams, including developers, business analysts, and healthcare professionals, to gather requirements, design solutions, and implement integrations.
Create and maintain comprehensive documentation for integration solutions, including interface specifications, data mappings, and test plans.
Identify opportunities to improve integration processes and solutions, contributing to the overall efficiency and effectiveness of healthcare data exchange.
Education and Skills:
Experience with interoperability tools (like InterSystems), such as NextGen Mirth or "Availity" or "Infor" or "IRIS" or Cloverleaf or Rhapsody or Ensemble etc.
Experience and expertise with InterSystems IRIS, InterSystems HealthShare.
Familiarity / Experience working with Medical Claims data
Experience with Amazon Web Services (AWS).
Experience developing Continuous Integration / Continuous Delivery (CI/CD).
Knowledge and understanding of agile methodologies
Please send your profile to : Antony.Jackson@infinite.com
antonyjacks@gmail.com
Announcement
Anastasia Dyubaylo · Jun 10
Hi Community,
Our Project Managers created a series of videos to highlight some of the interesting features of the new 2025.1 release. Please welcome the first one of them:
⏯ Foreign Tables in InterSystems IRIS 2025.1
The InterSystems IRIS 2025.1 release introduces powerful new features for data management, including full support for foreign tables in production. It adds fine-grained privileges for managing access to foreign servers and querying them, plus a new command for sending direct SQL queries to external relational databases. New table conversion options also allow switching between row and column layouts for better analytics performance.
🗣 Presenter: @Benjamin.DeBoe, Manager, Analytics Product Management, InterSystems
Want to stay up to date? Watch the video and subscribe for more!
Question
Laura Blázquez García · Jun 9
I have created a new docker stack with webgateway and IRIS for Health 2025.1. I have mapped the posts of wegateway like this:
8743:443
8780:80
I can access IRIS portal through 8743 without problems.
I also have created a FHIR repository, and I'm able to access it through 8743 port.
I have a web application, in another server with another domain, that connects to this FHIR repository. I have configured in FHIR endpoint the allowed origin to the domain of this application. But when I try to connect from this application to FHIR repository I have this error on Webgateway:
Protocol Error between the Web Gateway and InterSystems IRIS
This is a second instance that I'm configuring, with the first one I didn't see this error. Could this be because first instance runs in 8443 port? Or maybe it is because 2025.1 version? I don't know what to do... I can’t find the information you’re looking for. If you rephrase your question, I might be able to help. You can also explore the following resources:
- **"Extend Your Web Server Configuration with the Web Gateway"** [[1]](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI_webserver)
- **"Web Gateway Registry in InterSystems IRIS"** [[2]](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI_registry)
- **"The Web Gateway: Serve InterSystems Web Applications and REST APIs to a Web Client"** [[3]](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GCGI_intro).Sources:1.Extend Your Web Server Configuration with the Web Gateway | Web Gateway Guide | InterSystems IRIS Data Platform 2025.12.Web Gateway Registry in InterSystems IRIS | Web Gateway Guide | InterSystems IRIS Data Platform 2025.13.The Web Gateway: Serve InterSystems Web Applications and REST APIs to a Web Client | Web Gateway Guide | InterSystems IRIS Data Platform 2025.1 I found this article: https://community.intersystems.com/post/no-access-control-allow-origin-header-issue-cors-issue
This is what's happening to me from my web application (excluding the webgateway error, which I think simply the description isn't correct).
Checking the CSPSystem user, I've assigned it the role of the database where the FHIR repository is located, and it still doesn't work. However, if I assign it the %All role, it works. So, I'm missing some permission for this user; I can't figure out which one... How did you installed set up your FHIR Server?
When installed using the IRIS portal the FHIR Web Application is automatically created and configured with the following Application Roles :%DB_HSCUSTOM%DB_HSLIB%DB_HSSYS%DB_<YourNamespace>X0001R%DB_<YourNamespace>X0001V%HS_DB_<YourNamespace>%HS_ImpersonateUser
Announcement
Anastasia Dyubaylo · Jun 30
Hey Community,
We're excited to invite you to the next InterSystems UKI Tech Talk webinar:
👉The Future of Healthcare Integration with Health Connect & InterSystems
⏱ Date & Time: Thursday, July 3, 2025 10:30-11:30 UK
Speakers:👨🏫 @Mark.Massias, Senior Sales Engineer, InterSystems👨🏫 Mike Fitzgerald. Head of Customer Solutions, ReStart
As the NHS continues to advance its digital transformation agenda, seamless interoperability has become a crucial priority for healthcare IT professionals. InterSystems Health Connect is leading the way as a superior integration engine, offering enhanced scalability, security, and performance to support evolving data exchange needs.
This exclusive webinar will explore how you can overcome interoperability challenges, streamline system migrations, and benefit from real-world success stories—ensuring you stay ahead of NHS standards for connected care.
Join us for an insightful session where InterSystems and our highly experienced implementation partner ReStart will showcase the benefits of Health Connect, providing actionable strategies for seamless integration and transitioning from legacy solutions. Discover how Health Connect supports NHS standards out-of-the box and enhances connectivity across trust and regional healthcare networks.
This is your opportunity to future-proof your healthcare IT strategy and drive smarter, more efficient data integration.
>> REGISTER HERE << When I looked yesterday there was a "Learning Services, Dev Community and Partner Portal Overview" listed for 24th July. When I went to register for both the future of healthcare integration and the learning services, Dev Community etc one, the latter has disappeared. Any plans to reschedule? Hi Colin!
You're correct, I also remember seeing the webinar about the Developer Community at the end of this month.
But in the end, it was decided to cancel the tech talk on the 24th July. With the launch of the new partner portal at Ready 2025, it was decided to reschedule for a time when more confirmed details are available and it aligns better with the broader program.
An email is scheduled to go out this morning to all those who have registered to date, and the meeting invite will be cancelled this PM.
Announcement
Anastasia Dyubaylo · Jul 14
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ InterSystems IRIS: Easy to Consume and Easy to Use @ Global Summit 2024
Watch this video to learn the company’s vision for IRIS Data Platform and its evolving role in supporting next-generation data architectures. It explores how IRIS is expanding to meet the demands of AI, data fabrics, and real-time analytics, emphasizing scalability, trust, and agility.
🗣 Presenter: Scott Gnau, Vice President, Data Platforms, InterSystems
Stay ahead of the curve! Watch the video and subscribe to keep learning! 👍
Announcement
Anastasia Dyubaylo · Jul 10
Hello and welcome to the Developer Ecosystem News!
The second quarter of the year was full of exciting activities in the InterSystems Developer Ecosystem. In case you missed something, we've prepared a selection of the hottest news and topics for you to catch up on!
News
🎇 Introducing Developer Community AI Bot
🎆 Chat with Developer Community AI!
💡 InterSystems Ideas News #21 and #22
🏌 Code Golf - Maximum Coverage
👨💻 Early Access Program: OAuth2 improvements
📝 Try the new AskMe learning chatbot!
📝 InterSystems IRIS Development Professional Exam is now LIVE!
📝 InterSystems Platforms Update Q2-2025
📝 June 10, 2025 – Advisory: Namespace Switching and Global Display Failures
📝 InterSystems announces InterSystems IRIS support for Red Hat Enterprise Linux 10
📝 InterSystems Cloud Services - Release Notes - 27 June 2025
📝 Alert: InterSystems IRIS 2024.3 – AIX JSON Parsing Issue & IntegratedML Incompatibilities
Contests & Events
AI Programming Contest
Announcement
Kick-off Webinar
Technology Bonuses
Time to vote
Technological Bonuses Results
Winners
Online Meetup with the Winners
FHIR and Digital Health Interoperability Contest
Announcement
Kick-off Webinar
Technology Bonuses
Time to vote
Technology Bonuses Results
Winners
Online Meetup
Code Your Way to InterSystems READY 2025
Announcement
Winners
InterSystems READY 2025
Registration
Early bird discount for the InterSystems READY 2025
Get READY, get set, get certified!
Hear from Our Community: Why You Should Join READY 2025
Be READY with personalized learning
InterSystems Ready 2025 sessions to sink your teeth into
Look what’s coming to the Tech Exchange @ InterSystems READY 2025
Meet the Winners of the AI Programming Contest at InterSystems READY 2025 @ Tech Exchange!
Stream / watch keynotes from the InterSystems Ready 2025 online
First half of the InterSystems Ready 2025
Second half of the InterSystems Ready 2025
The last day of the InterSystems Ready 2025
Did You Do It All at InterSystems READY 2025? Check Your Bingo!
📰 Fourth Spanish Technical Article Contest
🤝 Developer Meetup in Cambridge - GenAI & AI Agents
🤝 Cambridge Developer Meetup - AI Coding Assistants & MCP
🤝 FHIR France Meetup #13
📺 [Webinar] SQL Cloud Services
📺 [Webinar] Unlocking the Power of InterSystems Data Fabric Studio
📺 [Hebrew Webinar] Discover the All-New UI in Version 2025.1 — and More!
Latest Releases
⬇️ InterSystems API Manager (IAM) 3.10 Release Announcement
⬇️ IKO 3.8 Release
⬇️ New Point Release for IRIS 2025.1.0: Critical Interoperability Fix
⬇️ Point Releases Available to Address Namespace Switching and Global Display Issues in Recent 2025.1.0, 2024.1.4, 2023.1.6, and 2022.1.7 Versions
⬇️ Maintenance Releases 2024.1.4 and 2023.1.6 of InterSystems IRIS, IRIS for Health, & HealthShare HealthConnect are now available
Best Practices & Key Questions
🔥 Best practices
What more can be done with lists in SQL (%DLIST, %INLIST, FOR SOME)
Creating Unit Tests in ObjectScript for HL7 pipelines using %UnitTest class
Adding OpenAI to Interoperability Production
InterSystems IRIS® CloudSQL Metrics to Google Cloud Monitoring
How to send messages to Microsoft Teams
Connecting to Cloud SQL with DBeaver using SSL/TLS
Kinds of properties in IRIS
❓ Key Questions: April, May, June
People and Companies to Know About
👩🏫 Celebrating a Lifelong Contributor of the Developer Community
💼 CACHÉ #Job opportunity
💼 InterSystems HealthShare developer interoperability Developer/Lead
💼 IRIS Data Platform Engineer
👨💻 InterSystems developer Job
So...
Here is our take on the most interesting and important things!
What were your highlights from this past quarter? Share them in the comments section and let's remember the fun we've had!
Announcement
Dwain Bowline · Jul 14
Seeking an experienced troubleshooter to assist with the conversion of a MUMPS DTM to InterSystems IRIS Database. The ideal candidate will have a strong background in database conversion processes within IRIS and expert knowledge of MUMPS DTM Routines and Globals. Your primary responsibility will be to troubleshoot and resolve issues that arise with the IRIS Database and the refactoring of MUMPS routines. If you have experience converting MUMPS DTM and are InterSystems Certified with a problem-solving mindset, we would like to collaborate with you. Contract position for US based residents send email of interest to Medica@outlook.com
Announcement
Evgeny Shvarov · Jul 14
Here are the technology bonuses for the InterSystems Developer Tools Contest 2025 that will give you extra points in the voting:
IRIS Vector Search usage -3
Embedded Python usage -3
InterSystems Interoperability - 3
InterSystems IRIS BI - 3
VSCode Plugin - 3
FHIR Tools - 3
Docker container usage -2
ZPM Package Deployment - 2
Implement InterSystems Community Idea - 4
Find a bug in Embedded Python - 2
Article on Developer Community - 2
The second article on Developer Community - 1
Video on YouTube - 3
First Time Contribution - 3
See the details below.
IRIS Vector Search - 3 points
Starting from 2024.1 release InterSystems IRIS contains a new technology vector search that allows to build vectors over InterSystems IRIS data and perform search of already indexed vectors. Use it in your solution and collect 3 bonus points. Here is the demo project that leverages it.
Embedded Python - 3 points
Use Embedded Python in your application and collect 3 extra points. You'll need at least InterSystems IRIS 2021.2 for it.
InterSystems Interoperability - 3 points
Make a tool to enhance developer experience or to maintain or monitor or use the InterSystems Interoperability engine.Inteoperability tool example. Interoperability adapter example. Basic Interoperability template. Python Interoperability template.
InterSystems IRIS BI - 3 points
Develop a tool that improves the developer experience or uses InterSystems IRIS BI feature of IRIS Platform. Examples: DeepSeeWeb, IRIS BI Utils, AnalyzeThis. IRIS BI Analytics template.
VSCode Plugin - 3 points
Develop a plugin to Visual Studio Code editor that will help developers to develop with InterSystems IRIS. Examples: VSCode ObjectScript, CommentToObjectScript, OEX-VSCode-snippets-Example, irislab, vscode-snippets-template and more.
FHIR Tools - 3 points
Develop a tool that helps to develop and maintain FHIR applications in InterSystems IRIS or help with FHIR enablement tools, such as FHIR SQL Builder, FHIR Object Model, and InterSystems FHIR Server. Here is a basic InterSystems FHIR template and examples of FHIR-related tools.
Docker container usage - 2 points
The application gets a 'Docker container' bonus if it uses InterSystems IRIS running in a docker container. Here is the simplest template to start from.
ZPM Package deployment - 2 points
You can collect the bonus if you build and publish the ZPM(ObjectScript Package Manager) package for your Full-Stack application so it could be deployed with:
zpm "install your-multi-model-solution"
command on IRIS with ZPM client installed.
ZPM client. Documentation.
Implement Community Opportunity Idea - 4 points
Implement any related to developer tools idea from the InterSystems Community Ideas portal which has the "Community Opportunity" status. Only ideas created before the contest is announced will be accepted. This will give you 4 additional bonus points.
Find a bug in Embedded Python - 2 pointsWe want the broader adoption of InterSystems Embedded python, so we encourage you to report the bugs you will face during the development of your python application with IRIS in order to fix it. Please submit the bug here in a form of issue and how to reproduce it. You can collect 2 bonus points for the first reproducible bug.
Article on Developer Community - 2 points
Write a brand new article on Developer Community that describes the features of your project and how to work with it. The minimum article length is 1000 characters. Collect 2 points for the article. *This bonus is subject to the discretion of the experts whose decision is final.
The Second article on Developer Community - 1 point
You can collect one more bonus point for the second article or the translation of the first article. The second article should go into detail about a feature of your project. The 3rd and more articles will not bring more points, but the attention will be all yours. *This bonus is subject to the discretion of the experts whose decision is final.
Video on YouTube - 3 points
Make the Youtube video that demonstrates your product in action and collect 3 bonus points per each. Examples.
First-Time Contribution - 3 points
Collect 3 bonus points if you participate in InterSystems Open Exchange contests for the first time!
The list of bonuses is subject to change. Stay tuned!
Good luck with the competition! The Java language is very important for IRIS, many native features of IRIS use Java libraries, like the XML engine, but only Python Embedded has bonus (+3) and Java don't have any bonus! I suggest create a bonus for Java also. And I'm using NodeJS, and the official driver has so many issues, quite critical to make it somewhat useful, but only bugs in Embedded Python are worth extra points. Does not look fair.
NodeJS support requires a lot of attention, too, not only Python I agree with you