Search

Clear filter
Announcement
Bob Kuszewski · Apr 14, 2023

IKO (InterSystems Kubernetes Operator) 3.5 Release Announcement

InterSystems Kubernetes Operator (IKO) 3.5 is now Generally Available. IKO 3.5 adds significant new functionality along with numerous bug fixes. Highlights include: Simplified setup of TLS across the Web Gateway, ECP, Mirroring, Super Server, and IAM The ability to run container sidecars along with compute or data nodes – perfect for scaling web gateways with your compute nodes. Changes to the CPF configmap and IRIS key secret are automatically processed by the IRIS instances when using IKO 3.5 with IRIS 2023.1 and up. The initContainer is now configurable with both the UID/GID and image. IKO supports topologySpreadConstraints to let you more easily control scheduling of pods Compatibility Version to support a wider breadth of IRIS instances Autoscale of compute nodes (Experimental) IKO is now available for ARM Follow the Installation Guide for guidance on how to download, install, and get started with IKO. The complete IKO 3.5 documentation gives you more information about IKO and using it with InterSystems IRIS and InterSystems IRIS for Health. IKO can be downloaded from the WRC download page (search for Kubernetes). The container is available from the InterSystems Container Registry. IKO simplifies working with InterSystems IRIS or InterSystems IRIS for Health in Kubernetes by providing an easy-to-use irisCluster resource definition. See the documentation for a full list of features, including easy sharding, mirroring, and configuration of ECP.
Article
Evgeniy Potapov · Nov 2, 2022

How to develop an InterSystems Adaptive Analytics (AtScale) cube

Today we will talk about Adaptive Analytics. This is a system that allows you to receive data from various sources with a relativistic data structure and create OLAP cubes based on this data. This system also provides the ability to filter and aggregate data and has mechanisms to speed up the work of analytical queries. Let's take a look at the path that data takes from input to output in Adaptive Analytics. We will start by connecting to a data source - our instance of IRIS. In order to create a connection to the source, you need to go to the Settings tab of the top menu and select the Data Warehouses section. Here we click the “Create Data Warehouse” button and pick “InterSystems IRIS” as the source. Next, we will need to fill in the Name and External Connection ID fields (use the name of our connection to do that), and the Namespace (corresponds to the desired Namespace in IRIS). Since we will talk about the Aggregate Schema and Custom Function Installation Mode fields later, we will leave them by default for now. When Adaptive Analytics creates our Data Warehouse, we need to establish a connection with IRIS for it. To do this, open the Data Warehouse with a white arrow and click the “Create Connection” button. Here we should fill in the data of our IRIS server (host, port, username, and password) as well as the name of the connection. Please note that the Namespace is filled in automatically from the Data Warehouse and cannot be changed in the connection settings. After the data has entered our system, it must be processed somewhere. To make it happen, we will create a project. The project processes data from only one connection. However, one connection can be involved in several projects. If you have multiple data sources for a report, you will need to create a project for each of them. All entity names in a project must be unique. The cubes in the project (more on them later) are interconnected not only by links explicitly configured by the user, but also if they use the same table from the data source. To create a project, go to the Projects tab and click the “New Project” button. Now you can create OLAP cubes in the project. To do that, we will need to use the “New Cube” button, fill in the name of the cube and proceed to its development. Let's dwell on the rest of the project's functionality. Under the name of the project, we can see a menu of tabs, out of which it is worth elaborating on the Update, Export, and Snapshots tabs. On the Export tab, we can save the project structure as an XML file. In this way, you can migrate projects from one Adaptive Analytics server to another or clone projects to connect to multiple data sources with the same structure. On the Update tab, we can insert text from the XML document and bring the cube to the structure that is described in this document. On the Snapshots tab, we can do version control of the project, switching between different versions if desired. Now let's talk about what the Adaptive Analytics cube contains. Upon entering the cube, we are greeted by a description of its contents which shows us the type and number of entities that are present in it. To view its structure, press the “Enter model” button. It will bring you to the Cube Canvas tab, which contains all the data tables added to the cube, dimensions, and relationships between them. In order to get data into the cube, we need to go to the Data Sources tab on the right control panel. The icon of this tab looks like a tablet. Here we should click on the “hamburger” icon and select Remap Data Source. We select the data source we need by name. Congratulations, the data has arrived in the project and is now available in all its cubes. You can see the namespace of the IRIS structure on this tab and what the data looks like in the tables. Now it’s time to talk about each entity that makes up the structure of the cube. We will start with separate tables with data from the namespace of IRIS, which we can add to our cube using the same Data Sources tab. Drag the table from this tab to the project workspace. Now we can see a table with all the fields that are in the data source. We can enter the query editing window by clicking on the “hamburger” icon in the upper right corner of the table and after that going to the “Edit dataset” item. In this window, you can see that the default option is loading the entire table. In this mode, we can add calculated columns to the table. Adaptive Analytics has its own syntax for creating them. Another way to get data into a table is to write an SQL query to the database in Query mode. In this query, we must write a single Select statement, where we can use almost any language construct. Query mode gives us a more flexible way to get data from a source into a cube. Based on columns from data tables, we can create measures. Measures are an aggregation of data in a column that includes the calculation of the number of records, sum of numbers in a column, maximum, minimum and average values, etc. Measures are created with the help of the Measures tab on the right menu. We should select from which table and which of its columns we will use the data to create the measure, as well as the aggregation function applied to those columns. Each measure has 2 names. The first one is displayed in the Adaptive Analytics interface. The second name is generated automatically by the column name and aggregation type and is indicated in the BI systems. We can change the second name of measure to our own choice, and it is a good idea to take this opportunity. Using the same principle, we also can build dimensions with non-aggregated data from one column. Adaptive Analytics has two types of dimensions - actual and degenerate ones. Degenerate dimensions include all records from the columns bound to them, while not linking the tables to each other. Normal dimensions are based on one column of one table, that is why they allow us to select only unique values from the column. However, other tables can be linked to this dimension too. When the data for records has no key in the dimension, it is simply ignored. For example, if the main table does not have a specific date, then data from related tables for this date will be skipped in calculations since there is no such member in the dimension.From a usability point of view, degenerate dimensions are more convenient compared to actual ones. It happens because they make it impossible to lose data or establish unintended relationships between cubes in a project. However, from a performance point of view, the use of normal dimensions is preferable. Dimensions are created in the corresponding tab on the right panel. We should specify the table and its column, from where we will get all unique values to fill the dimension. At the same time, we can use one column as a source of keys for the dimension, whereas the data from another one will fall into the actual dimension. For example, we can use the user's ID as a key, and moderately send his name. Therefore, users with the same name will be different entities for the measure. Degenerate dimensions are created by dragging a column from a table from the workspace to the Dimensions tab. After that, the corresponding dimension is automatically assembled in the workspace. All dimensions are organized in a hierarchical structure, even if there is only one of them. The structure has three levels. The first one is the name of the structure itself. The second one is the name of the hierarchy. The third level is the actual dimension in the hierarchy. A structure can have multiple hierarchies. Using the created measures and dimensions, we can develop calculated measures. These are measures that were made with the help of the cut-off MDX language. They can do simple transformations with data in an OLAP structure, which is sometimes a practical feature. Once you have assembled data structure, you can test it using a simple built-in previewer. To do this, go to the Cube Data Preview tab on the top menu of the workspace. Enter measures in Rows and dimensions in Columns or vice versa. This viewer is similar to Analysts in IRIS but with less functionality. Knowing that our data structure works, we can set up our project to return data. To do this, click the “Publish” button on the main screen of the project. After that, the project immediately becomes available via the generated link. To get this link, we need to go to the published version of any of the cubes. To do that, open the cube in the Published section on the left menu. Go to the Connect tab and copy the link for the JDBC connection from the cube. It will be different for each project but the same for all the cubes in a project. When you finish editing cubes and want to save changes, go to the export tab of the project and download the XML representation of your cube. Then put this file in the “/atscale-server/src/cubes/” folder of the repository (the file name doesn't matter) and delete the existing XML file of the project. If you don't delete the original file, Adaptive Analytics will not publish the updated project with the same name and ID. At the next build, a new version of the project will be automatically passed to Adaptive Analytics and will be ready for use as a default project. We have figured out the basic functionality of Adaptive Analytics for now so let's talk about optimizing the execution time of analytical queries using UDAF. I will explain what benefits it gives us, and what problems might arise in this case. UDAF stands for USER Defined aggregate functions. UDAF gives AtScale 2 main advantages. The first one is the ability to store query cash (they call it Aggregate Tables). It allows the next query to take already pre-calculated results from the database, using aggregation of data. The second one is the ability to use additional functions (actually User-Defined Aggregate Functions) and data processing algorithms that Adaptive Analytics is forced to store in the data source. They are kept in the database in a separate table, and Adaptive Analytics can call them by name in auto-generated queries. When Adaptive Analytics can use these functions, the performance of analytics queries increases dramatically. The UDAF component must be installed in IRIS. It can be done manually (check the documentation about UDAF on https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI.Page.cls?KEY=AADAN#AADAN_config) or by installing a UDAF package from IPM (InterSystems Package Manager). At UDAF Adaptive Analytics Data Warehouse settings, change Custom Function Installation Mode to Custom Managed value. The problem that appears when using aggregates is that such tables store outdated information at the time of the request. After the aggregate table is built, new values ​​that come to the data source are not added to aggregation tables. In order for aggregate tables to contain the freshest data possible, queries for them must be restarted, and new results should be written in the table. Adaptive Analytics has an internal logic for updating aggregate tables, but it is much more convenient to control this process yourself. You can configure updates on a per-cube basis in the web interface of Adaptive Analytics and then use scripts from repository DC-analytics (https://github.com/teccod/Public-InterSystems-Developer-Community-analytics/tree/main/iris/src/aggregate_tables_update_shedule_scripts) to export schedules and import them to another instance, or use the exported schedule file as a backup. You will also find a script to set all cubes to the same update schedule if you do not want to configure each one individually. To set the schedule for updating aggregates in the Adaptive Analytics interface, we need to get into the published cube of the project (the procedure was described earlier). In the cube, go to the Build tab and find the window for managing the aggregation update schedule for this cube using the “Edin schedules” link. An easy-to-use editor will open up. Use it to set up a schedule for periodically updating data in the aggregate tables. Thus, we have considered all main aspects of working with Adaptive Analytics. Of course, there are quite a lot of features and settings that we have not reviewed in this article. However, I am sure that if you need to use some of the options we haven't examined, it will not be difficult for you to figure things out on your own.
Announcement
Evgeny Shvarov · Feb 9, 2023

Technical Bonuses Results for InterSystems Developer Tools Contest 2023

Hi Developers! Here is the score of technical bonuses for participants' applications in the InterSystems Developer Tools Contest 2023! Project Idea Implementation Python Docker ZPM Online Demo Code Quality First Article on DC Second Article on DC Video on YouTube First Time Contribution Total Bonus Nominal 3 3 2 2 2 1 2 1 3 3 22 gateway-sql 3 2 2 2 1 10 xml-to-udl 2 1 2 3 3 11 iris-persistent-class-audit 2 2 1 2 3 3 13 GlobalStreams-to-SQL 2 2 2 1 2 1 3 13 DX Jetpack for VS Code 2 2 2 1 3 10 JSONfile-to-Global 2 2 2 1 2 1 3 13 apptools-admin 3 2 5 irissqlcli 3 2 2 7 OpenAPI-Suite 3 2 2 2 1 2 1 13 iris-connections 2 2 1 2 1 3 11 Intersystems IRIS platform queue trend monitoring component 2 2 3 7 message_key_query 2 2 3 7 iris-log-viewer 3 2 2 2 1 2 1 3 16 iris-tripleslash 3 2 2 1 2 1 3 14 iris_log_analytics 3 3 iris-deploy-tools 2 2 2 6 blockchain - [ IRIS python ] 3 3 cos-url-shortener 3 2 2 1 2 3 3 16 iris-geo-map 3 2 2 2 1 2 1 3 16 ISC DEV 0 IRIS Data Migration Manager 3 3 Bonuses are subject to change upon the update. Please claim here in the comments below or in the Discord chat. Thanks @Evgeny.Shvarov for the sharing. Please note that iris-geo-map also has a video on YouTube Thank you @Evgeny.Shvarov ! Could you please consider there is two articles OpenAPI-Suite and the Idea implementation is DPI-I-226 I claim 2nd article for both GlobalStreams-to-SQLhttps://community.intersystems.com/post/global-streams-sql-2 and JSONfile-to-Globalhttps://community.intersystems.com/post/jsonfile-global-2THX Yes, you achieved the Video bonus. Thank you for help! I've added your bonuses. Thank you! Thank you! Now these bonuses have been applied. Thanks to you @Semion.Makarov ! Thanks @Semion.Makarov Hello, I tried to add the video link to iris-log-viewer within Open Exchange, but I am not sure why it is not showing. Here is the link: https://youtu.be/VSTVZaC-fp8 Thanks, Oliver Yes, I see the video on the video tab. I've added bonus points for this. Thank you! Second article related to DX Jetpack is at https://community.intersystems.com/post/gj-codespex-now-supports-exclusions, and it includes a link to a YouTube video. Also, there's a containerized demo of DX Jetpack at https://github.com/gjsjohnmurray/dx-jetpack-demo (link in the README of the extension too), which I hope will count for the Docker bonus. Hi John! I've added these bonuses to your app. Could you please add link to the container repo in your OpenExchange app description? Hi there, For iris-persistent-class-audi, I loaded a video on youtube a week ago and linked it on OEX. Hi Stefan! There is a special field in the app description on OEX regarding the video. If you do this it appears on the apps page in Videos section. e.g. like here. Otherwise it's not clear where to look for it. I updated it like that last week. Apparently, I did not send it for approval, which I thought i did. Hi Stefan! I've updated your points. irissqlcli has a docker version of the tool (even two versions, including for web), is it acceptable? And demo docker-compose-example.yml, which can be used to test it locally with IRIS @Evgeny.Shvarov I would like to request 1 point for our second articlehttps://community.intersystems.com/post/elevate-your-unit-tests-next-level Hi Henrique! Your points have been updated. Hi Dmitry! I have checked and updated the bonuses. Hello,Please add bonuses `Idea Implementation` to the `gateway-sql` project.https://ideas.intersystems.com/ideas/DPI-I-224 Hello,Please add bonuses `Second articule (translation) and YouTube vídeo to cos-url-shortener Project. I added embedded Python too (but maybe too late) xD Thanks!. Thanks Semion. I added that, and I have now set up an online demo and linked to it from OpenExchange. Please add this bonus. Hi Sergey! Your points were updated. Hi Daniel! Sorry, but to receive a bonus for the article, it must be an original piece and not a translation. All other bonuses have been added to your app. Thanks!! Thanks!! Hi @Semion.Makarov Sorry to bother you, but we add the Youtube video for our app. Here the link for the announcement https://community.intersystems.com/post/iris-tripleslash-video-announcement Hi Henrique! I've updated bonuses on your app. Could you please add the video to the app in OEX? Thanks @Evgeny Shvarov for the sharing.Message-key-query has online demo,https://ddmer547.github.io/message_key_query/#/iris, At the same time, the program is packaged in the form of ZPM Hi! You have received points for the online demo. However, you are unable to receive points for the ZPM bonus because you need to publish your package to the public registry. Hi @wang.zhe! Message key query has the online demo bonus in place. But on the IPM(ZPM) - you need to publish the app IPM module to make it available. See the documentation: https://docs.openexchange.intersystems.com/solutions/submit/#package-manager-checkbox Also, please follow the naming convention for ObjectScript classes and IPM modules. Sorry, I didn't see your message. I've already added points for this bonus.
Announcement
Evgeny Shvarov · Apr 19, 2023

Technical Bonuses Results for InterSystems IRIS Cloud SQL Contest

Hi Developers! Here is the score of technical bonuses for participants' applications in the InterSystems Developer Tools Contest 2023! Project IntegratedML usage Online Demo First Article on DC Second Article on DC Video on YouTube First Time Contribution Community Idea Implementation IRIS Cloud SQL Survey Total Bonus Nominal 5 2 2 1 3 3 3 2 21 IntegratedML-IRIS-Cloud-Height-prediction 5 2 3 10 audit-consolidator 2 2 3 2 9 Tokenizator 2 3 2 7 Sheep’s Galaxy 5 2 2 3 2 14 superset-iris 2 2 3 2 9 iris-mlm-explainer 5 2 2 9 Customer churn predictor 5 2 2 2 11 AI text detection 5 2 2 3 2 14 Bonuses are subject to change upon the update. Please claim here in the comments below or in the Discord chat. Apache Superset in ideas - https://ideas.intersystems.com/ideas/DPI-I-288 I've added idea implementation bonus to your app. Thank you for help! I do not see any bonus for audit-consolidator. I wrote 3 articles. I created online demo. I am trying to upload my video. I uploaded YouTube video about audit-consolidator: https://www.youtube.com/watch?v=KYen4hEZR9c Hi @Oliver.Wilms ! I answered you in DM. From all the three articles one received the bonus.
Announcement
Anastasia Dyubaylo · Nov 3, 2022

[Webinar] What’s New in InterSystems IRIS 2022.2

Hello Community, We're happy to announce that the InterSystems IRIS, IRIS for Health, HealthShare Health Connect, & InterSystems IRIS Studio 2022.2 is out now! And to discuss all the new and enhanced features of it we'd like to invite you to our webinar What’s New in InterSystems IRIS 2022.2. In this webinar, we’ll highlight some of the new capabilities of InterSystems IRIS® and InterSystems IRIS for Health™, version 2022.2, including: Columnar storage - beta release New rule editor SQL enhancements Support for new and updated platforms Cloud storage connectors for Microsoft Azure and Google Cloud Speakers:🗣 @Robert.Kuszewski, Product Manager, Developer Experience🗣 @Benjamin.DeBoe, Product Manager This time around, we've decided to host these webinars on different days for different timezones, so that everyone is able to choose the time to his or her liking. Here they are: 📅 Date: Tuesday, November 15, 2022⏱ Time: 1:00 PM Australian Eastern Daylight Time (New South Wales)🔗 Register here 📅 Date: Thursday, November 17, 2022⏱ Time: 1:00 PM Eastern Standard Time🔗 Register here 📅 Date: Tuesday, November 22, 2022⏱ Time: 10:00 AM Greenwich Mean Time🔗 Register here Don't forget to register via the links above and see you there!
Announcement
Olga Zavrazhnova · Nov 18, 2022

InterSystems at the European Healthcare Hackathon in Prague Nov 25-27

InterSystems team is heading up to our next hackathon stop - European Healthcare Hackathon in Prague Nov 25-27. Registration closes on November 20 - so don't hesitate to register. You can participate online or in-person! InterSystems will introduce the "Innovate with FHIR" challenge with prizes for the best use of InterSystems FHIR services.
Article
Anastasia Dyubaylo · Mar 16, 2023

How to embed video into your post on InterSystems Developer Community

Hey Community, Here is a short article about how to embed a video into your post. There are two approaches. 1️⃣ With the recent update to the UI/UX of the Developer Community we implemented a new approach. Now, to insert a video you need to click a button Youtube and fill in the form Either provide a URL to the video, or paste an Embed code from step 3 of the next approach. 2️⃣ Another approach is to do it manually, just follow the steps: 1. Open a video you wish to embed in YouTube: 2. Click Share and choose Embed: 3. Copy the contents of the upper right textbox or just click on the Copy button in the bottom right corner: 4. In your post on Community switch to Source view: 5. Insert the copied content from step 3 exactly where you want it to be: 6. Click on the Source button again to return to the WYSIWYG view and continue writing your post. This is it - this is how you embed a YouTube video into your community post. Hope it answers one of your questions on how to write on Community ;) Leave your thoughts on the subject in the comments section or propose another topic for an article on how to write posts on the Developer Community. Great instruction, Anastasia! Maybe we could add a new(sic!) button into editor that will expect Youtube URL and will transform it into the embedded form and insert the fragment into the post? Sounds easier than several operations? yeah, it's already in our development plan ;) stay tuned for the updates! great to know - thank you :) We've updated the tutorial on how to add videos to your posts with the new way to do it thanks to the new functionality introduced with the release here. Just click a button Youtube and fill in the form
Article
Eduard Lebedyuk · Feb 10, 2023

Encrypted JDBC connection between Tableau Desktop and InterSystems IRIS

In this article, we will establish an encrypted JDBC connection between Tableau Desktop and InterSystems IRIS database using a JDBC driver. While [documentation on configuring TLS with Java clients](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GTLS_javacli) covers all possible topics on establishing an encrypted JDBC connection, configuring it with Tableau might be a little bit tricky, so I decided to write it down. # Securing SuperServer Before we start with client connections, you need to configure SuperServer, which by default runs on port `1972` and is responsible for xDBC traffic to accept encrypted connections. This topic is described in the [documentation](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GTLS_superserver), but to summarise it, you need to do three things: 1. Generate CA and server cert/key. I use [easyRSA](https://github.com/OpenVPN/easy-rsa): ```bash mkdir /tls cd /easyrsa3 ./easyrsa init-pki # Prep a vars file https://www.sbarjatiya.com/notes_wiki/index.php/Easy-rsa#Initialize_pki_infrastructure # cp /tls/vars /opt/install/easy-rsa/easyrsa3/pki/vars ./easyrsa build-ca ./easyrsa gen-req IRIS nopass ./easyrsa sign-req server IRIS cp pki/issued/* /tls/ cp pki/private/* /tls/ cp pki/ca.crt /tls/ sudo chown irisusr:irissys /tls/* sudo chmod 440 /tls/* ``` Optionally, generate client cert/key for mutual verification. I recommend doing it after establishing an initial encrypted connection. 2. Create `%SuperServer` SSL Configuration, which uses server cert/key from (1). ```objectscript set p("CertificateFile")="/tls/IRIS.crt" set p("Ciphersuites")="TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256" set p("Description")="Autogenerated SuperServer Configuration" set p("Enabled")=1 set p("PrivateKeyFile")="/tls/IRIS.key" set p("PrivateKeyPassword")="" set p("PrivateKeyType")=2 set p("TLSMaxVersion")=32 set p("TLSMinVersion")=16 // Set TLSMinVersion to 32 to stick with TLSv1.3 set p("Type")=1 set sc = ##class(Security.SSLConfigs).Create("%SuperServer", .p) kill p ``` 3. Enable (or Require) SuperServer SSL/TLS support:: ``` set p("SSLSuperServer")=1 set sc = ##class(Security.System).Modify("SYSTEM", .p) kill p ``` Where: 0 - disabled, 1 - enabled, 2 - required. Before you Require SSL/TLS connections, remember to enable SSL/TLS connections to the SuperServer for [WebGateway](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GTLS_WEBGATEWAY) and [Studio](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GTLS_studio). I recommend first enabling SSL/TLS connections, then verifying that all clients (xDBC, WebGateway, Studio, NativeAPI, etc.) use encrypted SSL/TLS connections and requiring SSL/TLS connections only after that. Now we are ready to establish an encrypted JDBC connection from Tableau Desktop. # Configuring encrypted JDBC connection from Tableau Desktop 1. [Download JDBC drivers](https://intersystems-community.github.io/iris-driver-distribution/). 2. Place the JDBC driver into the correct folder: - Windows: `C:\Program Files\Tableau\Drivers` - Mac: `~/Library/Tableau/Drivers` - Linux: `/opt/tableau/tableau_driver/jdbc` 3. Create `truststore.jks` from the SuperServer CA certificate: `keytool -import -file CA.cer -alias CA -keystore truststore.jks -storepass 123456 -noprompt` 4. Create `SSLConfig.properties` file: ``` debug = false logFile = javatls.log protocol = TLSv1.3 cipherSuites = TLS_AES_256_GCM_SHA384 trustStoreType = JKS trustStore = truststore.jks trustStorePassword = 123456 trustStoreRecoveryPassword = 123456 ``` 5. Place `SSLConfig.properties` and `truststore.jks` in a working directory of your java program. Note that Tableau spawns several processes. You need a working directory for the Java process (which is not a root process or one of the QT processes). Here's how to find it on Windows with [ProcessExplorer](https://learn.microsoft.com/en-us/sysinternals/downloads/process-explorer): ![image](https://user-images.githubusercontent.com/5127457/218109251-a77bfc11-5a5c-42a6-a7e7-c6d153434cb1.png) and go to the java process properties and get the current directory: ![image](https://user-images.githubusercontent.com/5127457/218109489-a8ff2bc4-3354-4988-8e89-fd98b2aa10a5.png) So for Windows, for me it's `C:\Users\elebedyu\AppData\Local\Temp\TableauTemp`, or in general `%LOCALAPPDATA%\Temp\TableauTemp`. On Mac and Linux, you can figure it out using `lsof -d cwd`. Please write in comments if you determined the directory for Mac/Linux. 6. Create `.properties` file. This file contains JDBC customizations. Name it `IRIS.properties` and place it: - On Windows: `C:\Users\\Documents\My Tableau Repository` - On Mac and Linux: `~/Documents/My Tableau Repository` If you are using the Tableau version before 2020.3, you should use Java 8 for JDBC connections. Java 8 properties files require ISO-8859-1 encoding. As long as your properties file contains only ASCII characters, you can also save it in UTF-8. However, ensure that you don't save with a BOM (Byte order mark). Starting in Tableau version 2020.3, you can use UTF-8 encoded properties files, which are standard with Java 9+. In this file, specify your JDBC connection properties: ``` host= port= user= password= connection\ security\ level=10 ``` Note that Tableau uses `JDBCDriverManager`, all properties are [listed here](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=BJAVA_refapi#BJAVA_refapi_connparms). As per the `.properties` [file spec](https://en.wikipedia.org/wiki/.properties), you must escape whitespaces in keys with a `\`. 7. Open Tableau and create a new JDBC connection, specifying the properties file. It should connect. ![image](https://user-images.githubusercontent.com/5127457/218100160-df31cb02-da86-40bd-8082-946d39546f3b.png) # Debugging connections First try establishing an unencrypted connection. If something does not work, go to `My Tableau Repository\Logs` and open `jprotocolserver.log`. In there, search for: ``` Connecting to jdbc:IRIS://host:port/DATABASE Connection properties {password=*******, connection security level=*******, port=*******, host=*******, user=_SYSTEM} Connected using driver {com.intersystems.jdbc.IRISDriver} from isolatedDriver. ``` If logged connection properties do not contain the properties you expect, Tableau is not seeing your `IRIS.properties` file. # Verifying that connection is encrypted 1. Close everything except for Tableau, which might communicate with IRIS. 2. Open WireShark and start capturing on the correct network interface. Set Capture Filter to: `host `. ![image](https://user-images.githubusercontent.com/5127457/218099263-ee159182-103d-4ec2-9622-fed1c61b00ba.png) 3. In Tableau, try to connect to IRIS, change the schema, or perform any other action requiring server communication. 4. If everything is properly configured, you should see Packets with Protocol `TLSv1.3`, and following a TCP stream should result in you looking at a ciphertext. ![image](https://user-images.githubusercontent.com/5127457/218099637-534f5251-9df2-411a-9f9c-24f6287d0080.png) # Conclusion Use the best security practices for xDBC connections. # Links - [SuperServer TLS](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GTLS_superserver) - [WebGateway TLS](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GTLS_WEBGATEWAY) - [Studio TLS](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GTLS_studio) - [Java TLS](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=GTLS_javacli) - [Java Connection Properties](https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=BJAVA_refapi#BJAVA_refapi_connparms) - [easyRSA](https://github.com/OpenVPN/easy-rsa) This helped me a lot, thanks!! I just want to note that in the section "Securing SuperServer" there is a typo where it says: set sc = ##class(Security.SSLConfig).Create("%SuperServer", .p) should say: set sc = ##class(Security.SSLConfigs).Create("%SuperServer", .p) Because it threw me a "Class Does Not Exists" error. Regards, Mauro Thanks! Fixed. Are you on Mac by any chance? No, Windows as the client and Linux as the server
Announcement
Laurel James (GJS) · Feb 15, 2023

[Webinar] Deltanji demo: source control tailored for InterSystems IRIS

How source control integrates with your system is imperative in ensuring it works seamlessly behind the scenes without interruption. Deltanji source control understands the internal workings of InterSystems IRIS and provides a solution that can seamlessly handle its unique needs, with client integrations for VS Code, Studio, Management Portal, and Management Portal Productions. You can find out more about the benefits of using a source control tailored for InterSystems IRIS at this webinar. This demo will show how Deltanji goes beyond the traditional CI/CD pipeline, automating the project lifecycle from development through to deployment, making it the perfect source control companion for organizations with continually evolving systems. 🗓 Thursday, February 23rd⏰ 4 pm GMT | 5 pm CET | 11 am ET Sign up here > http://bit.ly/40JOaxo
Announcement
Irène Mykhailova · Jun 23

Stream / watch keynotes from the InterSystems Ready 2025 online

Hi Community! We have great news for those of you who are interested in what's happening at the InterSystems Ready 2025 but couldn't attend in person. All the keynotes are being streamed! Moreover, you can watch them afterwards if they happen at an inopportune time. Keynotes from Day 1 are already ready 😉 And don't forget to check out the rest of the keynotes: Keynotes from day 2 Keynotes from day 3 It promises to be epic!
Announcement
Anastasia Dyubaylo · Jul 9

Kick-off Webinar for InterSystems Developer Tools Contest 2025

Hey Community, We're pleased to invite all the developers to the upcoming kick-off webinar for the InterSystems Developer Tools Contest! Date & Time: Monday, July 14 – 11 am EDT | 5 pm CEST Discover the exciting challenges and opportunities that await developers in this contest. We will also discuss the topics we would like the participants to cover and show you how to develop, build, and deploy applications using the InterSystems IRIS data platform. Speakers: 🗣 @Raj.Singh5479, Project Manager - Developer Experience, InterSystems🗣 @Evgeny.Shvarov, Senior Startups and Community Programs Manager, InterSystems🗣 ​​​@DKG, Developer Relations Evangelist, InterSystems ✅ Register for the kick-off today!
Announcement
Evgeny Shvarov · Jul 31

Technology Bonuses Results for the InterSystems Developer Tools Contest 2025

We are happy to present the bonuses page for the applications submitted to the InterSystems Developer Tools Contest 2025! See the results below. Project Vector Search Embedded Python Interoperability IRIS BI VSCode Plugin FHIR Tools Docker IPM Community Idea Implementation Find Embedded Python bug First Article on DC Second Article on DC Video on YouTube First Time Contribution Total Bonus Nominal 3 3 3 3 3 3 2 2 4 2 2 1 3 3 37 Interoperability REST API Template 3 3 6 iristest-html 3 3 Global-Inspector 2 2 2 3 9 InterSystems Testing Manager for VS Code 3 4 2 1 3 13 IPM Explorer for VSCode 3 2 3 3 11 typeorm-iris 2 4 2 3 11 addsearchtable 3 3 iris-message-search 3 2 2 7 iris4word 3 3 3 2 2 4 2 1 3 23 PyObjectscript Gen 0 IrisTest 2 3 5 dc-artisan 3 3 3 3 2 2 2 1 3 22 templated_email 3 3 2 2 2 12 wsgi-to-zpm 3 2 5 toolqa 3 3 2 2 1 11 dataset-sample-split 3 2 3 8 snipforge 3 3 6 Please apply with your comments for new implementations and corrections to be made here in the comments or in Discord. Hi @Evgeny.Shvarov , how are you? What about this item? It could be a new article or a translation, right?The Second article on Developer Community - 1 point You can collect one more bonus point for the second article or the translation of the first article. The second article should go into detail about a feature of your project. The 3rd and more articles will not bring more points, but the attention will be all yours. *This bonus is subject to the discretion of the experts whose decision is final. HI! Right, It can be a translation of the first article or you can provide a new article if you want. @Semion.Makarov ,this is exactly what I'm questioning, to see if there is any other detail that may have prevented the score from being received. Andre, you can choose any option from translation or new article, only theme should be related with app and length for new article should be more when 1000 characters. No more restrictions So the point was not computed. Ok. Please provide link to translation. I'll update the table https://pt.community.intersystems.com/post/toolqa-espera-acabouThank you, @Semion.Makarov Done Hi @Semion.Makarov I'm not sure if we can claim points for "Community Idea Implementation" on dc-artisan. While we don't literally implement the idea from https://ideas.intersystems.com/ideas/DPI-I-557, but the rag-pipeline mode was heavily inspired by it. Our goal was to showcase embedded chunks, management, and vector ingestion, which aligns closely with the core concept of that idea. It's not a direct, word-for-word implementation of a GUI like vectorAdmin, but the underlying idea is very similar. Hi! That's pretty cool that you was inspired by one of ideas! But that idea requires UI for Vector db management. Your app doesn't follow the main idea's line Video for InterSystems Testing Manager for VS Code is now on YouTube. Thank you! Bonus was added. Can I get a bonus for Community opportunity Idea? As part of the main project, to proper test across multiple versions of IRIS, I implemented another project and wrote an article about it, with examples from typeorm-iris project I know that only Python matters nowadays, but what about other languages officially supported by InterSystems? I found significant bugs in the NodeJS driver, and it is not worth anything. Published Video about typeorm-iris I think IPM Explorer for VSCode has been incorrectly awarded the IPM bonus. From the bonuses article: This entry isn't published as an IPM package but as a VS Code extension on Microsoft's Marketplace. Hi! I've added bonus for idea. About languages, in this contest we have bonuses only for Embedded Python. Hi! I've updated bonuses, thank you! Hi! Judges decided to add this bonus to this app because it directly related with IPM. @Dmitry.Maslennikov Could you please add this link to your OEX app? First Article pointing for dc-artisan https://community.intersystems.com/node/585174 I've added bonus. Thank you! Hmm, seems unfair they didn't take that view last year for my IPM in VS Code entry: https://community.intersystems.com/post/technological-bonuses-results-developer-tools-contest-2024 Ask @Evgeny.Shvarov for details. I discussed that with Evgeny and team, and we decided to remove this bonus. @John.Murray Hi @Evgeny.Shvarov Now dc-artisan has a Youtube promo / demo video Hi! Bonus was added Hi @Semion.Makarov Second article for dc-artisanhttps://pt.community.intersystems.com/post/do-barro-à-obra-prima-conheça-o-dc-artisan-e-crie-prompts-com-qualidade Hi! Bonus was added. Thanks!
Announcement
Anastasia Dyubaylo · Aug 5

Online Meetup with the Winners of the InterSystems Developer Tools Contest 2025

Hi Community, Let's meet at the online meetup with the winners of the InterSystems Developer Tools Contest! It's a great opportunity to chat with the InterSystems Experts team and our contestants. Winners' demo included! Date & Time: Friday, August 8, 11:30 am EDT | 5:30 pm CEST 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! Please join the meetup in 5 minutes https://riverside.fm/webinar/directlink/eyJzbHVnIjoiZGV2ZWxvcGVyLXJlbGF0aW9ucy1zdHVkaW8iLCJldmVudElkIjoiNjg4OGMxNzExYTdhNjk0N2ZjNjIzMzk5IiwicHJvamVjdElkIjoiNjg4OGMxNzExYTdhNjkyY2VlNjIzMzk2In0=
Announcement
Jess Jowdy · Aug 18

[Demo Video] Introducing InterSystems Go tHE DIStance

#InterSystems Demo Games entry ⏯️ Introducing InterSystems Go tHE DIStance InterSystems Go tHE DIStance is a next-generation care management solution aimed at helping health plans address rising unmanaged healthcare costs and declining quality ratings, particularly in chronic condition management like diabetes. The platform integrates rich, real-time clinical data (rather than relying solely on delayed claims data) into interactive views that can track HEDIS performance, identify care gaps, and support targeted, personalized outreach through built-in communication tools. Care managers can access a unified clinical record, engagement history, and recommended next actions to improve both individual patient outcomes and broader population health. Presenters:🗣 @Jessica.Jowdy, Manager of Healthcare Sales Engineering, InterSystems🗣 @James.Carney, Team Lead of Emerging Markets & SMB Sales Engineering, InterSystems🗣 @Clayton.Lewis, Senior Technical Specialist, InterSystems 🗳 If you like this video, don't forget to vote for it in the Demo Games!
Announcement
Bob Kuszewski · Jun 20

InterSystems API Manager (IAM) 3.10 Release Announcement

InterSystems is pleased to announce that IAM 3.10 has been released. IAM 3.10 is the first significant release in about 18 months, so it includes many significant new features that are not available in IAM 3.4, including: Added support for incremental config sync for hybrid mode deployments. Instead of sending the entire entity config to data planes on each config update, incremental config sync lets you send only the changed configuration to data planes. Added the new configuration parameter admin_gui_csp_header to Gateway, which controls the Content-Security-Policy (CSP) header served with Kong Manager. This defaults to off, and you can opt in by setting it to on. You can use this setting to strengthen security in Kong Manager. AI RAG Injector (ai-rag-injector) Added the AI Rag Injector plugin, which allows automatically injecting documents to simplify building RAG pipelines. AI Sanitizer (ai-sanitizer) Added the AI Sanitizer plugin, which can sanitize the PII information in requests before the requests are proxied by the AI Proxy or AI Proxy Advanced plugins. Kafka Consume (kafka-consume): Introduced the Kafka Consume plugin, which adds Kafka consumption capabilities to Kong Gateway. Redirect (redirect): Introduced the Redirect plugin, which lets you redirect requests to another location. … and many more Customers upgrading from earlier versions of IAM must get a new IRIS license key in order to use IAM 3.10. Kong has changed their licensing in a way that requires us to provide you with new license keys. When you are upgrading IAM, you will need to install the new IRIS license key on your IRIS server before starting IAM 3.10. IAM 2.8 has reached its end-of-life and current customers are strongly encouraged to upgrade as soon as possible. IAM 3.4 will reach end-of-life in 2026, so start planning that upgrade soon. IAM is an API gateway between your InterSystems IRIS servers and applications, providing tools to effectively monitor, control, and govern HTTP-based traffic at scale. IAM is available as a free add-on to your InterSystems IRIS license. IAM 3.10 can be downloaded from the Components area of the WRC Software Distribution site. Follow the Installation Guide for guidance on how to download, install, and get started with IAM. The complete IAM 3.10 documentation gives you more information about IAM and using it with InterSystems IRIS. Our partner Kong provides further documentation on using IAM in the Kong Gateway (Enterprise) 3.10 documentation IAM is only available in OCI (Open Container Initiative) a.k.a. Docker container format. Container images are available for OCI compliant run-time engines for Linux x86-64 and Linux ARM64, as detailed in the Supported Platforms document. The build number for this release is IAM 3.10.0.2. This release is based on Kong Gateway (Enterprise) version 3.10.0.2.