Squidex and user profiles

I just found out about squidex today and am learning on how it could be used in my projects. As far as I understood so far squidex doesn’t offer the possibility for users (in a frontend) to sign-in and then interact with data. Nonetheless I would like to have admins use the UI of squidex to manage some data like “products” or something like that.

So in such a scenario, would I use squidex combined with a custom c# application that handles authorization/user profiles for me?

What happens if I have to combine data from squidex (i.e. the products) with data that is tied to a user (let’s say we would have transactions that combine products from squidex with user profiles from my custom app)? Would I store the squidex id in my custom applications database and query everything through the frontend? Or would it be better practices to connect through the backend by creating an authorized client?

Just thinking out loud and would love to hear what your ideas are and how you maybe approached this case.

Hi,

Squidex itself provides the management UI for your administrators or content creators but this UI is not meant to be used for end users.

But this does not mean that you cannot manage profiles in Squidex. For example I have developed Squidex-Identity, a sidecar application/container that works similar to Auth0, IdentityServer, or Keycloak: https://github.com/squidex/squidex-identity

Now you have multiple data sources (or collections) that need to be connected. In SQL world you would just create a reference, but in a No-SQL scenario you have to create the link with just a field. For example you could just add a field “product-Id” to your profile-schema or transaction schema. If all your data is stored in Squidex you can also create references, which has advantages like validation and that you can use it in GraphQL, but it is not necessary.

You still have one problem left now: You only have one API key. But just like with a database I would create an API Gateway that provides aggregations and ensures that only the correct data is delivered.

This means that you have 4 components:

  1. Squidex-Identity or another identity solutions which manages the allowed frontends and APIs.
  2. Your profiles in Squidex identity or the identity solution.
  3. Your products in Squidex
  4. Your API Gateway that combines profiles and products.

Everything is connected now. The end user connects to the Squidex identity, which stored the profiles in Squidex and provides access to the API Gateway. The Gateway queries products and profiles from Squidex and delivers them to the frontend.

Query profiles, login information,
allowed clients (frontends), allowed APIs (Resources)