go to post Eduard Lebedyuk · Jan 18, 2019 You can store salt in the same table, it should just be unique (autogenerated) for each password.There's a good explanation why that's enough, here.
go to post Eduard Lebedyuk · Jan 16, 2019 Do not store passwords.Store password hashes + Unique salt. When entered hashCheck $system.Encryption class for various hashing algorithms.The only case where you need to store passwords is when they are used to authenticate Cache server against external systems.In that case use the same $system.Encryption class to encrypt them for storage.we're talking of 200-300+ passwords here.Per user?
go to post Eduard Lebedyuk · Jan 16, 2019 Is the "bi login" hosted on the same Cache server?If so you'll need to add /dsw and /mdx2json to the same group/same cookie path as your app and you should be all set.
go to post Eduard Lebedyuk · Jan 12, 2019 You could (and probably should) separate these parts of routines as separate methods or at least subroutines.
go to post Eduard Lebedyuk · Jan 12, 2019 And if you don't have labels, adding them wouldn't break existing code.For example you have this routine: TEST write 1 write 2 write 3 quit It, when called would output >do ^TEST 123 If you then add a label somewhere: TEST write 1 MYLABEL write 2 write 3 quit The routine would wok the same on previous calls: >do ^TEST 123 But you'll also be able to call only the label: >do MYLABEL^TEST 23
go to post Eduard Lebedyuk · Jan 11, 2019 Can you ballpark the workload?If it's not too big, I think the easiest solution would be just writing ObjectScript method that calculates what you need.
go to post Eduard Lebedyuk · Jan 10, 2019 tFullValue should be always equal to tNumber regardless of tNumber value. write $l(2.1) >3
go to post Eduard Lebedyuk · Jan 10, 2019 I'm curious about this set tFullValue = $EXTRACT(tNumber,1,$length(tNumber)) in what cases tFullValue is not equal to tNumber? Also after 2014 you can use * to denote last char like this: set tFullValue = $EXTRACT(tNumber,1,*)
go to post Eduard Lebedyuk · Jan 10, 2019 Do you want the data to be accessible by anyone who can view the page?
go to post Eduard Lebedyuk · Jan 9, 2019 There's no default function to do it, but you can easily develop your own custom function. There's $IsValidNum ObjectScript function, which could be used to check that variable is a number. So something like this should work: /// Functions to use in rule definitions. Class Custom.Functions Extends Ens.Rule.FunctionSet { /// Returns 1 if a string is a number, 0 otherwise ClassMethod IsValidNumber(string As %String) As %Boolean [ CodeMode = expression, Final ] { $ISVALIDNUM(string) } }
go to post Eduard Lebedyuk · Jan 9, 2019 SendRequestAsync is available in all Ensemble Hosts (Services, Operations, Processes).For Operations and Services the signature is: Method SendRequestAsync(pTargetDispatchName As %String, pRequest As %Library.Persistent, pDescription As %String = "") As %Status And for Processes the signature is: Method SendRequestAsync(pTargetDispatchName As %String, pRequest As Request, pResponseRequired As %Boolean = 1, pCompletionKey As %String = "", pDescription As %String = "") As %Status
go to post Eduard Lebedyuk · Jan 9, 2019 All possible job states (from EnsConstrains.inc):$$$eJobStatusStarting$$$eJobStatusRegistered$$$eJobStatusVisiting$$$eJobStatusRunning$$$eJobStatusDeQueuing$$$eJobStatusQuiescent$$$eJobStatusError$$$eJobStatusHalted$$$eJobStatusTerminated
go to post Eduard Lebedyuk · Jan 8, 2019 JGW (and therefore JBH) could be run as a separate container with TCP/IP interaction.
go to post Eduard Lebedyuk · Jan 8, 2019 In the future please don't combine separate questions into one post.I am looking for a way to detimerine if a certain namespace is ensemble enabled.To check that some <namespace> has Ensemble enabled call: write ##class(%EnsembleMgr).IsEnsembleNamespace(<namespace>) where <namespace> defaults to current namespace. Log some information to the console log file with a certain error level. %SYS.System class provides the WriteToConsoleLog method, which you can use to write to the cconsole.log file.