Advanced topics
Dashboard
pending…
UReport
pending…
How to initialize
How to find your files
How to visualize data flow in a jupyter
Programmatically accessing files using a wid
pending…
Implementing a new UNode
pending…
How to use UNodes as remote services
How to spin up a UNode as Microservice
Urgap comes with a server that exposes UNodes as microservice. Each node has its own Port. The ports are calculated based on the number of UNode wrappers and are handled under the hood - no need to memorize any ports. However, it is therefore imperative that the microservice server and the executing client runs the same urgap version. In a nutshell, the ports are assigned based on teh sorted UNode names starting with 42000. Each Node allocates at least 10 ports with the port ending on “0” is reserved for “latest”.
Starting a server exposing the UNodes is as simple as
$ uctl run upi-server -n FilterTabularToCSV:1.0.0
How to access and trigger a UNode as Microservice
Accessing the remote urgap server is as simple as adding a unode_parameter pointing to the remote instance, e.g.
import urgap
ufiles = ["azure://dso.gsk.com/demo#data.csv"]
# Initializing a list of ufiles with a URI string
urun_dict = urgap.URunDict(. #
# Run Config that contains two main configuration sections:
parameters={
"FilterTabularToCSV:1.0.0": {
"-q": "`spectrum_id` > 3000",
},
# command line arguments for each processing node
},
unode_parameters={
"remote_url": "http://t2.eastus2.azmk8s.io",
# Remote_url is the location of the microservice ...
},
)
How to expose UNodes as MCP servers
Starting a server exposing the UNodes as mcp server as well
$ uctl run upi-server -n FilterTabularToCSV:1.0.0 --mcp <port_on_which_sse_is_served>
NOTE: we will be switching to streamable http soon.
How to use Urgap with different orchestration tools
Since urgap nodes require a URunDict, which can be serialized a json and list of uri string, any orchestration tool can be used. Sometimes, the Nodes need to be wrapped with a tiny layer of gluecode that turns the orchestration tool communciations into urgap node calls. E.g. Using ariflow, one would need to use XCOM to extract the output from the prior node as inputs for the next node and turn these then into a valid json and uri list. Here you find some helper classes we wrote.