go to post Sergei Shutov · Mar 1, 2022 Hi Tom, You need to contact TRC for this one, since it will depend slightly on the Version and Edition you are using, and will most probably involve some custom code to map your AD role structure into TrakCare's security groups. They will be able to guide you in the right direction. CheersSergei ShutovBanksia Globalhttps://banksiaglobal.com
go to post Sergei Shutov · Nov 14, 2021 You can try using DBF utility from my old Cache-based framework: https://github.com/logist/p6/blob/master/classes/p6/Dbf.xml It has ReadFile/ReadStream & WriteFile/WriteStream methods Usage: set sc=##class(p6.Dbf).WriteFile(file,array) sc - execution status %Status file-file name array - string containing a name of global with data, for example: ^asd("asdf"), ^CacheTemp($job,"dbf") this array has to provide the following structure ...,"header")=<header> format $list($list(var1,length1,type1,dec1),...,$list(varN,lengthN,typeN,decN)); type is D for date N for number anything else for string ...,"row",<row number>)=<data> data format $list(var1,...,varN)
go to post Sergei Shutov · Nov 9, 2021 Hi Evgeny, this is very much dependent on how you log in :) If you are using "basic auth" method directly from browser (where it will prompt you for login/password once), you can change username by using "username@" in address bar, for example http://userB@127.0.0.1/my/api/ Hope this helps!=Sergei ShutovBanksia Global | https://banksiaglobal.com
go to post Sergei Shutov · Oct 26, 2021 The one I posted above with hs256 did work, I didn't try RSA ones. Can you post your code that produces a wrong signature?
go to post Sergei Shutov · Oct 21, 2021 Can you please post your docker-compose.yml? Or at least part relevant to IRIS
go to post Sergei Shutov · Oct 19, 2021 If you are talking about header (first part of 3-part JWT token) ObjectToJWT should generate correct values for you with alg, typ and x5t values set correctly. If you are talking about payload (second part), I construct it after // Define token payload line in the example above and then pass it as 2nd argument to ObjectToJWT - you can add any data you need there.
go to post Sergei Shutov · Oct 15, 2021 Well in case of $classmethod you don't need to use an indirection at all to achieve the same result. I would avoid using indirection if at all possible.
go to post Sergei Shutov · Oct 15, 2021 In your case sigalg will be RS256 instead of HS256 and you'll need to call ##class(%OAuth2.JWKS).AddX509 instead of ##class(%OAuth2.JWKS).AddOct to use your private RSA keys. It's definitely a bit of a challenge, but should be doable!
go to post Sergei Shutov · Oct 14, 2021 All classes are ProcedureBlock by default, you need to manually set [Not ProcedureBlock] if you don't want to compile classes to Procedures. It's highly recommended to use ProcedureBlock though.
go to post Sergei Shutov · Oct 14, 2021 This is what I do to generate JWTs. ClassMethod GetJWT(username As %String) As %String { // Calculate the issued at and expiration dates set iat = ##class(%OAuth2.Utils).TimeInSeconds($ztimestamp,0) set exp = ##class(%OAuth2.Utils).TimeInSeconds($ztimestamp,3600*24*7) // Define token payload set payload = { "iat": (iat), "iss": "zpmhub", "exp": (exp), "user": (username) } set secret=$get(^JWTSecret) if secret="" { set secret=##class(%PopulateUtils).StringMin(64,64) set secret=$tr($p($SYSTEM.Encryption.Base64Encode(secret,1),"=",1),"+/","-_") set ^JWTSecret=secret } set JOSE("sigalg")="HS256" do ##class(%OAuth2.JWKS).AddOct("HS256",secret,.RemotePrivate) do ##class(%OAuth2.JWT).ObjectToJWT(.JOSE,payload,,.RemotePrivate,.jwt) quit jwt }
go to post Sergei Shutov · Oct 12, 2021 Hi Muhammad, You should look at csvgen package by @Evgeny Shvarov https://github.com/evshvarov/csvgen There are a few examples of importing data from GitHub on the home page. You can have a look at the source code to see how it's done if you need more flexibility.
go to post Sergei Shutov · Sep 16, 2021 Hi Sai Sai, One thing you might look into in regards to distribution and deployment is ZPM Package Manager https://github.com/intersystems-community/zpm . It's still under active development, but is already very usable at the moment, you can use it with a self-hosted open source private registry https://github.com/intersystems-community/zpm-registry/ and my consultancy is currently developing a commercial hosted version which will be announced at Virtual Summit next month. There is an example of an Interoperability packaging at GitHub: https://github.com/intersystems-community/iris-interoperability-template In terms of deployment, unless you have MASSIVE productions, I would recommend to deploy the whole thing at once even if not everything has changed -- it's just a lot less moving parts and options for errors this way, and you can test deployments on your test server as many times as you like. Hope this helps! Sergei ShutovManaging Director, Banksia Globalhttps://banksiaglobal.com
go to post Sergei Shutov · Sep 16, 2021 This is how I do it, instead of COPY just download from GitHub - and then you can do OBJ.Load RUN wget https://github.com/intersystems-community/zpm/releases/download/v0.3.0/z...
go to post Sergei Shutov · Jul 7, 2021 You can use %IGNOREINDEX and %NOINDEX keywords, have a look here in documentation https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...
go to post Sergei Shutov · Jul 6, 2021 Did you try to rebuild indices and purge cached queries? Also, have a look at the execution plan in the Management portal -- it will tell you which indices it uses and how it builds a result.
go to post Sergei Shutov · Jul 6, 2021 Try this way K S $ZT="^%ET" s id="{id}" set httprequest = ##class(%Net.HttpRequest).%New() set httprequest.SSLConfiguration = "HTTPS" set httprequest.Server = "anypoint.mulesoft.com" /// CHANGED set httprequest.Https = 1 set httprequest.ContentType="json"set sc=httprequest.SetHeader("Connection","close")set status = httprequest.Get("/mocking/api/v1/links/03a74865-d7fb-4318-a310-7ad2b95361f6/v1/receivables/"_id") /// CHANGEDif status {s response=httprequest.HttpResponse //IS JUST RETURNING PAGE do response.Data.Rewind() do { write response.Data.Read() } while 'response.Data.AtEnd } quit
go to post Sergei Shutov · Jul 5, 2021 I believe this error happen because you are trying to execute this code in the class method, not instance method. Can you please provide a full class definition and how you are executing the test?
go to post Sergei Shutov · May 20, 2021 Hi Ishan, Write an email from your work address to support@intersystems.com and ask for an access to TRC