-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GraphQL: Support for filtering on custom fields #7598
Comments
Another way might be via a graphql query on
(There's also
It would of course be good if such a query could be pushed down to a SQL condition in postgres, rather than making Netbox retrieve all objects from the database and discard the ones which don't match. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide. |
Blocked by #9856 |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Do not attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our contributing guide. |
Blocked on #11949 |
Adding blocked until #9856 |
I've got this ready to submit a PR. If someone (@jeremystretch or @arthanson) can assign it to me, I'll submit it. I ended up making a few more changes to get this working smoothly.
Here is the link to my code at this point. |
I have the custom field filtering itself working pretty well. However, the rest of the graphql implementation is in such bad shape, I'm going a different route. Introspecting the django fitlers and models to try to infer a graphql schema at import time is very complex and requires gutting Strawberry of most of its power. I've cycled through most of the options outlined by @arthanson in Issue #17688 and come to some conclusions that there is a better way to solve this. I'll start a discussion around this. |
@jeremypng thanks for starting this discussion. I haven't had any time to dedicate to the theme of GraphQL recently and @arthanson is currently loaned out for another initiative, but I hope we can prioritize this work soon as it's clearly a pain point for NetBox users. |
This is fixed in my branch here: New query syntax for custom fields: query GetTenants {
tenant_list (filters: {custom_field_data: {path: "cust_id", lookup: {string_lookup: {exact:"YKY01"}}}}) {
id
name
custom_field_data
}
} results: {
"data": {
"tenant_list": [
{
"id": "9",
"name": "Nakatomi Corportation",
"custom_field_data": {
"cust_id": "YKY01"
}
}
]
}
} If you'll assign this to me, I'll tag this issue in the PR. |
…etbox-community#7598, Closes netbox-community#18126, Closes netbox-community#17681, Closes netbox-community#16511, Closes netbox-community#16305: GraphQL Filter Redesign
…etbox-community#7598, Closes netbox-community#18126, Closes netbox-community#17681, Closes netbox-community#16511, Closes netbox-community#16305: GraphQL Filter Redesign
@jeremypng I've tagged this for v4.3 and assigned it to you. Could you open a PR from your branch into |
NetBox version
v3.0.3
Feature type
New functionality
Proposed functionality
There doesn't seem to be a way to filter based on custom fields in the GraphQL-api.
The documentation mentions "The GraphQL API employs the same filtering logic as the UI and REST API" so one approach would be to just follow the same pattern where
cf_foo_bar
etc are exposed as arguments for the list query of an entity wherefoo_bar
is a custom field.(Reference to discussion about this: #7569 )
Use case
We have the use for this when listing tenants via the graphql API. We put the customers name in the name field but we have a custom field where we have an internal identifier that is used as a reference when linking the data in netbox up with other systems though integrations.
Database changes
No response
External dependencies
No response
The text was updated successfully, but these errors were encountered: