Create a 'person' API endpoint
Problem
Users would like to be able to search for the people/humans associated with a device rather than search for a device and find the human associated with it. Additionally, it is not uncommon to have many devices associated with a single person. The use case of wanting to know all the devices a human/person has is much more common than searching for all the people (users) using a single device (like in a shared computer use case).
Potential solutions
From @noahtalerman: I'm thinking the first step could be a GET /fleet/human/:id endpoint (riffing) that returns all devices for a specific person. Then, you could hit an endpoint to apply the label to each device.
wanting to know all the devices a human/person has
@dherder heads up that this can be accomplished today w/ GET /hosts?query={email}. This will return all devices that are associated with the person's email.
I agree a new endpoint is easier to understand / clearer. Bringing this to feature fest.
@noahtalerman the problem is that if a user wanted to apply a label 1:1 with a "person", they cannot do that with the above approach.
the problem is that if a user wanted to apply a label 1:1 with a "person", they cannot do that with the above approach.
Here's how this could work:
- Automation hits
GET /hosts?query={email}endpoint. This returns a list of hosts for that person (end user). - For each host in the list, automation hits the
POST /hosts/:id/labelsendpoint to apply the label to each host. - The label is applied to all of the end user's hosts.
Does that work?
@noahtalerman that approach doesn't work unfortunately. I want to hit an endpoint to get all the "humans" without knowing anything about an email.
@dherder got it. Thanks!
Heads up that we didn't have room for this improvement in the design sprint we just kicked off (4.48).