-
Notifications
You must be signed in to change notification settings - Fork 50
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
Issue #917 - Add support for :: notation in GraphQL interface #918
Conversation
@mxsasha I don't think there is anything I can do about that CI error because it relates to a Google API auth failure? 🤷 |
Yes indeed, this is not you. I will look into that and your feature some time this week :) |
Here are some test results from my pull request... I am running irrd locally and have import data from RIPE and RADB: I have found an AS-SET which exists in both IRR DBs. Here I query for the AS-SET with no source specified: Here I query with only RIPE specified, we can see the same prefixes are returned: Next I query with only RADB specified, now we can see that some prefixes are missing: Taking one of the missing prefixes, we can check that it is missing because that route object came from the RIPE DB and doesn't exist in RADB (only a less specific):
Finally if I query and set the source for the root object only (the AS-SET) it is pulled from RADB but all prefixes are returned because the recursive resolution uses all specified sources (which in this case was none, meaning all sources): |
Awesome, thanks! |
I had been reading your ideas on RIPE routing-wg too, I agree this is a problem with resolving route/as-sets. I am wondering if this is the best design. One of the ideas of structured queries and data in GraphQL was to get rid of magic strings, separators and have clear structured queries instead of The recursiveSetMembers already returns each root object, with a different rootSource. So you can already pick which one you want, though there is some overhead in returning all of them. For asSetPrefixes, there is no such option. Perhaps the cleanest option is to define a new input type for RPSL pk + source, and have the parameter to asSetPrefixes (and maybe recursiveSetMembers) as a union type of that and String. That has the feature you want, backwards compatibility, and fits with GraphQL style. I have never tried that, but can play with it. (doc build fixed btw) |
@mxsasha Firstly, sorry or the delay in my response, that was not intentional, just been very busy with the day job. Secondly, thanks for reviewing the PR and providing this feedback. What you have said totally makes sense. I will see if I can raise a new PR in the next few weeks (giving a wide window there because Easter is coming up!). Just on a side note, do you have any interest in a PR to add a Dockerfile + docker-compose file? I spent way more time getting IRRd running than actually writing code. Any testing requires IRRd + Redis + Postgress + some IRR data. I ended up creating a Dockerfile for IRRd and docker-compose file which runs IRRd + Redis + Postgress and imports some IRR data from RIPE. I can raise another PR for that if you're interested. |
Sounds good, no rush, I am not waiting for this or anything 👍🏻
Yes, I think that would be great. Could help for CI and for general test deployments. Recently did this for another project and now I'm a fan. |
Adding support for "::" notation in AS-SET names so that a source database can be specified for the root AS-SET object only.
This is to resolve the issue described in #917.
Please let me know what I can do to help.