Hi!
I’m in for a random coffee chat ☕
Location: UK
Availability: 8:00 - 14:00 GMT/UTC most days.
Happy to chat about: Getting to know others, IRIS development, Fantasy/Sci-Fi books, or board games.
- Log in to post comments
Hi!
I’m in for a random coffee chat ☕
Location: UK
Availability: 8:00 - 14:00 GMT/UTC most days.
Happy to chat about: Getting to know others, IRIS development, Fantasy/Sci-Fi books, or board games.
.jpg)
Just lights for now. Ornaments will go on when my oldest gets home from university this week.
I have been working on this same thing recently and kept running into the same problem. If you are still having issues, set the MechanismList property of the %Net.Authenticator instance to XOAUTH2 to limit the SASL authentication types the Start method of the authenticator instance looks for when it gets an AUTH response from the SMTP server.
set smtp = ##class(%Net.SMTP).%New()
set auth = ##class(%Net.Authenticator).%New()
set auth.ServiceName = "smtp"set auth.UserName = "frodob@theshire.onmicrosoft.com"set auth.MechanismList = "XOAUTH2"set auth.AccessToken = accessToken
set smtp.authenticator=auth
ClassMethod Opposite(s1 As %String = "", s2 As %String = "") As %Boolean
{
write s1_", "_s2_" --> "
if (($l(s1) '= $l(s2)) || (s1 = "") || (s1'?.1A.A) || (s2'?.1A.A)) { return 0 }
for cnt=1:1:$l(s1) {
if (($zabs($a($e(s1,cnt)) - $a($e(s2,cnt))) '= 32)) { return 0 }
}
return 1
}You can use the Create method of the Security.Users class to do that. Bear in mind that class is in %SYS. Documentation for Create is here: Security.Users.
set$nameSpace = "%SYS"if '##class(Security.Users).Exists("testuser") {
// Set propertiesset props("Enabled")=1set props("Name")=testuser
set props("FullName")="Test User"set props("SuperUser")=0set props("NameSpace")="USER"set props("Roles")="%Developer,%Operator,TestRole"set props("Password")=userpassword
set props("PasswordNeverExpires")=0set props("ChangePassword")=0set props("Routine")=""set props("ExpirationDate")=""set props("Flags")=1set props("EmailAddress")=""set status=##class(Security.Users).Create(user, .props)
if$$$ISERR(status) {
do$system.Status.DecomposeStatus(status, .err)
}
}We have used Datadog to produce some customer facing dashboards that provide an quick view of general server/application health as well as current license usage, number of Cache process, etc. Additional internal only dashboards allow customer support staff that don't have access to the mgmt portal to identify problematic queries, users with high latency, and other application specific issues which they can then research further if necessary. This is done via a %CSP.Page class that is is configured as the URL in the Datadog configuration. Documentation for that Datadog configuration is here.
In COS create an instance of the License class and run the GetSample method to fetch the current license info. You can then reference the properties directly.
set ans = ##class(%Monitor.System.License).%New() set sc = ans.GetSample() write ans.AvailableDist
Kevin,
Those appear to be application specific globals. I would suggest reaching out to the support team for the application to request additional information on what those globals are used for.