Servoy 2021 update - April 7 and 9 - Q1 Launch Webinar
Please join us for this special 2-part webinar series to introduce Servoy’s first-quarter launch (v2021.03). We’ve got big things in the works this year and we are excited to share with you!
April 7th - Business Track
Sean Devlin (product management) and Ron van der Burg (CEO) will discuss the vision behind the release and the business impact for the ISV and Enterprise app community.
April 9th - Technical Track
We’ll dive right into the details and cover the key features of this release and of course do some demos!
(Part of our tech-series? You’ll be registered already!)
Introducing Servoy’s major upgrade to NG2
Servoy’s HTML5 Client for Web & Mobile gets a major upgrade Introducing Servoy Smart Document Editor
For any rich text editing in business applications
Threaded conversations and activity streams
Data-driven templating with merge
Powerful @mentions feature
Reporting, End-user / Ad hoc reports
Email Merge
Formatted Data Export
Copy/Paste from MS Word/Google Docs Servoy’s Security Extension gets new features
Token-based authentication
Single Sign-On (SSO) for Web and Mobile apps
Wednesday April 7 & Friday April 9, 2021
8am Los Angeles (PST)
11am New York (EST)
17h Amsterdam (CET)
The webinars were very informative and looks like some exciting things to come this year.
I have tried to implement the token based sign on that you showed for single-sign-on and have run into a couple of issues.
The first is there seems to be a bug in the svySecurity.js file where it is trying to find the user given in the token and is supplying the tenant name and user name in the wrong order to the scopes.svySecurity.getUser() method. It’s line 3336 of svySecurity and I have reported it as a bug on the support system (SVYX-215).
The second is a bit more complicated. I am using a login form instead of a login solution and am struggling to work out where to put my code. I have tried putting it in the onLoad of the login form but, although I see the message saying the user was successfully logged in (after fixing the bug above), it still shows the login form for the user to enter the details. It seems to briefly flash the actual solution form before the login form shows. How can I implement the token-based login with a login form instead of a login solution?
Having done some further investigation it seems that the problem is the onShow of the login form is running AFTER the user has been logged in and the main solution form is shown and there is nowhere that I can seem to find to put the token login code that will stop the onShow from running.
Thanks for trying the token-based auth feature of 2021.03.
You say that the onShow for the login form is fired after login. I assume that you mean after login with token right?
Do you see a kind of flickering of the form ?
I suspect that you are using a loginForm property, but not a loginSolution module. If so, that is fine, but I don’t believe you can stop the loginForm from showing. I recommend that you use a loginSolution and put the loginWithToken call in the onSolutionOpen of the loginSolution
Are you saying that taken-based auth is not supported with a login form, only a login solution?
If so that’s a little disappointing as I thought that one of the previous webinars had recommended using a login form over a login solution as the login solution was really for smart clients to prevent access to the DB from the client prior to logging in.
That said though, I think I have managed to find a way around the issue even though is is a bit of a kludge. If I change the onLoad and onShow of my login form to be:
function onLoad(event) {
var namespace = 'com.myNamespace'; //$NON-NLS-1$
// Try to log in using a token if it exists
loggedIn = scopes.svySecurity.loginWithToken(namespace);
if (loggedIn) {
onLoginSuccess();
} else {
// Set the SSO token mode
scopes.svySecurity.setTokenBasedAuth(namespace, 24);
// Rest of processing for normal login form onLoad
.
.
.
}
}
function onShow(firstShow, event) {
if (security.getUserName()) {
application.showForm('myFirstForm'); //$NON-NLS-1$
} else {
.
// Normal processing if the login form is to show
.
}
}
Then everything works as expected. The only thing I can’t seem to figure out is how to get the value of firstForm from the solution. This is important because we use the same login module for multiple solutions and the firstForm is different for each one. If we could just get that value in code everything would be right with the world!
Any suggestions for getting the firstForm value would be very welcome.
Login tokens are supported for loginForm or loginSolution. The challenge with loginForm is that you can get a screen flicker because the very 1st event is the form’s onLoad.
I don’t understand the question, why you need the firstForm of the solution at runtime, because that form is always loaded once login() is called.
I need to get the first form because although this is called automatically on login it is then immediately replaced by the login form. I will get a sample solution that demonstrates the problem for you.
would Servoy not automatically go to the first form if you login?
i also think you should be able to do everything in the onload, why would you split that up between onload/onshow because looking from servoys point of view that are just 2 methods called right after each other
(but i am not 100% sure if you call login() directly in onload of a login form that we right away see that and go straight to the first form, but thats something we could improve)
I have created a case for this (SVYX-216) with an attached sample solution which demonstrates the issue. I have also made a suggestion for an improvement that could solve the issue and make token based authentication easy to use for people who don’t use the svySecurity module.
Hi Sean,
I see that with the latest release of svySecurity you have created an option for ‘sub-tenants’.
If I create a ‘Tenant’ (say a parent company) and then some ‘sub tenants’ of that tenant (say branch offices), are those sub-tenants restricted to seeing only the records for their sub-tenancy (e.g. only the data for that branch office) , or can they see all records for the tenant (parent company) ??
No it’s not quite like that. The sub tenants are not like sub orgs. There is no data filtering implied (That could already be achieved using table filter params and the IN operator)
It’s more that you can replicate roles and permissions from a “master” tenant to sub tenants. For example, you configure a tenant with a bunch of roles and permissions that you like, you don’t want to do that for every new tenant. Moreover, suppose that you then update the master tenant, say add a new role, you want that to replicate to all subordinate tenants.
sean:
Hi Rafi,
No it’s not quite like that. The sub tenants are not like sub orgs. There is no data filtering implied (That could already be achieved using table filter params and the IN operator)
Best,
Sean
Hi Sean,
thanks for the reply & clarification.
I knew the bit about roles/permissions but just wanted to clarify the other bit.
Is there going to be an update to use UUID’s as keys in the future??
Thx