Thanks a lot! 

In short, I failed.

1. This requires installing pip3 on Unix and you'll need to be su

2. If you want to reference npm libraries, you'll need to be su (although technically it's possible to place JS library/libraries code in the XData section(s))

3. The most annoying thing is that most JS libraries are asynchronous and that's a dead end

You have to cast your %CharacterStream to a specific implementation, say, to %GlobalCharacterStream. The latter one implements %GlobalStreamAdaptor, which inherits from %AbstractStream and %Stream.Object. Finally, the %Stream.Object class exposes the CopyFrom method which allows you to copy data from your %Stream.GlobalBinary instance (and vice versa)

It seems to me that I found the answer (was googling for two hours and found nothing, then used forum search and voila):

  1. Declare a class which inherits Ens.Production:
Class My.Production Extends Ens.Production
{

XData ProductionDefinition
{
<Production Name="My.Production" TestingEnabled="true" LogGeneralTraceEvents="true">
  <Description></Description>
  <ActorPoolSize>1</ActorPoolSize>
</Production>
}
}
  1. And launch:
Set isProductionRunning = ##class(Ens.Director).IsProductionRunning("My.Production")
If isProductionRunning = 0 {
            Set sc = ##class(Ens.Director).StartProduction("My.Production")
}

> What parameter are you trying to change?

My subclassed Transform calls some external web service and I want to  allow a user configure that web service settings (url-port-ssl-etc) by clicking on the business process <transform> element. Also, it is crucial that such a transformation cannot be delegated to BO. So anyway, thank you, it is fine if I move settings to BP, but it is not that elegant :(

Here it is:

Class MyHL7HTTPService Extends EnsLib.HL7.Service.HTTPService
{

Method OnAdapterHTTPResponse(
    ByRef pStatus As %Status,
    ByRef pHTTPResponseStatus As %String,
    ByRef pBodyLen As %Integer,
    ByRef pResponseBodyStream As %Stream.Object,
    ByRef pMainResponseHeader As %String,
    ByRef pHeaderExtra As %String)
{
    set pHeaderExtra = pHeaderExtra _ "Access-Control-Allow-Origin: *"_ $char(13) _ $char(10) 
                                    _ "Access-Control-Allow-Headers: *" _ $char(13) _ $char(10) 
                                    _ "Access-Control-Allow-Methods: *" _ $char(13) _ $char(10)
}

}

Finally, I've implemented the following brute solution. I don't like the look of this at all, but it works

ClassMethod test() As %Status
{
  #dim request as %CSP.Request
  set request = %request

  #dim headerName as %String
  set headerName = ""
  set headerName = request.NextCgiEnv(headerName)
  while (headerName '= "") {
    if $find(headerName, "HTTP_") '= 0 {
      set localHeaderName = $replace(headerName, "HTTP_", "")
      set localHeaderName = $replace(localHeaderName, "_", "- ")
      set localHeaderName = $zconvert(localHeaderName, "L")
      set localHeaderName = $zconvert(localHeaderName, "W")
      set localHeaderName = $replace(localHeaderName, "- ", "-")
      write localHeaderName, ": ", request.GetCgiEnv(headerName), !
    }
    set headerName = request.NextCgiEnv(headerName)
    }
    return $$$OK
}