crossType and crossSteps I get from $lb stored in grid which I read with $Data with variable crossInfo.

So, I use the trick with the second argument in $Data, where variable gets value if data exists.

And another trick with the left $listbuild as you noticed. Which just extracts values from right's side $listbuild to variables in the left's side $listbuild. The documentation actually has information about it.

Good luck. ))

Looks like rescheduling running task does not work. But it is possible to create a new one, which runs once.

Class User.Test Extends %SYS.Task.Definition
{
Parameter TaskName = "SomeTask";
Method OnTask() As %Status
{

  Set task = ##class(%SYS.Task).%New()
  Set task.Name = "Test task"
  Set task.NameSpace = $Namespace
  Set task.TaskClass = ..%ClassName(1)
  Set task.TimePeriod = 5 // RunOnce
  Set task.RescheduleOnStart = 0
  Set tSC = task.%Save()
  If $$$ISERR(tSC) {
    Quit tSC
  }
  
  Set nextDate = +$Horolog + $Random(10) + 1
  Set nextTime = $ZTimeh("10:00")
  Quit ##class(%SYS.Task).RunOnce(task.%Id(), nextDate, nextTime)
}
}

I've recorded how I solved Day 4 with IRIS and VSCode-ObjectScript

https://www.youtube.com/embed/3KtJY_ts5Ho
[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

Yeah, I forgot about docker. But it is possible to solve this as well. 

Connect to the instance with SSH in any way offered by Google.

cd /opt/ISC
sudo vi docker-compose.yml

So, you can now add more ports. Save it (:wq)))

sudo docker-compose up -d

Do not forget to configure firewall rules.

You can even add this line, and remove ports block at all, and get access to any future ports without a restart container.

network_mode: host

Mike, thanks for the feedback.

Questions about passwords were raised privately. But mostly about secure storage. Your case very different, and even maybe better way, to have SSO instead of storing passwords. It will need some research, but I'm sure it will be possible to implement it. As a company CaretDev, I would like to offer commercial support to your company. So, it will be easier to find time to implement any features, you would like to have.

About toggle between namespaces. I don't know why do you need it, and how you going to use it. The main point of VSCode is sources stored locally, when you will toggle namespace, how you going to keep namespaces correctly updated?

Or you can use a server-side editing feature. You can create file myapp.code-workspace in the root of your project, press button Open workspace. And you will have connection to USER and %SYS namespaces as well, so, just add more isfs URLs with ns=NAMESPACE.

{
  "folders": [
    {
      "name": "myapp",
      "path": ".",
    },
    {
      "uri": "isfs://myapp",
      "name": "server",
    },
    {
      "uri": "isfs://myapp?ns=USER",
      "name": "user",
    },
    {
      "uri": "isfs://myapp?ns=%SYS",
      "name": "system",
    }
  ],
  "settings": {
    "files.exclude": {},
    "objectscript.conn": {
      "active": true,
      "username": "_system",
      "password": "SYS",
      "ns": "MYAPP",
      "port": 52773,
    },
    "objectscript.serverSideEditing": true
  }
}