Managing Users and Apps

Is there a demo app for actually connecting to and managing users?

Can we use the Sphinx server as an xdata server if we need to write this or do I need to write another server app?

If my XData server is multitenant, what would be the best way to implement this? It's not a case of giving a user a choice as they will only have access to one (unless they are a system admin)?

Just trying to get my head around this.

There is not a demo yet, but we will work on that. Not sure what do you mean by "connecting" users?
In any case, the core interface is IUserManager which provides methods for creating, deleting users, changing password, etc. I'm not sure if that's what you are asking for?

Yes, Sphinx is just a regular XData server (Sparkle module) with specific endpoints added to it.

Sphinx is also multitenant, and the tenancy is chosen automatically via the tenant middleware.
You just add a tenant middleware to your Sphinx server, fill in one or more properties the should define the tenant, and you're good to go.

If you want to provide more details about your setup I can try to guide you out.

Thanks for the response @wlandgraf, apologies for not responding sooner - I had, for once, taken a holiday!

I have several WebCore/Xdata apps that run with a couple of clients on each, so at the moment they are running as standalone (so WebCore/Xdata/Database are all isolated). I want to move to using a multi-tenant approach (with each client having a separate database) as we are expecting more users (particularly for one app) over the next few months.

My thoughts were to use a Sphinx server with a centralised database and this would return the URL that the client should connect to (or a list if there are options - not often, usually inhouse staff here).

Reading your response above however, would it be best to have a multi-tenanted Sphinx server with the auth tables in each client database? Although that wouldn't provide single sign on - although that's not a huge concern.

Thanks for your help.


Hi @Weetch_Russell. One of benefits of TMS Sphinx is that you can have a single-signor server, completely separated from your application.

So yes, you can do that: have a single Sphinx server, authenticating all your users and applications, and have all data saved in a single database, which doesn't need to be the same as your application database. You can return the tenant id and/or a list of servers in the access token generated by Sphinx, for example.