Clear filter
Announcement
Anastasia Dyubaylo · Feb 14, 2023
Hi Community,
Let's meet together at the online meetup with the winners of the InterSystems Developer Tools Contest – a great opportunity to have a discussion with the InterSystems Experts team as well as our contestants.
Winners' demo included!
Date & Time: Thursday, February 16, 5 PM GMT | 12 PM EST
Join us to learn more about winners' applications and to have a talk with our experts.
➡️ REGISTER TODAY
See you all at our virtual meetup!
Announcement
Anastasia Dyubaylo · Jul 13, 2023
Hi Community!
🎆 We're stoked to share the fantastic news with you! Our ❤️🔥 InterSystems Developer Hub ❤️🔥 is up and running and ready to welcome its users!
There's loads of helpful info there:
InterSystems tutorials
Explanations on how to use different tools
Info about contests
much more
And in general most of what you may need to start working with InterSystems technologies!
Check it out!
As usual, all your input is very welcome in the comments. Tell us what you think ;) very nice hotsite nice landing page! InterSystems Developer Hub - best place for developers!) Cool!
Announcement
Anastasia Dyubaylo · Mar 24, 2023
Hey Developers,
We'd like to invite you to join our next contest dedicated to creating AI/ML solutions that use Cloud SQL to work with data:
🏆 InterSystems IRIS Cloud SQL and IntegratedML Contest 🏆
Duration: April 3 - April 23, 2023
Prize pool: $13,500
The topic
💡 InterSystems IRIS Cloud SQL with IntegratedML Contest 💡
In this contest, we expect to see applications full-stack, frontend, or backend applications that make use of InterSystems IRIS Cloud SQL to work with data and optionally will utilize its IntegratedML option to create AI/ML solutions. Your application could be a library, package, tool, or any SQL or/and AI/ML solution which uses InterSystems IRIS Cloud SQL on a backend.
Basically, we invite you to use InterSystems IRIS in this contest as a 100% SQL engine with an AutoML option via IntegratedML offering.
Here you can deploy InterSystems IRIS Cloud SQL.
Here you can get information on InterSystems IRIS Cloud SQL product along with the IntegratedML feature.
General Requirements:
Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our experts will review all applications before approving them for the contest.
The application should use InterSystems IRIS Cloud SQL instance as a backend. Deploy it here.
Types of applications that match: - anything. Any business solution, technology example, backend, frontend or full-stack application.
The application should be an Open Source and published on GitHub.
The README file to the application should be in English, contain the installation steps, and contain either the video demo or/and a description of how the application works.
One developer can enter the competition with a maximum of 3 applications.
Prizes
1. Experts Nomination - a specially selected jury will determine the winners:
🥇 1st place - $5,000
🥈 2nd place - $3,000
🥉 3rd place - $1,500
🏅 4th place - $750
🏅 5th place - $500
🌟 6-10th places - $100
2. Community winners - an application that will receive the most votes in total:
🥇 1st place - $1000
🥈 2nd place - $750
🥉 3rd place - $500
If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners.
Important Deadlines:
🛠 Application development and registration phase:
April 3, 2023 (00:00 EST): Contest begins.
April 16, 2023 (23:59 EST): Deadline for submissions.
✅ Voting period:
April 17, 2023 (00:00 EST): Voting begins.
April 23, 2023 (23:59 EST): Voting ends.
Note: Developers can improve their apps throughout the entire registration and voting period.
Who can participate?
Any Developer Community member, except for InterSystems employees. Create an account!
👥 Developers can team up to create a collaborative application. Allowed from 2 to 5 developers in one team.
Do not forget to highlight your team members in the README of your application – DC user profiles.
Helpful resources
✓ Documentation:
InterSystems IRIS Cloud SQL
InterSystems IRIS Cloud IntegratedML
✓ Tools:
irissqlcli - python SQL terminal for InterSystems IRIS
Connect to IRIS Cloud SQL:
irissqlcli -h your-iris-cloud-sql-server -p 1972 -u SQLAdmin -n USER -W
Connect to IRIS Cloud SQL via SSL:
irissqlcli -h your-iris-cloud-sql-server -p 1972 -u SQLAdmin -c certificateSQLaaS.pem -n USER -W
DBeaver - SQL-driven database tool. DBeaver and IRIS.
Using docker container with iris-sql locally for development purposeses:
Start IRIS in docker container locally:
docker run --rm --name iris-sql -d -p 9091:1972 -p 9092:52773 -e IRIS_PASSWORD=demo -e IRIS_USERNAME=demo intersystemsdc/iris-community
And connect via irissqlcli:
irissqlcli iris://demo:demo@localhost:9091/USER
You can connect also via other SQL tools.
✓ Example applications:
iris-cloud-sql-demo
✓ Online Learning Material:
Connect to InterSystems IRIS Cloud SQL via Python, C++, Java, .NET.
✓ How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
Need Help?
Join the contest channel on InterSystems' Discord server or talk with us in the comment to this post.
We can't wait to see your projects! Good luck 👍
By participating in this contest, you agree to the competition terms laid out here. Please read them carefully before proceeding.
NB Dear contestants, please take into consideration that support for the contest cloud sql environment is only available during business hours M-F 9-5 US Eastern Time. We seem to be experiencing a failure of the cloud environment such that deployments are stuck in Pending status for some users.
Yay!
This time you can develop the solution for the contest in ANY language that understands SQL!
Python, java, .NET, js, C++, Rust, Go, ObjectScript - anything!
Looking forward! Looking forward to this one! ;-) Have a look at some of my projects which can help with this contest
irissqlcli - REPL for IRIS SQL
sqlalchemy-iris dialect for SQLAlchemy, can be used with Pandas, Flask or FastAPI
django-iris driver for Django
dbt-iris adapter for dbt
Give it a try and let me know if you have any issues with them, I can help to solve  Hi, Developers!
The cloud portal of InterSystems IRIS Cloud SQL is now available!
Feel free to launch deployments and prepare to the contest!
Example of using SQLAlchemy+Pandas, works with this Cloud SQL as well
from sqlalchemy import create_engine
import pandas as pd
server = '<your-server-hostname>'
port = 1972
namespace = 'USER'
username = 'SQLAdmin'
password = '<YOUR_PASSWORD>'
url = f"iris://{username}:{password}@{server}:{port}/{namespace}"
print(url)
engine = create_engine(url)
df = pd.DataFrame({
'int': [1, 2, 3, 4, 5],
'float': [1.1, 2.2, 3.3, 4.4, 5.5],
'string': ['a', 'b', 'c', 'd', 'e'],
'datetime': pd.date_range('20130101', periods=5),
'bool': [True, False, True, False, True]
})
# create a table in IRIS
df.to_sql('iris_table', engine, if_exists='replace', schema='sqlalchemy')
# read the table back from IRIS
df2 = pd.read_sql_table('iris_table', engine, schema='sqlalchemy')
# print the dataframe
print(df2)
Added a small cheat sheet for IRIS SQL Hey Devs!
The recording of the "[Kick-off Webinar] InterSystems IRIS Cloud SQL and IntegratedML Contest" is on InterSystems Developers YouTube!
I tried to create an account on https://portal.sql-contest.isccloud.io/account/login
Just the welcome mail never arrived.the page proposed to contact admin in this case
Note: If you do not receive an email, it might be that the username or email address entered is not registered for an account. If you are unable to remember the username or email address you used to sign up for an account, please contact your system administrator for assistance.
No further notice. Who is that system admin? Which mail ?Not so impressive ACCOUNT SOLVED: with a new account name. may be a typo in the e-mailTHOUGH OPEN: where is the admin contact Thanks, Robert -- we will look into that and see what the problem is. Granted, it is Easter Sunday so my apologies that our team will likely get to it at some point tomorrow
Note: Our InterSystems IRIS Cloud SQL service is not yet publicly available, and we hope this contest uncovers bugs -- so we encourage all the participants in the contest to let us know when they see anything that doesn't match their expectations, no matter how trivial!
Good luck hacking! Often we need to clean-up IRIS and start from a clear page with empty database. Docker containers could be an ideal option for that.
Start IRIS in docker container locally:
docker run --rm --name iris-sql -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community -a "iris session iris -U%SYS '##class(Security.Users).UnExpireUserPasswords(\"*\")'"
And connect via irissqlcli:
irissqlcli iris://_SYSTEM:SYS@localhost:9091/USER
You can connect also via other SQL tools.
Use the approach only for development purposes.
other SQL tools.
confirmed: I used ODBC + SQLGateway for access and operation from local IRISworks perfectly. There are already many useful suggestions and tools on display here... amazing community! Thank you!
There was a new release of intersystemsdc vanilla images.
Now you can use ENV variables to start IRIS with user, pass and namespace created.
E.g. here is how to start:
docker run --rm --name iris-sql -d -p 9091:1972 -p 9092:52773 -e IRIS_PASSWORD=demo -e IRIS_USERNAME=demo intersystemsdc/iris-community
Here is how to connect via irissqlcli:
irissqlcli iris://demo:demo@localhost:9091/USER
Hey, Devs!
There are three articles have been added to the contest!
IntegratedML-IRIS-Cloud-Height-prediction by @珊珊.喻audit-consolidator by @Oliver.Wilms Tokenizator by @Yuri.Gomes
Developers today is the last day for submissions!Don't miss your chance to join! I try to test contributions to the contestbut IRIS Cloud SQL just shows Deployment Pendingfor HOURS !!And no contact or mail to report this breakdownIt is really disappointing!
I see that it's a known situation, they even added a NB in the post:
NB Dear contestants, please take into consideration that support for the contest cloud sql environment is only available during business hours M-F 9-5 US Eastern Time. We seem to be experiencing a failure of the cloud environment such that deployments are stuck in Pending status for some users.
Article
Anastasia Dyubaylo · Apr 14, 2023
Hey Community!
There are occasions when you really need to get in touch with a member of our Community a.k.a. author of a post or developer of a particular project, to discuss something, catch up, or whatever. And exactly for this reason, we have Direct Messages where you can send a message directly to a specific person or even have a group chat!
Accessing Direct Messages is easy. Just click on the Envelope button near your profile picture:
And you will get lots of options:
First of all, you can see all the messages you've received in the Inbox section, all the unread messages in the Unread, and all the bookmarked - you guessed it - in Bookmarks. Also, via this left menu you can set the settings for direct messages using the Settings section:
Getting back to the Inbox section, if you select one or several (or Select all) messages you can Delete, Mark as unread / read, or Add to bookmarks the whole batch. And if you add a message to bookmarks you will be able to quickly find it in the Bookmarks section.
Another way to add a message to bookmarks is to hover your mouse over it and click the star that appears near the date:
Messages that are in bookmarks will have a green star in this line.
There are a few more ways to quickly send a DM to a Community member:
go to the profile of the member you want to contact
you can also quickly start a private discussion from the post page on a specific topic described in the post – the post title will automatically pull up as the subject of the DM
This is it, easy-peasy. Happy messaging!
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.