Retrieving Data using FusionAuth API
-
@dan Hi can I just check then that if I'm using the database search engine there isn't way of obtaining a list of users. We have a simple use case with a small number of users, perhaps only a single application and just a few roles within that. Getting a list of user ids that we could then enumerate for display and other purposes is something we would need to do. We would rather not have to upgrade the search engine to Elastic in order to do this but is this the only way?
Many thanks for your time,
Simon -
if I'm using the database search engine there isn't way of obtaining a list of users
You can definitely retrieve all users within the tenant with the database engine, just use a
queryString
of*
and the tenant header. If you only have a few users, applications and tenants, I'd suggest using additional filtering in your application. So I'd retrieve all users for a tenant and then filter by their registrations to get the application associations.An alternative would be to file a feature request to enhance the database engine functionality to give you what you need.
Does this help?
-
Hi Dan,
That is good news indeed. I think I'm just not understanding or misreading the docs https://fusionauth.io/docs/v1/tech/apis/users#search-for-users which seems to be saying use of "query" or "queryString" either only works with ES or only supports a few fields like username, email etc. I will try something like:
GET /api/user/search?queryString=*
later on today.
Many thanks for your time,
Simon
Edit: it works thanks again
-
Great! We have a PR out to revisit the search documentation which I just merged. So hopefully that will be clearer for folks in the future.
-
@dan said in Retrieving Data using FusionAuth API:
Great! We have a PR out to revisit the search documentation which I just merged. So hopefully that will be clearer for folks in the future.
That sounds great. Out of interest did you mean I could filter on applicationId in the query as well? I've tried:
http://{{dockerhost}}:{{fusionport}}/api/user/search?queryString=*&applicationId=85a03867-dccf-4882-adde-1a79aeec50df
and
http://{{dockerhost}}:{{fusionport}}/api/user/search?queryString=*®istrations.applicationId=85a03867-dccf-4882-adde-1a79aeec50df
but doesn't seem to filter the results further.
Many thanks for your time,
Simon
-
Sorry, you'll need to filter on the application by examining the results of the search api call (which should return all users) in your application code, and filtering it in business logic.
You can't do that in the FusionAuth database search (though, again, you can with elasticsearch).
-
Ok - thanks for confirming.
-
Still not really clear though but at least this Q&A forum is really resourceful
-
@kasir-barati Can you be more specific about your question?
-
@dan said in Retrieving Data using FusionAuth API:
Great! We have a PR out to revisit the search documentation which I just merged. So hopefully that will be clearer for folks in the future.
Back to this comment of yours, I meant that the first line in this screenshot kinda confused me, since I thought that you're searchQuery will be searched only for these fields and not all of the existing fields if you call this this endpoint
http://{{dockerhost}}:{{fusionport}}/api/user/search?queryString=*
And also I did not know that I can do something like
http://{{dockerhost}}:{{fusionport}}/api/user/search?queryString=tenantId:uuid