We just released our 22.5 Release to Forward Enterprise and boy what a surprise to have our NQE external data sources finally ready to show the world.
Very simply, this allows you to pull in data from external HTTP sources (currently we support HTTP GET) and automagically model the data in our data model explorer and our integrated development environment.
To enable this you simply need to add the resource endpoints for the HTTP API of the data you are interested in. i.e. /api/dcim/sites, configure the authentication if required and you are ready to collect.
Once you run our collection framework we will pull all of this information into our already extensive data model.
All the data available from the external resource definition is modeled in our platform and can be used to build custom evaluations across external/internal resources and unify multiple data sources into a representation that can be consumed from external systems.
Our import includes a type inference capability to determine if values can be elevated from String, Number to more specific types such as IPAddress.
Once we have added our external resource endpoints. We can run our collection to pull the external data into our platform as a JSON encoded file.
Building out our custom integration layer
Now that we have the data, we compose queries using our rich IDE capabilities. Below you can see our code completion displays all the available collections under the NetBox external source.
Because NQE is an extensible query language we can join two or more collections together by simply binding common fields leveraging the where clause.
The two where clauses in lines 8 and 9 below join the existing Forward Enterprise device collection with the NetBox devices inventory as well as joining the NetBox devices collection with sites collection allowing us to create a composite output of three independent data sources.
The final query below combines data from these three sources allowing us to take the device name, site name and manufacturer from the NetBox devices collection, Site address from the sites collection, and interface IP addresses from Forward Enterprise Data model to produce an aggregate report.
Below is the output from our IDE but you can also export this data to an Excel spreadsheet for offline review.
Hold on to your hat!, Now that we have our query committed in the NQE Library, it automatically becomes available as a custom API endpoint. Now any external systems can make a simple REST call providing just the unique queryId, (think of this like a SQL Stored Procedure) to the /api/nqe endpoint and you get back the data in JSON!
In the below example, we create an Ansible module to call the NQE API interface as a task so it can be combined with additional workflows.
With about 20 lines of code you can build an API aggregation layer for network information combining external data sources with the rich database of network configuration and state available in the Forward Enterprise platform.
Thanks to Andreas Voellmy and his team for building NQE and continuously adding these great features for our customers to leverage.
Here at Forward Networks our mission is to "Transform networks to be agile, predictable and secure" and now with external data sources we have another arrow in our quiver to accomplish that.
Way more to come.