To complete my expertise in data storage, I joined the editor Oracle, before joining InterSystems in 2001.
My skills in data processing have therefore been extended, from multi-model storage, interoperability (and more particularly on health exchange standards), to real-time analysis and artificial intelligence (AI / ML), so as to cover a broad spectrum of the data lifecycle in all industries.
Pour compléter mon expertise en stockage de données, j'ai ensuite intégré l'éditeur Oracle, avant de rejoindre InterSystems France dès 2001.
Mes compétences en traitement de la donnée se sont dès lors étendues, depuis le stockage multi-modèles, l'interopérabilité (et plus particulièrement sur les standards d'échanges en santé), jusqu'à l'analyse en temps-réel et à l'intelligence artificielle (IA/ML), de manière à couvrir un large spectre du cycle de vie de la donnée.
Hi Tanguy,
happy to hear you've finally fixed it.
Again, %ZSTART is not at all mandatory ; as soon as your ENV variables are available in your container you should be able to get it either from $system.Util.GetEnviron(env) or ##class(%SYS.Python).Import("os").getenv(env)
With these variables :
{"Env": [
"API_CLIENT_SECRET=ea5663885513e5b00df120fa4b4da8e1150398cde9d41ee27b5a8c6f1898dfa63ae711b82bf06b36475b646453a9092f5653895ddd2c3bb067d9a4f562a6b625",
"TZ=Europe/Paris",
"ISC_DATA_DIRECTORY=/irisdata",
"ISC_CPF_MERGE_FILE=/app/merge.cpf",
"API_CLIENT_ID=3e726f42daaa06a8",
"ISC_PACKAGE_IRISGROUP=irisowner",
"ISC_PACKAGE_IRISUSER=irisowner",
"ISC_PACKAGE_MGRGROUP=irisowner",
"ISC_PACKAGE_MGRUSER=irisowner",
"IRISSYS=/home/irisowner/irissys",
"TINI_VERSION=v0.19.0",
"ISC_PACKAGE_INSTANCENAME=IRIS",
"ISC_PACKAGE_INSTALLDIR=/usr/irissys",
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/irisowner/bin",
"PYTHONPATH=/usr/irissys/mgr/python",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US.UTF-8",
"LC_ALL=en_US.UTF-8"
]}
You should get :
write $SYSTEM.Util.GetEnviron("API_CLIENT_ID")
3e726f42daaa06a8
write $SYSTEM.Util.GetEnviron("API_CLIENT_SECRET")
ea5663885513e5b00df120fa4b4da8e1150398cde9d41ee27b5a8c6f1898dfa63ae711b82bf06b36475b646453a9092f5653895ddd2c3bb067d9a4f562a6b625
write $SYSTEM.Util.GetEnviron("TZ")
Europe/Paris
write ##class(%SYS.Python).Import("os").getenv("API_CLIENT_ID")
3e726f42daaa06a8
write ##class(%SYS.Python).Import("os").getenv("API_CLIENT_SECRET")
ea5663885513e5b00df120fa4b4da8e1150398cde9d41ee27b5a8c6f1898dfa63ae711b82bf06b36475b646453a9092f5653895ddd2c3bb067d9a4f562a6b625
write ##class(%SYS.Python).Import("os").getenv("TZ")
Europe/Paris
Or, with %ZSTART containing :
ROUTINE %ZSTART
QUIT ; Prevents direct execution without a label
SYSTEM ; Subroutine called at system startup
; Initialize the IRIS application secrets
Set ^Secrets("API_CLIENT_ID") = $System.Util.GetEnviron("API_CLIENT_ID")
Set ^Secrets("API_CLIENT_ID","LastUpdated") = $ZDATETIME($HOROLOG,3)
Set ^Secrets("API_CLIENT_SECRET") = $System.Util.GetEnviron("API_CLIENT_SECRET")
Set ^Secrets("API_CLIENT_SECRET","LastUpdated") = $ZDATETIME($HOROLOG,3)
QUIT
you should obtain :
IRISAPP>zw ^Secrets
^Secrets("API_CLIENT_ID")="3e726f42daaa06a8"
^Secrets("API_CLIENT_ID","LastUpdated")="2025-08-07 17:16:19"
^Secrets("API_CLIENT_SECRET")="ea5663885513e5b00df120fa4b4da8e1150398cde9d41ee27b5a8c6f1898dfa63ae711b82bf06b36475b646453a9092f5653895ddd2c3bb067d9a4f562a6b625"
^Secrets("API_CLIENT_SECRET","LastUpdated")="2025-08-07 17:16:19"
IRISAPP>d SYSTEM^%ZSTART
IRISAPP>zw ^Secrets
^Secrets("API_CLIENT_ID")="3e726f42daaa06a8"
^Secrets("API_CLIENT_ID","LastUpdated")="2025-08-07 17:24:02"
^Secrets("API_CLIENT_SECRET")="ea5663885513e5b00df120fa4b4da8e1150398cde9d41ee27b5a8c6f1898dfa63ae711b82bf06b36475b646453a9092f5653895ddd2c3bb067d9a4f562a6b625"
^Secrets("API_CLIENT_SECRET","LastUpdated")="2025-08-07 17:24:02"









Thanks, @John Murray — without you, this community would just be a bunch of code and no soul!