I need a way to find all instances of CreateUser / UpdateUser / CreateOrUpdateUser across all applications regardless of the environment (Dev, QA, UAT, Prod).
We have a scenario where previously disabled user records are being enabled with a suspected timer, but we have no clear indication of where it may be running from.
This issue is brought to our attention when OutSystems informs us that we have exceeded our Licence limit for internal users.
We have gone through the timer logs, however the action of enabling the users could be hidden in any of the timers regardless of the described purpose or name.
Hi @Gavon Afonso,
You cannot find the usage of CreateUser or any actions, across the other environments. Service Studio only provides searching in one environment at a time.
As you mentioned, timers had enabled disabled user records; therefore, it would be best if you created some logs to identify the timer in issue.
Thanks,
Narendra
Thanks @Narendra Maheshwari
I went through the production environment and disabled every application that doesn't have to be active. In doing so it would seem that the timer has also been disabled. Even though I still haven't identified the application causing the trouble, I have at least stopped it from enabling more users.
Hi, You mentioned that you are unable to determine which timer is having problems.
The best option for you is to include logging for all timers that are being updated or created by users. As User Module is protected, you must include a log in the wrapper actions that includes timestamps and timer identities.
You can also look in the Systems table "Cyclic_Job" to determine which timer is currently causing this problem. Here, you can compare the dateTime on which timers were executed with those on which tables were updated.
Hope this helps!!
Hello Gavon,
For this type of issue you can add logs in suspected timer and actions. Also you can look for " Find usages in all Modules".
Also , you can add logs in CRUD operation's action to find out from which place the action is got called.
Hope this helps,
Komal
Hi @Komal Kumbhar
Adding logs would only assist if I knew where the timer was implemented. The issue is with locating the timer creating / updating users on the default user's tenant. What would be incredibly helpful is if the users module had audit logs so that we could see every application / action that access the Users CRUD.
Okay,
Have you tried to find usage of create and update user action?
At the moment you can only find the usage within a module. You would need to open the Users module itself to be able to find all usages across all applications, but you cannot open the original User module as it is protected. Opening it simply clones the module
do you know what specific users were brought back to life unwanted. Can you see the timestamps they were last updated. Can you cross check that with the times all your timers ran ?
also, are you sure the culprit timer is using the Entity Actions directly, or could it be through a wrapper action like for example User_Create from the Users module.
If so, you can find in table Espace_Reference
To make users level changes there are two other options that I can think of other than the application logic
1. Users module - Authorized users can log in and make such changes.
2. Database - Somebody having write access to database can execute the script.
Hope it helps!
Junaid