Clear filter
Announcement
Anastasia Dyubaylo · Oct 27, 2023
Hey Developers,
We are super excited to invite you all to the new InterSystems online programming contest focused on Java and its derivatives!
🏆 InterSystems Java Programming Contest 🏆
Duration: November 13 - December 3, 2023
Prize pool: $14,000
The topic
We invite you to use Java in a new programming contest! Applications that use Kotlin, Clojure and Scala are also very welcome.
Submit an open-source application that uses Java, Kotlin, Clojure or Scala with InterSystems IRIS or InterSystems IRIS for Health.
General Requirements:
An application or library must be fully functional. It should not be an import or a direct interface for an already existing library in another language (except for C++, there you really need to do a lot of work to create an interface for Iris). It should not be a copy-paste of an existing application or library.
Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest.
The application should work either on IRIS Community Edition or IRIS for Health Community Edition. Both could be downloaded as host (Mac, Windows) versions from Evaluation site, or can be used in a form of containers pulled from InterSystems Container Registry or Community Containers: intersystemsdc/iris-community:latest or intersystemsdc/irishealth-community:latest .
The application should be 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.
Only 3 submissions from one developer are allowed.
NB. Our experts will have the final say in whether the application is approved for the contest or not based on the criteria of complexity and usefulness. Their decision is final and not subject to appeal.
Prizes
1. Experts Nomination - a specially selected jury will determine 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 - applications that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $750
🥉 3rd place - $500
🏅 4th place - $300
🏅 5th place - $200
If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners.
Who can participate?
Any Developer Community member, except for InterSystems employees (ISC contractors allowed). 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.
Important Deadlines:
🛠 Application development and registration phase:
November 13, 2023 (00:00 EST): Contest begins.
November 26, 2023 (23:59 EST): Deadline for submissions.
✅ Voting period:
November 27, 2023 (00:00 EST): Voting begins.
December 3, 2023 (23:59 EST): Voting ends.
Note: Developers can improve their apps throughout the entire registration and voting period.
Helpful resources
1. Developing Java Applications with InterSystems IRIS:
InterSystems Java Connectivity Options
Learning Path Connecting Java Applications to InterSystems Products
JDBC Driver Documentation
XEP Java Documentation
Native API for Java Documentation
iris JDBC driver distribution
2. For beginners with ObjectScript Package Manager (IPM):
How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
Package First Development Approach with InterSystems IRIS and ZPM
3. How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
4. Example applications:
native-api template
workshop-pex
fhir-client-java
pex-demo
iris-hibernate
iris-liquibase
5. Videos:
Using Java to Connect to InterSystems
Connecting to InterSystems Cloud Services with Java
What is PEX?
InterSystems Connectivity with Java and other languages
Deploying Java project + InterSystems IRIS in Docker
Need Help?
Join the contest channel on InterSystems' Discord server or talk with us in the comment to this post.
We're waiting for YOUR project – join our coding marathon to win!
By participating in this contest, you agree to the competition terms laid out here. Please read them carefully before proceeding. Hey developers, don't miss the demo on Deploying Java project + InterSystems IRIS in Docker on Tuesday, October 31. Register for this roundtable here. Is Closure a spelling mistake? Do you mean Clojure (https://clojure.org/) instead? Hi Jani! Clojure, of course, thanks!
native-api template was broken since May
I have fixed it for the contest with this Pull Request
Build for Java is ok
CLASSPATH is adjusted to the changed location in IRIS install
Python is also available
Node.js has some version and resource issues. It is out-commented now
.NET is also somehow sick and breaks build. Also out-commented The rest builds and starts ok.
PR is merged OK Dear Developers!
Please use technology bonuses to collect more votes and get closer to winning the main prize. 🥳
Happy coding!✌ Hi All,
The recording of the kick-off webinar for the Java Programming Contest 2023 is already available 🔥
Check it out! Hey, Devs!
There are four applications have already been added to the contest!
native-api-command-line-java by @Robert.Cemper1003 JIRISReport by @Yuri.Gomes iris-extlanguage-openpdf by @Nicki.Vallentgoedjava-global-editor by @Robert.Cemper1003
Upload your apps and join the contest! Developers!
Only one week left for registration! Two more applications have been added to the contest!
iris-parquet by @Yuri.Gomesquiz-app by @Andrii.Mishchenko Hi, Community!
One more application has been added to the contest!
presto-iris by @Dmitry.Maslennikov
Only 2 days left to register for the contest!
Hurry up to upload your application! https://iris-dmn.demo.community.intersystems.com/dmn/index.html#
^ I made an online demo, you can test it
Announcement
Eduard Lebedyuk · Aug 31, 2021
We invite you to the webinar "InterSystems Reports", on Tuesday, September 7th, at 10:00 (Moscow time). The language of the webinar is Russian.
InterSystems Reports, a part of InterSystems IRIS and InterSystems IRIS for Health, is a robust, modern report generation and publishing solution that includes:
Report Designer - a tool for report developers to create and preview reports.
Report Server, which gives users access to run, schedule, filter, and modify reports.
In this webinar, we'll cover all the steps of working with the InterSystems Reports, including:
Connecting InterSystems IRIS as a data source
Creating reports
Publishing reports
Administration
Registration is required.
Register here.
Announcement
Anastasia Dyubaylo · Dec 13, 2021
Hey Developers,
With the release of InterSystems IRIS 2021.2 Preview and all-new LOAD DATA functionality, we'd like to put it to the test with the new DATASETS contest!
🏆 InterSystems Datasets Contest 🏆
Duration: December 27 - January 16, 2022
In prizes: $9,450
Prizes
1. Experts Nomination - a specially selected jury will determine winners:
🥇 1st place - $4,000
🥈 2nd place - $2,000
🥉 3rd place - $1,000
🌟 4-10th places - $100
2. Community winners - applications that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $500
🥉 3rd place - $250
If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners.
Who can participate?
Any Developer Community member, except for InterSystems employees (ISC contractors allowed). 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.
Contest Period
🛠 December 27 - January 9: Application development and registration phase.
✅ January 10 - 16: Voting period.
Note: Developers can improve their apps throughout the entire registration and voting period.
The topic
One of the most discussed problems with our previous programming contests is the lack of datasets. Every time you have a project idea about a particular subject area or industry, you need a related dataset, and part of the work with the contest is to find/prepare/load the dataset.
That’s why we decided to have a dataset contest! Let’s bring several helpful datasets to the InterSystems Community!
What are we looking for?
Present a repository that will load a dataset into the InterSystems IRIS namespace.
This could be done ideally with a ZPM package, and the data can be inside the package, or the package can have a method that loads data from the URL into the IRIS instance. Anyways your project, once installed, should bring a class (classes) and its data for it that are related to a particular topic, subject area, idea, industry, name it.
The project should suggest how to use data - SQL query, REST API, or both.
Visualization of the data is a plus. Both visualization and API (if any) can be delivered with another project, but it’s not mandatory.
We don’t limit you in the ways, how the data can be stored in the repository. E.g., this could be:
Export of the global(-s) (preferably in XML than in GOF format).
An SQL script that creates data
An ObjectScript (or java, js, python, name it) that generates data in IRIS
Integration with external Data API
Here are the project examples, that deliver the thing:
Dataset-titanic,
Dataset-countries,
Posts and tags,
Synthea
Requirements:
Class naming convention. Start the class names with: dc.data.your_name.class. E.g. if there is a dataset on trading data the class names could be: dc.data.finance.transaction, dc.data.finance.instrument.
The reference to the source of data. If you take the dataset from somewhere on the Internet and adapt it to InterSystems IRIS format, please provide the link to the source. If this is your data, please provide the license of the usage.
The ZPM package should start with a“dataset-” name, e.g., dataset-countries, dataset-titanic.
And as usual, we’ll have technical bonuses for docker, demo, article, zpm, video, etc.
Provide the license to a dataset.
👉 Common license types for datasets (the source)
Spoiler
Common licenses in order of most open to most restrictive:
PUBLIC DOMAIN MARK - PUBLIC DOMAIN
Dedicate your dataset to the public domain: This isn’t technically a license since you are relinquishing all your rights in your dataset by choosing to dedicate your dataset to the public domain. To donate your work to the public domain, you can select “public domain” from the license menu when creating your dataset.
OPEN DATA COMMONS PUBLIC DOMAIN DEDICATION AND LICENSE - PDDL
This license is one of the Open Data Commons licenses and is like a public domain dedication. It allows you, as a dataset owner, to use a license mechanism to surrender your rights in a dataset when you might not otherwise be able to dedicate your dataset to the public domain under applicable law.
CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL CC-BY
This license is one of the open Creative Commons licenses and allows users to share and adapt your dataset so long as they give credit to you.
COMMUNITY DATA LICENSE AGREEMENT – CDLA PERMISSIVE-2.0
This Community Data License Agreement is similar to permissive open source licenses such as the MIT license. It allows users to use, modify and adapt your dataset and the data within it, and to share it. The CDLA-Permissive-2.0 terms explicitly do not impose any obligations or restrictions on results obtained from users’ computational use of the data. The 2.0 version is significantly shorter, uses plain language to express the grant of permissions and requirements. The only obligation is to "make available the text of this agreement with the shared Data," including the disclaimer of warranties and liability.
OPEN DATA COMMONS ATTRIBUTION LICENSE - ODC-BY
This license is one of the Open Data Commons licenses and allows users to share and adapt your dataset so long as they give credit to you.
CREATIVE COMMONS ATTRIBUTION-SHAREALIKE 4.0 INTERNATIONAL - CC-BY-SA
This license is one of the open Creative Commons licenses and allows users to share and adapt your dataset so long as they give credit to you and distribute any additions, transformations or changes to your dataset under this license. We consider this license (a.k.a a viral license) problematic since others may decide not to work with your CC-BY-SA licensed dataset if there is risk that by doing so their work on your dataset will need to be shared under this license when they would rather use another license.
COMMUNITY DATA LICENSE AGREEMENT – CDLA-SHARING-1.0
This license is one of the Community Data License Agreement licenses and was designed to embody the principles of "copyleft" in a data license. It allows users to use, modify and adapt your dataset and the data within it, and to share the dataset and data with their changes so long as they do so under the CDLA-Sharing and give credit to you. The CDLA-Sharing terms explicitly do not impose any obligations or restrictions on results obtained from users’ computational use of the data.
OPEN DATA COMMONS OPEN DATABASE LICENSE - ODC-ODBL
This license is one of the Open Data Commons licenses and allows users to share and adapt your dataset so long as they give credit to you and distribute any additions, transformation or changes to your dataset under this license. We consider this license (a.k.a a viral license) problematic since others may decide not to work with your ODC-ODbL licensed dataset if there is risk that by doing so their work on your dataset will need to be shared under this license when they would rather use another license.
CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL 4.0 INTERNATIONAL - CC BY-NC
This license is one of the more restrictive Creative Commons licenses. Users can share and adapt your dataset if they give credit to you and do not use your dataset for any commercial purposes.
CREATIVE COMMONS ATTRIBUTION-NODERIVATIVES 4.0 INTERNATIONAL - CC BY-ND
This license is one of the more restrictive Creative Commons licenses. Users can share your dataset if they give credit to you, but they cannot make any additions, transformations or changes to your dataset under this license.
CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL-SHAREALIKE 4.0 INTERNATIONAL - CC BY-NC-SA
This license is one of the most restrictive Creative Commons licenses. Users can share your dataset only if they (1) give credit to you, (2) do not use your dataset for any commercial purposes, and (3) distribute any additions, transformations or changes to your dataset under this license. We consider this license a viral license since users will need to share their work on your dataset under this same license and any users of the adapted dataset would likewise need to share their work on the adapted dataset under this license and so on for any other changes to those modified datasets.
CREATIVE COMMONS ATTRIBUTION-NONCOMMERCIAL-NODERIVATIVES 4.0 INTERNATIONAL - CC BY-NC-ND
This license is one of the most restrictive Creative Commons licenses. Users can share only your unmodified dataset if they give credit to you and do not share it for commercial purposes. Users cannot make any additions, transformations or changes to your dataset under this license.
ADDITIONAL LICENSE COVERAGE OPTIONS
If a license is not listed in the data.world menu options, you may select Other and specify the details in the summary of your dataset.
NO LICENSE SPECIFIED
No one can use, share, distribute, re-post, add to, transform or change your dataset if you have not specified a license.
These descriptions are only summaries of these licenses. For the actual text of the licenses, which we strongly encourage you to read, click on the links provided.
Summary of common license types:
PUBLIC DOMAIN
The work has been dedicated to the public domain by waiving all rights to the work worldwide under copyright law, including all related and neighboring rights, to the extent allowed by law.
ATTRIBUTION
You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
SHARE-ALIKE
If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
NON-COMMERCIAL
You may not use the material for commercial purposes.
DATABASE ONLY
License applies to the database only and not its contents or data.
NO DERIVATIVES
No Derivative Works. You may not alter, transform, or build upon this work.
All licenses that begin with CC-BY in the table above refer to version 4.0 of those licenses.
General Requirements:
Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest.
The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition.
The application should be 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.
Helpful resources
1. For beginners with InterSystems IRIS:
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners
2. For beginners with ObjectScript Package Manager (ZPM):
How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
Package First Development Approach with InterSystems IRIS and ZPM
3. How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
4. And more:
InterSystems IRIS 2021.2 Preview
LOAD DATA
Judgment
Voting rules will be announced soon. Stay tuned!
So!
We're waiting for YOUR project – join our coding marathon to win!
❗️ Please check out the Official Contest Terms here.❗️ It would be great to see a solution that made it easy to get data from open government systems using popular APIs such as Socrata and CKAN. For example, Cambridge, MA uses Socrata. And the US Government uses CKAN. Another interesting area is ingesting Synthea data directly into IRIS! Thanks for sharing, Raj! That's a great competition. I look forward to It. Here are two examples using Synthea:
https://github.com/intersystems-community/irisdemo-base-synthea
https://github.com/grongierisc/synthea-fhir-iris
And two example repositories using LOAD DATA (but not yet ZPM-enabled):
https://github.com/bdeboe/isc-tpch-script
https://github.com/bdeboe/isc-adventureworks (using the DWH flavour of this well-known dataset only)
Developers!
Only 2 days left and the InterSystems Datasets Contest begins!Get ready to upload your applications!
Happy weekends!😊 The InterSystems Datasets Contest is only started and we already have the first competitor in the game!
Medical Dataset by @Muhammad.Waseem Check it out!
Upload your applications, we are waiting for your solutions!
A new competitor is in the game with 2 great applications!
Dataset OEX reviews by @Robert.Cemper1003 Dataset Lightweight M:N by @Robert.Cemper1003
Check them out!And don't forget to join a new InterSystems Datasets Contest 🏆 Developers!
Happy new year and merry Xmas!
Have a great weekends, and happynes to everyone! Wow! One more application on the Contest board:
openflights_dataset by @Andreas.Schneider
We're also waiting for other participants and their cool apps!
Happy weekends! Another application is in the competition!
iris-kaggle-socrata-generator by @Henrique
Who is gonna be next? We are waiting for you! Community!
Only 4 days left to register your application! Upload your app and join the competition!
And we have 2 more new apps by developers in the InterSystems Datasets Contest!
dataset-covid19-fake-news by @henry Health Dataset by @Yuri.Gomes
Developers!One more application on the Contest board:
exchange-rate-cbrf by @MikhailenkoSergey
Hurry up to upload your solutions! 😎
Hey Devs!
The registration period is will be over on Monday!So don't forget to use Technology Bonuses to get extra points in the voting!
And by the way, we have another application in the game:iris-python-faker by @Dmitry.Maslennikov
We are waiting for your solutions, join the InterSystems Datasets Contest !Happy weekends😊
Announcement
Anastasia Dyubaylo · Mar 10, 2022
Hey Community,
Ready for the next contest? We are glad to invite you all to the 19th InterSystems online programming competition:
🏆 InterSystems Globals Contest 🏆
Duration: March 21 - April 10, 2022
In prizes: $10,000
The topic
Globals or direct data access - is the heart of InterSystems IRIS persistence engine. All the IRIS data that could be accessed via SQL, REST-API, ObjectScript, DocDB, or Native API is stored in globals.
Globals engine is responsible for the performance, reliability, and scalability of InterSystems IRIS.
In this contest, we invite everyone to contribute open source applications that will use InterSystems IRIS globals to read, store and change the data. We invite you to use the power of globals to leverage the performance of data ingestion and reading along with the flexibility of storage schema that lets to introduce arbitrary data model implementations.
General Requirements:
Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest.
The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition.
The application should be 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.
Contest Prizes:
1. Experts Nomination – winners will be selected by the team of InterSystems experts:
🥇 1st place - $4,000
🥈 2nd place - $2,000
🥉 3rd place - $1,000
🌟 4-15th places - $100
2. Community winners – applications that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $750
🥉 3rd place - $500
✨ Global Masters badges for all winners included!
Note: 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:
March 21st, 2022 (00:00 EST): Contest begins.
April 3, 2022 (23:59 EST): Deadline for submissions.
✅ Voting period:
April 4, 2022 (00:00 EST): Voting begins.
April 10, 2022 (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 (ISC contractors allowed). 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:
Globals are sparse multidimensional arrays that could be stored and managed within the IRIS database. You can deal with Globals using ObjectScript and Native API.
✓ Example applications:
GlobalToJSON-embeddedPython
errors-global-analytics
✓ Documentation:
Globals
Using Globals
Using Multidimensional Storage (Globals)
Managing globals in management portal
✓ Articles + video:
Globals are Magic Swords for managing data
The art of mapping Globals to Classes
Globals QuickStart
✓ For beginners with IRIS:
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners
✓ For beginners with ObjectScript Package Manager (ZPM):
How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
Package First Development Approach with InterSystems IRIS and ZPM
✓ 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. Developers!
Only 5 days left for the start of the InterSystems Globals Contest!The Kick-off Webinar will be announced soon.
Stay tuned! We are looking for the implementations of different data models with globals as a persistence engine. Technically everyone can implement their own graph, temporal, columnar, document, or any other type of a persistence engine implementing the API via Embedded Python, ObjectScript, or through Native API libs of node.js, java, python, or dotnet.
Also, we are looking for smart data index implementations, such as spatial index, functional indexes for search, etc.
There will be technical bonuses of such. Stay tuned and join our Monday's kick-off for more details. Developers!
Don't miss the upcoming InterSystems Globals Contest Kick-off Webinar!
Date & Time: Monday, March 21 – 11:00 AM EDT
Speakers: 🗣 @Daniel Kutac, Senior Sales Engineer🗣 @Joel Solon, Senior Technical Trainer🗣 @Timothy Leavitt, Development Manager 🗣 @Evgeny Shvarov, InterSystems Developer Ecosystem Manager
Tomorrow the registration phase will be started!Upload your solutions, and join the contest! Also interested to see submissions / ideas on handling really BIG globals. DataMove is a powerful feature for moving data from one database to another in a live environment, but it operates at a fairly low level. Adding a layer around it for easy archiving of table data, an interface to keep track of (potentially large numbers of) subscript-level mappings, etc.. would be examples of helpful utilities in the big global space.
FWIW, we have several roadmap items for IRIS in this area, but I won't go into detail on them as it's much more exciting and informative for us to learn about the problems you are seeing and the solutions you'd propose to them :-) Developers!
The first competitor is already in the game! What a great job by @Robert.Cemper1003 🚀
Check out the application: Globals: Embedded Python vs. ObjectScript
Community!
3 more applications have been uploaded by @Robert.Cemper1003
GlobalToJSON-Compact
GlobalToJSON-Efficient
GlobalToJSON-XL-Academic
Go check it out!
For anyone wanting to learn more about globals as a database storage technology, and some information on how to use them to model various kinds of database structures, I've created this repository of documents just for you! Hopefully it will provide some inspiration towards this competition.
https://github.com/robtweed/global_storage
Developers!
2 more new apps are in the competition:
Spreadsheets based on globals by @alex.kosinets
Student score query by @yang.shijie
You still have time till Monday to upload your apps.
Happy weekend!✌ Community!
Today is the last day to upload your application! Join the competition!
So don't miss your chance to participate!
Stay tuned!
Announcement
Anastasia Dyubaylo · Nov 1, 2021
Security wanted!
Welcome to the next InterSystems online programming competition:
🏆 InterSystems Security Contest 🏆
Duration: November 15 - December 05, 2021
Prizes: $9,450 in prizes!
Prizes
1. Experts Nomination - a specially selected jury will determine winners:
🥇 1st place - $4,000
🥈 2nd place - $2,000
🥉 3rd place - $1,000
🌟 4-10th places - $100
2. Community winners - applications that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $500
🥉 3rd place - $250
If several participants score the same amount of votes, they all are considered winners, and the money prize is shared among the winners.
Who can participate?
Any Developer Community member, except for InterSystems employees (ISC contractors allowed). 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.
Contest Period
🛠 November 15 - 28: Application development and registration phase.
✅ November 29 - December 05: Voting period.
Note: Developers can improve their apps throughout the entire registration and voting period.
The topic
In the security contest, we encourage developers to share the solutions that show how to perform security tasks related to InterSystems IRIS and InterSystems IRIS for Health. We invite you to contribute apps that will reveal tasks related to the Authentication, Authorization, Auditing and Encryption parts of the InterSystems Security Model.
Such tasks could be:
OAuth/OpenID/SAML/LDAP Authentication implementations.
PKI implementations
Access Management to certain parts of a REST API: application-level security, role/user-level security.
Access Management to data: on a database, table, column, or row-level access.
Access to interoperability components
Access to IRIS BI components: cubes, pivots, dashboards etc.
DevOps questions of authorization (users, roles, resources) and authentication (OAuth) settings.
Developer and support tools related to authentication and authorization.
Your idea!
Requirements:
Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest.
The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition.
The application should be 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.
Helpful resources
1. For beginners with InterSystems IRIS:
Build a Server-Side Application with InterSystems IRIS
Learning Path for beginners
2. For beginners with ObjectScript Package Manager (ZPM):
How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
Package First Development Approach with InterSystems IRIS and ZPM
3. How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
4. Documentation, courses, and videos:
Security Documentation
Course: InterSystems Security Basics
Video: Active Directory Integration with LDAP
Video: Configuring a Web Server for IIS for Better Performance and Security
Video: Webinar: Securing the Management Portal
Video: Advances in Security
Article: Building an FHIR Repository + OAuth2 Authorization Server/Resource Server Configuration on IRIS for Health Part 1
Article: InterSystems IRIS Open Authorization Framework (OAuth 2.0) implementation - part 1
Article: Protect your REST API applying OWASP Top Ten
5. Templates
Secured REST API example
Judgment
Voting rules will be announced soon. Stay tuned!
So!
We're waiting for YOUR project – join our coding marathon to win!
❗️ Please check out the Official Contest Terms here.❗️ My suggestion is an implementation to pseudonymization or anonymization to protect sensitive data to not fall within the scope of the GDPR or LGPD(Brazilian version of GDPR) could fits to the security contest. I planning to do something like that if it fits I like that idea, Henry. Either update real data to fake data or just create fake data for testing. It is a contest about security not about privacy. In the rules, it is necessary use InterSystems Security Model. Yuri, yes, data anonymization and obfuscation is not a part of the InterSystems Security model but it's an interesting topic related to secure IT practicies. And regarding privacy - I think it becomes privacy when you agree or disagree with the consent. So IMHO privacy begins when the solution is implemented which we don't expect to see in the contest :) Henry, it's an interesting topic! If we don't see strong objections and concerns we'll expand the scope of the contest. Consent in the privacy is a legacy resource, because all days we give consent without read the contract and conditions. Now, to reach privacy, you need to use the resource of transparency. When the user know what the data controller did with your data and it is allowed to the data holder manage data sharings, get reports and claim privacy rights using this transparency, you get the real privacy. Gdpr, lgpd is about it. Is not about cypher data or allows a consent opt in, but to give to the holder the power to manage all aspects about your data. So to expand the security contest with privacy, will require to you review all current rules. The risk to see apps using 95% from another technologies and 5% of iris it is real with this expansion. While when you has the requirement to use intersystems security model, we have more chance to see apps with intensive use of iris Encryption is the part of InterSystems security model. I think the data anonymization task is close to data encryption, isn't it?
And privacy regulations can even deal with anonymized and unencrypted data. If @henry removes GDPR or LGPD terms from the question (which are the potential implementation goals), will the case work as a security topic?
So our contest is not about privacy. But we can include encryption and data obfuscation/anonymization. IRIS has encryptation already, but not anonymization. Is a valid security topic. Thank you @Yuri.Gomes and @Evgeny.Shvarov for all enlightenment. I will follow the advice to remove GDPR and LGPD from the implementation goal and will focus on anonymization data, if it's included on scope. Hey Developers!
Are you started creating your solutions? We are waiting to see them!
Don't forget, that the new InterSystems Security Contest is starting on Monday!
So, good luck to everybody!
Added an example of REST API with basic authentication and users deployed and an example of roles authorization implemented. We expanded the topic for Auditing and Encryption too. So, @henry, your idea meets the contest requirements - please apply for the contest!
@Yuri.Gomes, thanks for your attention and useful comments as always! Hey Devs!
The registration period is finally started! Join our Security Contest!
Here is the landing page: https://contest.intersystems.com/ WOW! Developers!
There are already 2 applications that have been uploaded by @MikhailenkoSergey ! What a speed! ⚡
appmsw-forbid-old-passwdisc-apptools-lockdown
Go check it out!
So, who will be next? Hey Developers,
The recording of the InterSystems Security Contest Kick-off Webinar is available on InterSystems Developers YouTube!
Please welcome:
⏯InterSystems Security Contest Kick-off Webinar
Hey Community!
We are waiting for your participation in the Security Contest!
Here is the landing page: https://contest.intersystems.com/ Hello Developers!
The first week of the registration period has ended, so only one week left!
So, upload your applications and participate! Wow, participants have added new apps!🎉 Let's see them:
passwords-tool by @Dmitry.Maslennikov
API Security Mediator and Audit Mediator by @Yuri.Gomes
iris-disguise by @henry
Developers, only 3 days left till the end of the registration period. Hurry up!
Happy coding) Hi Community!
Only 2 days left before the start of voting.
Hurry up to upload your application! Developers!
Only one day left for registration!
Join us to win! 🚀 Community!
Last call! Today is the last day of registration!
5 more articles gave been added to the competition!
iris-saml-example by @Dmitry.Maslennikov Server Manager 3.0 Preview by @John.Murray appmsw-dbdeploy by @MikhailenkoSergey
Data_APP_Security by @Muhammad.Waseem IRIS Middlewares by @davimassaru.teixeiramuta
Announcement
Christine Tang · Sep 18, 2021
Just wanted to thank InterSystems for sponsoring this year's HACKMIT! You are very welcome, @Christine.Tang! Thank you for your participation! Hey Christiane,
We hope you had a great experience and a lot of fun at HackMIT with us and InterSystems Technologies!
Greetings from InterSystems team at HackMIT 2021:
⭐️ @Anton.Umnikov ⭐️ @sween ⭐️ @Anastasia.Dyubaylo ⭐️ @Jeffrey.Fried ⭐️ @Regilo.Souza ⭐️ @Evgeny.Shvarov ⭐️
Keep in touch 🤗 Hi Christine,
We are impressed with the organization. It's no surprise the success of the event. Every year you raise the bar.
We love the interesting ideas participants had during the weekend and hope at least some will be successful businesses.
Thank you for the chance to be a small part of the event and congratulations on the success.
Announcement
Anastasia Dyubaylo · Jan 26, 2022
Hey Developers,
We are pleased to invite you all to the next InterSystems online programming contest focused on Python!
🏆 InterSystems Python Contest 🏆
Duration: February 7 - 27, 2022
In prizes: $10K - more prizes included!
Prizes
1. Experts Nomination - a specially selected jury will determine winners:
🥇 1st place - $4,000
🥈 2nd place - $2,000
🥉 3rd place - $1,000
🌟 4-15th places - $100
2. Community winners - applications that will receive the most votes in total:
🥇 1st place - $1,000
🥈 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.
Who can participate?
Any Developer Community member, except for InterSystems employees (ISC contractors allowed). 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.
Contest Period
🛠 February 7 - 20: Application development and registration phase.
✅ February 21 - 27: Voting period.
Note: Developers can improve their apps throughout the entire registration and voting period.
The topic
The recent release of InterSystems IRIS 2021.2 brings Embedded Python functionality and also extends PEX to Python. We invite you to use Embedded Python in a new programming contest! Applications that use Native API for Python or PEX for Python are welcomed too.
Submit an open-source application that uses either Embedded Python or Native API for Python or Python PEX for Python with InterSystems IRIS or InterSystems IRIS for Health.
General Requirements:
Accepted applications: new to Open Exchange apps or existing ones, but with a significant improvement. Our team will review all applications before approving them for the contest.
The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition.
The application should be 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.
Helpful resources
1. Developing Python Applications with InterSystems IRIS:
Learning Path Writing Python Application with InterSystems
Embedded Python Documentation
Native API for Python Documentation
PEX Documentation
2. For beginners with ObjectScript Package Manager (ZPM):
How to Build, Test and Publish ZPM Package with REST Application for InterSystems IRIS
Package First Development Approach with InterSystems IRIS and ZPM
3. How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
4. Example applications:
interoperability-python
pex-demo
python-examples
WebSocket
AOC2021
Python Faker
5. Videos:
Introduction to Embedded Python
Embedded Python: Bring the Python Ecosystem to Your ObjectScript App
Embedded Python for ObjectScript Developers: Working with Python and ObjectScript Side-By-Side
Embedded Python with Interoperability
InterSystems IRIS Native Python API in AWS Lambda
Judgment
Voting rules will be announced soon. Stay tuned!
So!
We're waiting for YOUR project – join our coding marathon to win!
❗️ Please check out the Official Contest Terms here.❗️  so exited! hehehe))) ??? OEX Conrests shows: Start on March 7th, 2022.I hope Feb. 7th is correct, ??? Thank you Robert, already changed the date.🙏 Hello Developers!
Don't miss the opportunity to join the InterSystems Python Contest!
Participate, make your solutions and win the prizes! Glad to see this contest and what comes out of it!! I'm waiting the start date to participate with this app: https://openexchange.intersystems.com/package/AI-Image-Object-Detector Community!
A few days left to the start of the InterSystems Python Contest!
Stay tuned and participate! Developers!
Do not miss the upcoming InterSystems Python Contest Kick-off Webinar - tomorrow, February 7 at 12:00 PM EDT! Community!
The registration to the InterSystems Python Contest is finally started!
We are waiting for your participation! Hey, Devs!
We already have 3 participants in the game! 🚀
Check them out:
AI Image Object Detector by @Yuri.Gomes
appmsw-sql2xlsx by @MikhailenkoSergey
GlobalToJSON-embeddedPython by @Robert.Cemper1003
Who is gonna be next?! Another application has been uploaded by @Robert.Cemper1003 ! 🚀
GlobalToJSON-ePython-pure
What a great job! Check it out!
Developers!
Technology bonuses for InterSystems Python Contest have been released!
Don't forget to check them! They will give you extra points in the voting.
Hi Community!
Half of the second week for the registration period is almost over.⌛
We are looking forward to your solutions!👨💻
Whose application will be next?👀
What timezone is the deadline for the 20th ? I am looking at the eleventh hour here if I can pull it off and was wondering if I have until midnight 2/20 EST. Registration Ends – February 20, 2022, 11:59:59 PM EST Registration ends on the right day when Python is 31 !! I've posted two articles attached to OEX Application for the Contest: Comparison of Python&Dashboards | InterSystems Developer Community |and Dash-Python-IRIS | InterSystems Developer Community | Dashboards|EmbeddedHow to get bonus points?
Article
Yuri Marx · Jun 2, 2020
What is the OData
OData (Open Data Protocol) is an ISO/IEC approved, OASIS standard that defines a set of best practices for building and consuming RESTful APIs. OData helps you focus on your business logic while building RESTful APIs without having to worry about the various approaches to define request and response headers, status codes, HTTP methods, URL conventions, media types, payload formats, query options, etc. OData also provides guidance for tracking changes, defining functions/actions for reusable procedures, and sending asynchronous/batch requests (source: OData.org).
The OData use cases
Deploy data as REST Services with an interoperable format without development effort;
Allows BI, data visualization, ERP, CRM, ESB, Workflow tools and engines consume data using REST without development effort;
Virtualize corporate data in API Management tools;
OData advocates a standard way of implementing REST APIs that allows for SQL-like querying capabilities using these RESTful APIs. OData is essentially SQL for the web built n top of standard protocols – HTTP, JSON & ATOM – while leveraging the REST architecture style (progress.com);
OData has a broad adoption, see:
OData helps to implement FHIR: FHIR, or Fast Healthcare Interoperability Resources Specification, is a standard for exchanging healthcare information electronically. In order to make FHIR truly interoperable, it is recommended that systems use the rules specified by OData specification for the $search parameter. Further, FHIR also uses OAuth in order to establish a trusted relationship with the client for an extra layer of security (progress.com);
OData supports pagination, batch requests and different formats like JSON, ATOM, XML, etc.
OData and InterSystems IRIS
The InterSystems IRIS does not support OData but is possible use the OData Server for InterSystems IRIS to allows expose Persistent classes as REST.
Follow these instructions:
Clone the source code of the IRIS OData Server: git clone https://github.com/yurimarx/isc-iris-odata.git
Go to: isc-iris-odata folder
Execute: mvnw install (MS Windows) or ./mvnw install (linux or mac)
Execute: docker build -t odata:1.0.0 .
Execute: docker run -p 8080:8080 odata:1.0.0. Your OData Server started:
Start your InterSystems IRIS instance with any persistent class, in my ca
In your browser access: http://localhost:8080/. Set parameters on the screen:
This is parameters to my instance. Set the parameters to your IRIS instance. In namespace set your iris namespace, in the schema, the SQL Table schema, and in the port, the port to your JDBC database connection.
Press submit and RELOAD YOUR ODATA SERVER DOCKER INSTANCE TO APPLY PARAMETERS.
Access http://localhost:8080/odata.svc/ to see all persistent classes to your IRIS schema. In my case is:
To navigate to a persistent class browse: http://localhost:8080/odata.svc/<Persistent_Class> e.g.: http://localhost:8080/odata.svc/Animal
The OData server list Animal data, see:
To see in JSON format browse: http://localhost:8080/odata.svc/Animal?$format=application/json. See:
To see details about a row browse: http://localhost:8080/odata.svc/Animal(8)?$format=application/json
To delete send a DELETE in your postman with http://localhost:8080/odata.svc/Animal(8)
To insert send a POST in your postman with http://localhost:8080/odata.svc/Animal and a JSON body with property name and value pairs, like:
So you can do all CRUD operations with your persistent classes.
Many other features will be released in the future, if IRIS OData Server get the community adoption.
Thanks!
Fantastic application, Yuri!
For those who is on Mac you also need to change mvnw to executable:
chmod +x mvnw
Announcement
Anastasia Dyubaylo · Jan 29, 2021
Hey Developers,
You asked for it – we did it! Now it's time for all Chinese speaking users of our community!
Finally, we're pleased to announce the official start of the Chinese InterSystems Developer Community!
And let me introduce you @Xuying.Zheng and @Weiwei.Zhu from InterSystems China as managers of the InterSystems Developer Community in Chinese!
Also, a big welcome to the CN Moderators Team: @Peng.Qiao, @Yunfei.Lei, @Louis.Lu, @Hao.Ma, @Lin.Zhu, @Jieliang.Liu, @Li.Yan, @Lu.Wang.
And here are the main points you need to know:
➡️ You can switch between sites using the language menu in the top right corner:
If you know Chinese, it's great that you can contribute articles, make discussions, ask and answer questions about InterSystems Data Platforms now in Chinese too!
Also!
➡️ You can use Language Switcher – the option to switch to the Chinese version of the article.
Also!
➡️ If you published a post in English or any other language, it could be translated by anyone in Chinese and will be helpful for even more people!
Everyone is able now to add or request a translation to any post on the Developer Community. After selecting any language using the Language Switcher, any user can add a link to the translation of the post or request its translation.
➡️ The same thing works for the Chinese Community site – you can translate the Chinese article into English or any other language. Be sure, you know both languages well!
And...
For those who contribute to the Developer Community best each month, including those who post most articles, and those who achieve the most “vote ups”, the InterSystems China team will give out a custom gift. Don't miss your chance to get it – be active! 😉
So,
Don't hesitate to provide your feedback on how to make the Chinese InterSystems Community better.
And welcome to the Chinese InterSystems Developer Community! 🚀 Awesome! Welcome to the community
欢迎
Announcement
Anastasia Dyubaylo · Jul 21, 2020
Hi Developers!
Now it's time for all Japanese speaking users of our community!
We're pleased to announce the official start of the Japanese InterSystems Developer Community!
And let me introduce you @Minoru.Horita and @miniclub from InterSystems Japan as managers of the InterSystems Developer Community in Japanese!
Here are the main points you need to know:
➡️ You can switch between sites using language buttons in the top right corner:
If you know Japanese, it's great that you can contribute articles, make discussions, ask and answer questions about InterSystems Data Platforms now in Japanese too!
Also!
➡️ You can use JP Language Switcher – the option to switch to the Japanese version of the article.
Also!
➡️ If you posted an article in English it could be translated by anyone in Japanese and will be helpful for even more people!
Everyone is able now to add a translation to an article on the Developer Community. If you want to add a translation, request author's permission on the articles page in a Translation tab or if you already have a translation of the post, just provide the URL there:
If the author grants the request, you are able to publish the translation with your name on the Japanese Community site.
If you are an author, you'll receive an email notification of a request from a particular DC member. It's your decision whether to grant it.
If you want to translate your own article, request permission from yourself and grant it.
➡️ The same thing works for the Japanese Community site – you can translate the Japanese article in English. Be sure, you know both languages well!
So!
Don't hesitate to provide your feedback on how to make the Japanese InterSystems Community better!
Welcome to the Japanese InterSystems Developer Community! 🚀
And stay tuned! ようこそ and good luck ようこそ @Minoru.Horita @miniclub 頑張って Warmest welcome!
Thank you for your support!がんばります! みなさん、ありがとう!
We're very excited to be part of this global community. Look forward to talking to you in the Japanese Community ! Hey Developers!
InterSystems Developer Community operates for developers on InterSystems in English, Spanish and Japanese now.
What other languages would you like to read our community in?
➡️ Please share your opinion in the comments to this post or submit a task and vote for it!
Stay tuned! All the best!
Question
Gunwant Kapade · Oct 1, 2020
Hi All,
I hope all are good.
I would like to know that whether InterSystems will support LDAPS or not.
I have idea about LDAP but not about LDAPS.
Please suggest me If anyone has any documents or links.
Thanks and Regards,
Gunwant Hello Gunwant,
How are you intending to use LDAP?
Using LDAP
This documentation covers that you can configure LDAP to use TLS for Caché authentication.
Announcement
Anastasia Dyubaylo · Oct 26, 2020
Hey Developers!
We're pleased to announce the next competition of creating open-source solutions using InterSystems IRIS or IRIS for Health! Please join:
⚡️ InterSystems Interoperability Contest ⚡️
Duration: November 2-22, 2020
Prizes
1. Experts Nomination - winners will be determined by a specially selected jury:
🥇 1st place - $2,000
🥈 2nd place - $1,000
🥉 3rd place - $500
2. Community Nomination - an application that will receive the most votes in total:
🥇 1st place - $1,000
🥈 2nd place - $500
🥉 3rd place - $250
If several participants score the same amount of votes they all are considered as winners and the money prize is shared among the winners.
Who can participate?
Any Developer Community member, except for InterSystems employees. Create an account!
Contest Period
November 2-15: Two weeks to upload your applications to Open Exchange (also during this period, you can edit your projects).
November 16-22: One week to vote.
November 23: Winners announcement.
The topic
💡 Interoperability solutions for InterSystems IRIS and IRIS for Health 💡
Develop an interoperability solution or a solution that helps to develop or/and maintain Interoperability solutions using InterSystems IRIS or InterSystems IRIS for Health.
The application should work either on IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition.
The application should be Open Source and published on GitHub.
If you introduce special technology implementations in your application, you will get some technology bonuses. Stay tuned for bonuses description.
Helpful resources
1. Example applications:
IRIS-Interoperability-template
ETL-Interoperability-Adapter
HL7 and SMS Interoperability Demo
Twitter Sentiment Analysis with IRIS
Healthcare HL7 XML
RabbitMQ adapter
PEX demo
2. How to submit your app to the contest:
How to publish an application on Open Exchange
How to submit an application for the contest
3. Online courses:
Interoperability for Business
Interoperability QuickStart
Interoperability Resource Guide - 2019
4. Videos:
Intelligent Interoperability
Interoperability for Health Overview
Judgment
Please find the Judgment and Voting Rules for the Contest here.
So!
Ready. Set. Code.
Please join our exciting coding marathon!
❗️ Please check out the Official Contest Terms here.❗️
Participants can also use PEX to develop adapters in Java and .Net right? Here's an example of PEX production. Sure. PEX demo is included in examples list, thanks @Eduard.Lebedyuk Some ideas for contestants:
IMAP - while InterSystems IRIS supports SMTP/POP3 protocols native support for IMAP would be an interesting addition. Discussion.
Swagger BO - Swagger is a leading REST API specification format. Automatically generate Business Operation from swagger specification
BS for binary protocols - similar to Swagger above but for binary protocols. Write-up is here.
One new idea for contestants:
MLOperation. Currently, PythonGateway provides low-level PythonOperation aimed at expert users who write Python code themselves. The idea of MLOperation is to build a high-level Interoperability adapter targeted at a broader userbase. Essentially your adapter provides generalized Fit/Predict/Optimize methods and users need to provide the data, target model type, and hyper parameter values. This closes the gap between the hands-off approach of the IntegratedML and low-level approach of the PythonGateway. The work is described in this issue. We added an IRIS Interoperability Template with a very simple (the simplest probably) but working template of an IRIS Interop production
Developers!
Only 3 days left before the start of the 7th InterSystems online programming contest!
You will have 2 weeks (Nov 2-15) to upload your solutions to Open Exchange and 1 week (Nov 15-22) to compete for the main prizes.
So, join our competition and win! 💪🏼 Technology bonuses for the interoperability contest
Developers!
Are you ready to participate in our exciting coding competition?
The contest has already started! And we're waiting for your cool projects! 🚀 Want more?
Watch these videos on InterSystems Developers YouTube related to interoperability topic:
⏯ Natural Language Processing with InterSystems IRIS
⏯ HL7 and SMS Interoperability Demo
⏯ PEX: Production Extension Framework Demo
Enjoy and stay tuned! Don't miss the latest video on InterSystems Developers YouTube:
⏯ InterSystems Interoperability Contest Kick-off Webinar
In this webinar, we talk about the interoperability capabilities of InterSystems IRIS, will do a demo of building the basic IRIS interoperability solution, and demo how to use the PEX. Also, we discuss and answer the questions on how to build interoperability solutions using InterSystems IRIS and IRIS for Health.
Stay tuned! ✌🏼
Hey guys,
You're very welcome to join the InterSystems Developers Discord Channel to discuss all topics and questions related to InterSystems programming contests. There're lively discussions with InterSystems developers!
Join us! 😎 How to apply for the programming contest
Log in to Open Exchange, open your applications section.
Open the application which you want to apply for the contest and click Apply for Contest.
Make sure the status is 'Published'.
The application will go for the review and if it fits the topic of the contest the application will be listed on the contest board.
Developers,
One week left to submit your apps for the Interoperability contest!
Feel free to submit if you haven't completed your project yet – you'll be able to fix bugs and make improvements during the voting week too.
The first application is already on the Contest Board:
@Yuri.Gomes with the upload-adapter project is in the game! 🔥
Check out the InterSystems IRIS interoperability Custom Upload Adapter to multipart file requests.
And who's next? 😉
Hey Community,
Only 5 days left to upload your apps to the Interoperability contest!
Show your best coding skills on InterSystems IRIS or IRIS for Health, earn some $$$ and glory! 💥
Voting for the best apps will begin soon! Only 3 days left before the end of registration for the Interoperability contest.
🗓 Registration ends on November 15 – 11:59 PM EST.
Note: Also during the voting period, you can edit your projects.
Don't miss your chance to win! 🏆 On behalf of the idea: there is a fresh request of an AS2 protocol interoperability adapter.
Announcement
Shane Nowack · Oct 28, 2020
Hello Everyone,
We are working on growing the InterSystems Certification program, and would like to gather some input from the community.
Please participate in this brief 6-minute survey to share your thoughts with us regarding the new certification exams we have planned and other program improvements that we are considering.
https://www.surveymonkey.com/r/2ZVHNPS
Thanks for your help!
Announcement
Dean Andrews · Apr 4, 2022
We are excited to introduce you to our new feedback portal, InterSystems Ideas!
We aim to improve our feedback mechanisms so that you can suggest ways our products could evolve to meet your business challenges. Developer Community Questions are a great way to interact with your peers around a specific coding issue, and Customer Support is, as always, the way to get an immediate problem fixed.
This new portal is meant to capture higher level ideas. Less of how you do something today, and more about how you would like to see the product work better in the future. It allows you to post your own feedback & comment/upvote on feedback provided by others. InterSystems can view any feedback you submit, respond to your feedback directly, and update the status of your feedback items as we make progress on your requests.
So please take a look, contribute your ideas, and bookmark it for the future. Thank you! @Dean.Andrews2971 - this is very exciting! I know that the members of the D.C. have a lot of great ideas and I look forward to reading about them in the portal :)
For some of them exist even concrete proposals for solutions. (e.g. Global <-> JSON) Maybe we can move them to "solved"? Or at least provide the list of solutions in OEX? What do you think @Dean.Andrews2971 ?
Discussion
Timothy Leavitt · Oct 19, 2022
Hello community! I'm working on an internal innovation effort at InterSystems considering our documentation/resources around upgrades. As part of this, I'd love to have your answers to any/all of the following questions, either via comment or (if you prefer your answers to be more private) direct message.
Thanks in advance!
What InterSystems products + versions are you running? ($zv is ideal.)
What makes you decide to upgrade?
What are your blockers to upgrading?
What is your process for evaluating and planning a possible upgrade?
What documentation resources do you use?
What gaps/issues do you see in our existing documentation around upgrades?
What would make your InterSystems software upgrade process better?
What has made an upgrade fail?
When have you had to roll-back? Seeing as I just completed a production upgrade yesterday:
What InterSystems products + versions are you running? ($zv is ideal.)
IRIS for Windows (x86-64) 2022.1 (Build 209U) Tue May 31 2022 12:16:40 EDT [Health:3.5.0]
What makes you decide to upgrade?
New features + security fixes
What are your blockers to upgrading?
Bugs in new releases + being limited to the non-CD releases due to current configuration
What is your process for evaluating and planning a possible upgrade?
Install in our NPE and use the new version, run tests against the most heavily used elements
What documentation resources do you use?
Release notes + any upgrade guides that explicitly call out versions you can/can't upgrade from
What gaps/issues do you see in our existing documentation around upgrades?
It's a small thing, but a link to the release notes from the online distribution page on WRC would be greatly received alongside the release in question.
What would make your InterSystems software upgrade process better?
One step that always bothers me is the need to do a recompile post upgrade, as it's not been made quite clear to me at what stage this needs to be done when working in a mirrored environment. This could be a step handled by the installer given that it should happen with any major version change.
What has made an upgrade fail?
Not to hammer on at the same point, but I did have an upgrade "fail" due to a miscommunication about if the version change was major or minor, and we hadn't run the recompile of all namespaces.
When have you had to roll-back?
Never had to fully roll back, but have had to fall back to a secondary mirror after noting the upgraded mirror was having issues (see above). Otherwise we aim for a "fix forward" approach to issues found following an upgrade.
@Julian.Matthews7786 thanks for the super quick reply!
A follow-up question - do you tend to do maintenance release updates or just jump major versions? Mainly major version jumps unless something is problematic in the version that has ended up in our production environment.
Last jump was 2019.1 to the current 2022.1 and I'm blaming the pandemic on no upgrades between those two releases Thank you - this is a helpful data point too! We have put our upgrade on pause right now due to constraints, but will be starting it back up and hopefully upgrading by March.
What InterSystems products + versions are you running? ($zv is ideal.) We are currently running HealthShare Health Connect 2018.1.3
Cache for UNIX (IBM AIX for System Power System-64) 2018.1.3 (Build 414U) Mon Oct 28 2019 11:24:02 EDTWhat makes you decide to upgrade? Push to move away from AIX and more towards Red Hat for costs, support, additional enhancements and options available to us in IRIS vs 2018.1.3
What are your blockers to upgrading? New network/security policies, new hardware, new OS
What is your process for evaluating and planning a possible upgrade?
What is the benefit to upgrade
What does the new version offer and benefits to the Medical Center
Where is the Medical Center going
What new requirements/policies do we need to address
What is the EOL/EOS for the version we are on
What documentation resources do you use? Release notes, installation requirements and guide
What gaps/issues do you see in our existing documentation around upgrades? While the release notes is nice, but more explanation of what is changing, screen shots, etc...
What would make your InterSystems software upgrade process better?
Lessons Learned Guide to Upgrades
What we should be on the lookout for
Notes on the individual changes to be worked
Dedicated InterSystems contact that could help with any questions or guide us on the upgrade.
Thank you! I've added two more questions at a colleague's suggestion:
What has made an upgrade fail?
When have you had to roll-back? I have added these to my initial response Probably our biggest pain point related to InterSystems software upgrade, and one we have to try and make sure sites using our Deltanji source code management tool are aware of, is that the procedure can result in class dictionaries of remote databases being upgraded to a dictionary version that the instance hosting the databases cannot handle.
Our Deltanji documentation now includes this paragraph in the section about InterSystems platform upgrades:
Before upgrading an InterSystems IRIS, Caché or Ensemble instance we strongly recommend that you first disable all ECP connections the instance makes to other instances. Leave these connections disabled until after you have completed the upgrade, including execution of any post-upgrade steps recommended by InterSystems such as the recompilation of code in all namespaces. These precautions should prevent the upgrading instance from inadvertently upgrading class dictionary entries and routines on remote instances which may still be running an earlier InterSystems platform version. I think docker is ideal for upgrading - just change the line of the docker image or just use the latest.
It may not be the case for production, but for development, docker is a no-brainer IMHO. This is a good point. Fortunately, dictionary version updates are few and far between these days. (They used to happen all the time.) @Evgeny.Shvarov agreed - although it's good to be sure that you're developing on the same version that you're targeting in production.