I need to see my baserow instance users in a web table, similar to a baserow database table

My app is a baserow plugin which users will sign up for and will have its own concept of freemium. I am hence adding some additional user-related tables as django models in my plugin, such as “is_premium_user” boolean (not baserow’s premium account, but my own app’s premium level). I would like to see all the users on the baserow instance in a table, as well as that boolean premium field, along with some other usage stats that i’ll be collecting.

I noticed that as a baserow premium user, I can register my instance, and then get access to a very nice user table in the admin panel.

So I think I have 3 choices:

  1. try to extend the baserow/premium admin users table. However i’m not super clear whether this will be practical for me as i’m always instantiating/destroying baserow instances for testing. Will I need to register that instance every time ? what about my local development instance ?
  2. develop my own UI which replicates the admin/users table. My concern there is i’d like to reuse the grid view that baserow uses, enable filtering, things like that, and it’s clear to me how that’s going to be done. I’m also not a huge fan of doing a lot of UI development for something which will be an internal tool.
  3. or, have a background job which periodically sync my internal baserow users to a baserow.io hosted table using the baserow REST API. That way i’ll visualize my users very easily, and benefit from the full power of baserow database capabilities, such as filtering, all the field types , etc. My concern here is that i’ll have to essentially reconcile two databases and that’s not always fun to do with edge cases that creep up all the time (like, you get one dangling user who canceled some time ago, but they still shows up). It’s what I’ve been doing with my SaaS <-> CRM in Airtable and I was hoping to save myself the work. But on the upside, having the full power of baserow without having to do any GUI development is very attractive.

Is there another option I may have missed ? Let me know if what i’m asking about is not clear.

I’m going to go with 3. it’s the fastest way of doing what I want, and the UI will be very flexible, particularly with filtering capabilities. The code to reconcile is not extremely complex, and I’d rather write this than UI code (since after all, I chose baserow as a platform to minimize the amount of frontend code I have to write).

1 Like