Using Daml SDK to Confirm Enterprise or Open Source Version

Someone asked me this question and I wanted to see if there was a better answer:

“Is there no easy way to tell if I have the Enterprise version of the SDK installed?”

My reply was:

  • Firstly, when you source the tarball for a start, the Enterprise version is designated with an ‘EE’ in the archive name (daml-sdk-2.5.1-linux-ee.tar.gz)
  • Secondly, if you are an Enterprise client, chances are high that you will have a ~/.daml/daml-config.yaml with an Artifactory Key

However, if you needed to use a Daml system that had been installed and configured by another party without your knowledge, and all you had was the MacOS or Linux Command Line, would you be able to tell if this was an Enterprise or Open Source version?

I looking through the version control, and install documentation and there was no indication of how this might be answered using the Daml SDK itself.

Hi @Ben_M

I would go by trying to use an enterprise feature. One simple one that comes to mind is the profiler:

daml sandbox -C canton.participants.sandbox.features.profile-dir=profiler

Using the Open Source edition the command will fail (complaining about not knowing about such an option key), while on the Enterprise edition the sandbox starts up.

1 Like

Thanks for that, it worked as you said.

As this is the first time I have heard someone ask that question, it seems there is no compelling need but I ask if it would be trivial to append a simple designator (Enterprise=EE; Open Source=OS) at the end of the version output?

Current Daml Version cmd:
$ daml version
SDK versions:
  2.4.0                                   
  2.5.0-snapshot.20221201.11065.0.caac1d10
  2.5.0                                   
  2.5.1          (default SDK version for new projects)
  2.5.3          (latest release, not installed)
Potential Daml Version cmd:
$ daml version
SDK versions:
  2.4.0 OS                                
  2.5.0-snapshot.20221201.11065.0.caac1d10 EE
  2.5.0 EE                                   
  2.5.1 OS          (default SDK version for new projects)
  2.5.3 EE          (latest release, not installed)

I find expressive version outputs to be helpful, perhaps modifying the Daml one might help others also?

1 Like