Scott,

take a look inside iam-setup.sh

Based on the inputs it constructs a URL and then tries to 'curl' it.

And fails for some reason. Check which URL it constructs and check if curl indeed works fine for that URL

The URL should look like:

https://IAM:
@xxx.xxx.xxx.xxx:443/api/iam/license

Check if you can access it from the bash

Can you provide small test case. It works fine for me. dc.demo is the same as HS.Local.CZ.OR.ROUTER.Service.Data.KeyProperty

dc.demoser is:

Class dc.demoser Extends %SerialObject
{

Property A As %String;

}

Test program:

set p = ##class(dc.demo).%New()
set x = ##class(dc.demoser).%New()
set x.A = "a1"
set p.Serial = x

set y= ##class(dc.demoser).%New()
set y.A = "a2"
do p.SerialList.Insert(y)

set ec= p.%Save()
zw ec

And then runnning:

USER>do ##class(dc.demo).test()
ec=1

USER>zw ^dc.demoD
^dc.demoD=1
^dc.demoD(1)=$lb("",$lb("a1"),$lb($lb($lb("a2"))),"",0,0,"","","","","","",0)

I never saw such direct of %SerialObject. Why do you need it? I wonder if %DynamicAbstractObject and JSON representation suits you here better

I believe IRIS already can GRANT privileges on schema:

You can use SCHEMA schema-name as the object-list value to grant the object-privilege to all of the tables, views, and stored procedures in the named schema, in the current namespace. The following example grants this user SELECT privilege for all objects in the Sample schema.

GRANT SELECT ON SCHEMA Sample TO Deborah

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...