go to post Evgeny Shvarov · Nov 6, 2019 Hi @Warlin Garcia ! I pushed the commit into the repo which fixes Namespace and README issue, thanks!
go to post Evgeny Shvarov · Nov 6, 2019 Hi @Henrique.GonçalvesDias! JFYI we have a new API in 2019.4 for IRIS monitoring. Is it possible to introduce its data into your module?
go to post Evgeny Shvarov · Nov 6, 2019 - The notes/documentation say that code will be loaded into USER namespace, however it's actually being loaded into IRISAPP (as configured in docckerfiles). Because I made an update to the code recently) And not to the documentation) PR is welcome, or I'll change it by myself soon. Or add an issue! - The jason.config is pointing to USER namespace so any new files and changes to existing will be actually loaded into USER instead of IRISAPP Yes, it's a bug from previous version. Need to be fixed, thanks! - The webapp (irisweb) is missing a config for the directory where to store files. I fixed this by modifying the app in management portal. Need to address the installation file/dockerfile Cool! Do you want to make a PR? - Haven't been able to make CSPs flow to the container the same as classes. I'm sure I'm missing something but haven't figured out what yet. Any tips? Maybe I'm placing files in the wrong location? Right now I created a csp/irisweb folder under src folder. You need to COPY this files from /csp in sources to /usr/irissys/mgr/csp/yourwebapp in Dockerfile
go to post Evgeny Shvarov · Nov 6, 2019 Hi @Conor Walsh! Thanks for sharing Container tools! Cool stuff!
go to post Evgeny Shvarov · Nov 5, 2019 There is also Learning services videos site - videos.intersystems.com. But if you are looking for the videos strictly for developers - it’s only YouTube now. Do you prefer another video hosting? Vimeo?
go to post Evgeny Shvarov · Nov 5, 2019 Nigel, just want to be sure that you read CD as Containers Deployment - so it will be available on every delivery site (WRC, download, AWS, GCP, Azure, Dockerhub) but in a container form.
go to post Evgeny Shvarov · Nov 1, 2019 Hi Arto! Webterminal works via websocket, AFAIK. And you always have the source code to check. Pinging @Nikita Savchenko for more details
go to post Evgeny Shvarov · Oct 31, 2019 Hi Lexi! Thanks for sharing! This is really cool, I like it! Here is a screenshot: The next step is a new UI for class reference! ;)
go to post Evgeny Shvarov · Oct 30, 2019 Hi Vitaly! Thanks for the idea! Please submit a task and vote for it. If we have a lot of votes will consider to add it. I have one problem with it - if we introduce Russian Community, will you stop answering questions in English? )
go to post Evgeny Shvarov · Oct 29, 2019 Hi Conor! Thanks for really wise suggestions. Agreed with everything. Two cents/comments: 1. I think we never want to code a lot of ObjectScript inside Dockerfile. Only a few lines to make some necessary configurations and the intention is to make the code more readable paying with some coding conditions (like sc hard-coded sc for error handling). 2. I am very supportive about putting all the possible setup activity into Installer.cls. But the issue is that not all the actively used setup tweaks are supported by %Installer format, e.g. RESTFul Web app. If you suggest to use <Invoke> - it's better to call method directly. So, here I'm putting some wishes for %Installer format approvements. Always open for improvements.
go to post Evgeny Shvarov · Oct 27, 2019 Well, here are some comments: do ##class(%SYSTEM.Process).CurrentDirectory("$PWD") This is to make WORKDIR /opt/irisapp current for IRIS. $@ Here we run the arbitrary ObjectScript in Dockerfile if '\$Get(sc) do ##class(%SYSTEM.Process).Process.Terminate(, 1) Here we check the status of the sc variable changed with status from ObjectScript in Dockerfile if it has an error and terminate IRIS in this case and fail the build. do ##class(SYS.Container).QuiesceForBundling() do ##class(SYS.Container).SetMonitorStateOK("irisowner") Two methods to prepare IRIS operate in a container mode properly. I'm pinging @Luca Ravazzolo to provide more details on it. Do ##class(Security.Users).UnExpireUserPasswords("*") This removes the password expiration because it's very annoying to change the password on every build. This line could be used for DEVELOPMENT MODE only. Please remove the line if you build the image for PRODUCTION.
go to post Evgeny Shvarov · Oct 26, 2019 Noticed some good stuff in @Dmitry.Maslennikov's iris-template repo and updated mine foundation template for development with IRIS Community Edition in ObjectScript. It's much easier now to run ObjectScript instructions in Dockerfile. Check the basic Dockerfie: ARG IMAGE=intersystems/iris:2019.1.0S.111.0 ARG IMAGE=store/intersystems/irishealth:2019.3.0.308.0-community ARG IMAGE=store/intersystems/iris-community:2019.3.0.309.0 FROM $IMAGE USER root WORKDIR /opt/irisapp RUN chown ${ISC_PACKAGE_MGRUSER}:${ISC_PACKAGE_IRISGROUP} /opt/irisapp USER irisowner COPY Installer.cls . COPY src src COPY irissession.sh / SHELL ["/irissession.sh"] RUN \ do $SYSTEM.OBJ.Load("Installer.cls", "ck") \ set sc = ##class(App.Installer).setup() # bringing the standard shell back SHELL ["/bin/bash", "-c"] CMD [ "-l", "/usr/irissys/mgr/messages.log" ] And another which installs ZPM and Webterminal: ARG IMAGE=intersystems/iris:2019.1.0S.111.0 ARG IMAGE=store/intersystems/iris-community:2019.3.0.309.0 FROM $IMAGE USER root WORKDIR /opt/irisapp RUN chown ${ISC_PACKAGE_MGRUSER}:${ISC_PACKAGE_IRISGROUP} /opt/irisapp USER irisowner RUN mkdir -p /tmp/deps \ && cd /tmp/deps \ && wget -q https://pm.community.intersystems.com/packages/zpm/latest/installer -O zpm.xml COPY Installer.cls . COPY src src COPY irissession.sh / # running IRIS and open IRIS termninal in USER namespace SHELL ["/irissession.sh"] # below is objectscript executed in terminal # each row is what you type in terminal and Enter RUN \ do $SYSTEM.OBJ.Load("Installer.cls", "ck") \ set sc = ##class(App.Installer).setup() \ Do $system.OBJ.Load("/tmp/deps/zpm.xml", "ck") \ zn "IRISAPP" \ zpm "install webterminal" # bringing the standard shell back SHELL ["/bin/bash", "-c"] CMD [ "-l", "/usr/irissys/mgr/messages.log" ]
go to post Evgeny Shvarov · Oct 24, 2019 Also available now on ZPM as document-template and can be installed as: zpm: USER>install document-template
go to post Evgeny Shvarov · Oct 24, 2019 John, we are considering it. There is a possibility if we have enough support and requests from developers.
go to post Evgeny Shvarov · Oct 22, 2019 Hi Brendan! What exactly you are looking for to have in IRIS terminal functionality? Perhaps web-terminal functionality will be enough for you? If so, here is the dockerfile which builds IRIS container with web-terminal inside - it installs package manager client (ZPM) and installs web-terminal on top. HTH
go to post Evgeny Shvarov · Oct 19, 2019 Hi Artem! Very cool! I've just tested it on docker (build a repo, see the PR) - and it works like a charm! For docker funs it I set all the settings in Global during container building, so you just need to build a container and then you can run tests already. So git clone/download the repo and then run in the folder: $ docker-compose -f "docker-compose.yml" up -d --build Open IRIS terminal and run tests: $ docker-compose exec iris iris session iris USER>do ##class(DocumentTemplate.Test).RunAllTests("/iris/app/TestDocs") Collect the results in /Results folder of the repo. Tested on Mac OS with IRIS 2019.3 CE, store/intersystems/iris-community:2019.3.0.309.0
go to post Evgeny Shvarov · Oct 18, 2019 Ok, this is fair - we can remove the Best Practice tag for this. The idea was that this is important conversation if you consider internal guidelines on this for your organization and can take one approach from the best practices of experienced developers.