On windows docker works in two different ways, as windows containers and linux containers. It looks like, you just should switch it to linux from Windows

Ken, 

You running IRIS with an activated feature named as Durable %SYS, which means, some of your settings, should persist even when you restart and recreate containers. So, this may be a cause that your global persist after a recreate container. But does not says why it disappears after the restart of the host system. While we know almost nothing about your whole configuration, it's a bit difficult to discover what's going wrong.

For sure, you can connect with Studio, just should keep in mind few points:

  • The version of Studio should be the same or higher than version of server
  • Port used for connection should be superport which is 51773 on IRIS side. So, you just have to add more -p 51773:51773, where the first 51773, is the port on your host machine, while the second one is mostly constant.

You can also use VSCode for development with IRIS, in this case, should be used web port 52773, instead of 51773. 

I have recently implemented SAML Authentication for one of the projects where I participated, with some SAML providers. I have not tested it with Shibboleth, but with some online providers, including GSuite. It's not so difficult actually and can be solved with SAML classes already implemented in IRIS for SOAP.

But this is the only Authentication, while SAML supports also supports provisioning, which I have not Implemented at the moment.

Craig,

Try this

RUN wget -qO /dev/null --keep-session-cookies --save-cookies /dev/stdout --spider \
  --method POST --body-data="UserName=$WRC_USERNAME&Password=$WRC_PASSWORD" \
  'https://login.intersystems.com/login/SSO.UI.Login.cls?referrer=https%253A//wrc.intersystems.com/wrc/login.csp' \
 | wget -O - --load-cookies /dev/stdin \
 "https://wrc.intersystems.com/wrc/WRC.StreamServer.cls?FILE=/wrc/Live/ServerKits/HSAP-2018.1.2.309.5-hscore15.032-b9021-lnxrhx64.tar.gz" \
 | tar xvfzC - . 
Dmitry Maslennikov · Apr 30, 2020 go to post

Thanks, a lot, it may help.

But unfortunately, Export in case of Base64 does not work correctly, and anyway have to be fixed. Due to the specialty of Base64, a string which has to be encoded in a chunked manner, have to be devisable by 3. At the moment it reads original stream with default size of chunk, 32656 (instead of 32656\3*3=32655), so, base64 becomes incorrect, and decoded back is different from the original.

Dmitry Maslennikov · Apr 28, 2020 go to post

The way when used one server and shared git user, not recommended. It actually makes not so much sense when every developer will save his changes like one. 

And instead of Studio, I would recommend now using VSCode-ObjectScript, it already has git support from out of the box, and each developer will work with git separately, so, history will be more clear.

Dmitry Maslennikov · Apr 21, 2020 go to post

Hi Emmanuel,

This particular extension is for Visual Studio Code only, at the moment. Different IDEs I hope will come in the future. And possible for Visual Studio as well.

VSCode supports Cyrillic, so, don't see any possible issues with Hebrew.

Visual Studio Code and Visual Studio are two completely different projects. There is only one thing between them, both developed by Microsoft. Don't be confused by similar names. 

So, you should not be worried to use VSCode and Visual Studio on the same machine side by side.

Dmitry Maslennikov · Apr 19, 2020 go to post

There two open-source projects

  • isc-tar - it's my library that works the same as tar tool in Linux, and with native support of gzip in InterSystems products you can easily compress files as tar.gz and decompress them. This project used in production as part of Package Manager project.
  • isc_zip - should work with zip files
Dmitry Maslennikov · Apr 14, 2020 go to post

Thank you guys for coming to our first webinar! Wow! I did not expect that there will be more than 80 participants! Thank you for your interest and support.
We will make more overview webinars further on. But if you want to dive deeper you can sign up for our online course!
The first 3 subscribers will get 50% off the price!!

Fill free to post any issues with VSCode-ObjectScript you faced here

Dmitry Maslennikov · Apr 14, 2020 go to post

Thank you Raj for high evaluation of my work! I am sure with the community support we will make a perfect solution for coding on ObjectScript.

Guys, in case you need any support or want to learn more about the solution, do not hesitate to contact me here or on the website caretdev.com

Dmitry Maslennikov · Apr 10, 2020 go to post

Hi Julius,

Sorry, I did not reply to you earlier. You can find how to configure VSCode-ObjectScript for multiple connections here.

Dmitry Maslennikov · Mar 24, 2020 go to post

It's a when you in one command get everything you need. The problem is, that it uses external tool imagemagick to convert resulying image in bmp format to png. That's why it's not as simple as may sound.

Another reason is do not anything to a working system. To gather information enough readonly access to the database.

Dmitry Maslennikov · Mar 24, 2020 go to post

I already mentioned, how to do it for a whole database. At the moment no way to specify just a global. Fill an issue ))

Dmitry Maslennikov · Mar 24, 2020 go to post

Possible reasons

  • Another recommendation is to separate code and data. So, I need at least two databases, code which is always in a container, and data mounted outside.
  • Just to be consistent, some project, and namespace with the same name as the project. With only own configuration. Without anything predefined. In most cases, namespace and any related configuration, supposed to be configured for the particular project. And keeping USER as is and do not touch except for some temporary staff, like import Installer manifest and setup it.
  • One of the reasons for USER still exists, that it is kind of entrypoint, and keep it as is, will keep from anything unexpected.

Just my thoughts

Dmitry Maslennikov · Mar 23, 2020 go to post

Any IRIS edition includes formerly known as Ensemble feature, which is now is Interoperability (and one of the letters in IRIS).

You may get this error if you work in the namespace where Ensemble was activated. By default for USER was not activated.

When you create a new namespace Ensemble checkbox checked by default and, but you can uncheck it.

to enable namespace manually, do this command

do ##class(%EnsembleMgr).EnableNamespace("YOUR-NAMESPACE")
Dmitry Maslennikov · Mar 23, 2020 go to post

$listvalid

%SYS>w $listvalid($lb("test"))
1
%SYS>w $listvalid("test")     
0
%SYS>w $listvalid("")    
1

$listbuild is not an object, so, it's not a check as an instance of, it is only possible that variable is valid as $listbuild

$listbuild as just a string with a special format, so, that's why this will also return true

%SYS>w $listvalid($char(1))   
1
%SYS>write $lb()=$c(1)
1

because

%SYS>zzdump $lb()  

0000: 01                                                      .
Dmitry Maslennikov · Mar 14, 2020 go to post

So, to get own docker-running Cache, is quite easy.

You just need docker desktop installed on your mac. Then when it installed, and running. You'll be able to run it from the terminal by command.

docker run -d --name cache \
  -p 1973:1972 \
  -p 57773:57772 \
  -v $HOME/cache.key:/usr/cachesys/mgr/cache.key \
  daimor/intersystems-cache:2018.1

It supposed that you have valid cache.key in your home directory. And that your ports 1973 and 57773 is free to use. If you would like to change the port just change 1973 and 57773 with any you'd like to use.

This command will download the image (daimor/intersystems-cache:2018.1) from the public repository, and run it in the background.

You can control the running container by commands, wherein all subsequent commands cache is the name of the container from the docker run command.

To see cconsole.log of the container.

docker logs cache

To look at the status of the container

docker ps cache

Stop running container

docker stop cache

This is just an empty instance, to look at how it works. In the real case scenario, some more work should be done.

Docker images for Cache or for Ensemble are provided by me, and it is available for different versions.

Nowadays is best to migrate to IRIS, and use official images provided by InterSystems itself.

And the next step for you would be to use an editor that can be run on macOS, instead of Studio which working only on Windows.  

And you can use VSCode editor with an extension VSCode-ObjectScript, developed by me. 

I would recommend reading here articles tagged by Docker. There much more information about how to best use it. 

As well as about using VSCode.

You can contact me directly, if you need any help with establishing development process, with such modern tools as Docker and VSCode. or migrating to IRIS.

Dmitry Maslennikov · Mar 14, 2020 go to post

I suppose you going to use it like for local development, not for production, so, I would recommend just use docker images instead. I'm using macOS and have not installed Cache/IRIS locally already for some years.

You did not provide the version you try to install and no cconsole.log. If you add this here, so it may help.

Yes, for sure, you can install any packages locally

ZPM> load /path/to/package -v

it can be as a folder, or as file tgz, which you can get with command

ZPM> package-name package -v

-v is optional, to get more logs for debugging