Eduard Lebedyuk · Nov 3, 2023 go to post

Great article!

For cases, where you don't want to share the source at all (even if it's immediately deleted), the following approach would work:

1. On your system (with source code) execute:

set p=##class(%Studio.Project).%New()
do p.AddItem("WH.Color.cls")
do p.AddItem("WH.Size.cls")
do p.DeployToFile("c:\test\app.xml",,1)

It will create an XML export with object code only and no source code included.

2. Transfer the file into a target system and execute:

set sc=##class(%Studio.Project).InstallFromFile("c:\test\app.xml")
Eduard Lebedyuk · Nov 3, 2023 go to post

APPCODE must be RO if you want to leave it in the container to be replaced as a part of the container.

Eduard Lebedyuk · Oct 25, 2023 go to post

Set ..%SessionId= ""  before each SendSync/SendAsync should force a new session for each message sent.

Eduard Lebedyuk · Oct 11, 2023 go to post

Great article!

Some notes:

  1. SQL grants should be granted in a namespace with an SQL object.
  2. SQL grants can be granted only to users and roles that exist.
Eduard Lebedyuk · Sep 21, 2023 go to post

Route to two BOs ("Normal" and "High" priority) with different FailureTimeout. Use SDS to keep other settings in sync.

Eduard Lebedyuk · Sep 5, 2023 go to post

I highly recommend using Source Control and automated CICD pipelines and restricting manual access. This is the only way to forget about this type of issues altogether.

Still, here's how you can compare code on two servers.

Eduard Lebedyuk · Sep 1, 2023 go to post

Add a header field to your request in the form of Authorization: Basic <credentials>, where credentials is the Base64 encoding of username and password joined by a single colon :.  

Eduard Lebedyuk · Aug 28, 2023 go to post

What can be recommended?

Fixing memory leaks if you see your running jvm process consuming more and more memory.

Eduard Lebedyuk · Aug 21, 2023 go to post

To check all parts of the request you can use this utility method which outputs all objects as a response. Just add this to any part of your code:

set %response.ContentType = "html"
do ##class(%CSP.Utils).DisplayAllObjects()
return $$$OK
Eduard Lebedyuk · Aug 21, 2023 go to post

Tried to reproduce on RHEL9, but I got the test value, same as @Jeffrey.Drumm.

Are you actually not getting the TEST env var? Or some other env var? IRIS process overwrites some env vars on start

Eduard Lebedyuk · Aug 21, 2023 go to post

I guess you do need to use SessionEvent. OnLogin method specifically.

Or you can log every request using OnPreDispatch method in your REST broker.

Eduard Lebedyuk · Aug 14, 2023 go to post

You need your own datatype, which implements method generators for Set, GetStored etc.

After that use your own datatype in your main class. Example.

Eduard Lebedyuk · Aug 14, 2023 go to post

In your REST Web Application settings, leave only pass (and remove group by id, if any):

After that check that UnknownUser does not have %ALL.

Finally try to access your REST url using Postman (or similar tool) and you should be able to see Login methind being executed.