InterSystems does not want support for environment variables for password, as it’s expected by the world, and everyone doing it

as a side effect, there is no way to use services feature in GitHub actions, and I suppose such things may exist in other CI’s. But I found that it could be very useful, and at the moment I have to start IRIS in docker manually and reset password 

Access only by web, looks a bit odd, but possible. In my example of irissqlcli-web, I've just used external tool ttyd, which I'm sure can be easily tied with any webserver in use. ttyd is deamon process, supposed to be launched on the server, it opens some port, which can be used in webserver to as a proxy endpoint.

  • Multiline SQL, yes. It supported in a multiple ways, not sure what exactly do you mean
    • A file a bunch of SQL Queries, can be passed to the tool itself as stdin, and it will execute it, along with the tools commands
    • Just paste a bunch of queries, each query or command ended with semicolon. And it will work too.
  • Transactions, yes, sure, everything possible with xDBC, should work here too

In the example below, I've just copied and pasted many lines there and executed them. And done, including changing the output format, rollback transaction

As for verifying results before coming, this sounds wonderful. I don't have anything yet, in way of automation. But I don't see that it's not possible to implement. If you have any examples of how it has probably already been implemented somewhere, let me know, so, do not reinvent the wheel.

And all the features requests are welcome in the GitHub repo

And as for deeper integration SQL and IRIS, I'm sure it is worth looking at dbt project. I'm part of the implementation IRIS support, there.

Well, if you require some parts of API to be anonymously available, and another part requires authorization. Then the easiest way is to implement two these APIs separately,  and configure Web Applications this way, where one of them will have anonymous access, and another would require password. And it will work, and you will not need to do anything else.

But if have everything in on API, you can look at my demo project. Based on Realworld application, offereded realizations in many different languages and frameworks.