Tani Frankel · Aug 7, 2025 go to post

This should work.

What HTTP Method are you using POST (or GET)?

What HTTP status are you getting - 200 OK (or 405 Method Not Allowed)?

Tani Frankel · Jul 25, 2025 go to post

If you use the InterSystems CLI vis your OS shell, you can also simply run:

#iris python instancename

See the iris command docs (at least for some OSs).

Tani Frankel · Jul 20, 2025 go to post

Examining the Audit database (specifically the LoginFailure event, and perhaps Protect; make sure they are Enabled for your testing) might also be helpful.

Tani Frankel · Jul 16, 2025 go to post

Hi Dmitrii,

From the discussion in the comments it seems like you're trying to use "Workers", but did you try to use the Event mechanism for your use-case?

See also this related article (and this one as well).

By the way here's a Docs reference of using this from Python.

I don't have a wider context of this, but in the IRIS Interoperability functionality, behind the scenes of the Interoperability components, and the Messages and Queues managed there, this Event mechanism is used. So perhaps if you are already using IRIS's Interoperability capabilities, you can implement this in the higher level of the Business Components in your Interoperability Production, rather than with the lower level code using the Event class.

The Workers mechanism you tried to use is intended more for distributing parallel work, and the Event API is more for messaging and queuing scenarios, which sounds more like your use-case.

This article might also be of interest to you as it discusses moving from "Workers" to "Events".

Tani Frankel · Jun 22, 2025 go to post

The related short videos have been uploaded and published, so updated the post accordingly.

Tani Frankel · Mar 2, 2025 go to post

You might also find this HL7 benchmark post by @Mark Bolinsky useful, specifically the section titled "Disk Configuration", and the related "Table 2" there.

For convenience I'm pasting this table here (but read the original post for the full context, for example your scenario sounds more like the "T2 Workload" described there, rather than the "T4" one) -

Table 2: Disk Requirement per inbound HL7 T4 Message  

Contributor Data Requirement
Segment Data 4.5 KB
HL7 Message Object 2 KB
Message Header 1.0 KB
Routing Rule Log 0.5 KB
Transaction Journals 42 KB
Total 50 KB
Tani Frankel · Jan 12, 2025 go to post

Congratulations, again, @Yuval Golan ! 🏆🥈

Well done for your year-after-year successes 📆:

2018 - 7th place

2019 - 5th place

2020 - 3rd place

2021 - 2nd place

2022 - 3rd place

2023 - 3rd place

2024 - 2nd place

2025 - ? 1st place?...

Tani Frankel · Dec 1, 2024 go to post

For the Mgmt. Portal side you can follow through @Yuri Marx's example (though it uses Google and not Keycloak but the principal is similar, you will need a ZAUTHENTICATE, you will find a sample there).

Re your question about accessing the Access Token, you can include in your ZAUTHENTICATE something like this:

 set isAuthorized=##class(%SYS.OAuth2.AccessToken).IsAuthorized(applicationName,sessionId,,.accessToken,,,.error)
 if isAuthorized {
    set sc=##class(%SYS.OAuth2.AccessToken).GetIntrospection(applicationName,accessToken,.jsonObject)
    ...
 }    
 // then you can access the jsonObject for getting info, e.g. (and this is from a KeyCloak example):
 set Username="OAuth2_"_jsonObject.username
 // or:
 set iterator=jsonObject."realm_access".roles.%GetIterator()
 while iterator.%GetNext(.key,.val) { 
    ...
 }


For the FHIR API you can look at @Luis Angel Pérez Ramos's example (though it uses auth0, but again it should be similar).
In this case you don't have to worry about ZAUTHENTICATE because the FHIR Server infrastructure has you covered.

By the way, in v2024.3 which was just released, there's a new OAuth FHIR Client QuickStart you can use to set this up in an easier manner.

For other REST services this would depend on their nature and whether there is user interaction which allows for example the actions described in the two samples mentioned above.

Note, my colleague @Ariel Glikman and myself are in the midst of a project that includes interacting with KeyCloak, and possibly once it's complete we can share some insights, but this will take some time, so I wouldn't hold my breath waiting for this.

Another note, I believe that down the line (perhaps even with v2025.1) we will have more seamless out-of-the-box integration with these kinds of OAuth authentication flows, which will require less background work as you need to implement today with ZUATHENTICATE etc. Stay tuned...

Tani Frankel · Nov 20, 2024 go to post

I suggest turning on relevant logging which could provide you with more details as to what is happening behind the scenes and what might be the problem.

See an example in @Daniel Kutac post.

Tani Frankel · Nov 19, 2024 go to post

I believe you need to use PasswordHash, see for example from Docs:

[Actions]

CreateUser:Name=SQLAdmin,
  PasswordHash="cec6638a357e7586fddfb15c0e7dd5719a1964e774cd37466fb0c49c05,
  323cb89148c887166dd2be61c107710539af2c01b43f07dccc8d030ac2c1a8cf7c5ace4a00d57e3780f,10000,SHA512",
  Roles="%SQL,%DB_USER"

Re PasswordHash see more details in the related Docs. For example:

$ docker run --rm -it containers.intersystems.com/intersystems/passwordhash:1.1 -algorithm SHA512 -workfactor 10000
Enter password:
Enter password again:
PasswordHash=0fad6b1a565e04efb5fe9259da8457456883e0a3a42c1a34acec49cbbc1fb8c4c40f1846559ce180c103898db836,dd0874dc346d23679ed1b49dd9f48baae82b9062,10000,SHA512
Tani Frankel · Nov 18, 2024 go to post

When you say "always" (and you also mentioned "50%") what do you mean? - some cases the content is displayed and sometimes not? Any distinction as to when it's ok and when not? is it perhaps side-dependent? Any "special" characters that might influence this?

Tani Frankel · Nov 17, 2024 go to post

Hi Dmitrii,

Can you please elaborate as to the content of your stream, is it XML? something else?

Tani Frankel · Sep 30, 2024 go to post

Indeed missed it! Can't wait to see it!

I'm sure the team did a great job in rolling out the new Global Masters