Skip to main content

Netboard Service

The test designer’s Netboard service is an HTTP service that allows you to store and retrieve named data. The stored data is deleted after 1 hour and since it each entry is named, then if another set of key/values comes with the same name, then the previous value if existing, will get replaced with the new value. The concept is similar to a temporal hash map. So a Netboard is basically a named set of key/value pairs that are stored for 1 hour and then automatically cleared to avoid memory leaks.

Netboard Calls

To make a Netboard call take the AIQ server address but with port 9090, as this service is hosted in the Test Designer server. Example:

http://localhost:9090/ds/dyn/Netboard/<command>

create

Parameters: board

Description: creates an empty net board with id "395". This call is optional as the first put will create the named board if it does not exist.

http://localhost:9090/ds/dyn/Netboard/create?board=staging

put - POST

Parameters: board, key,value

Description: store into the “staging” Netboard a key/value pair data with key = “homepage“ and a JSON string as a value. If a board with the provided key does not exist, a new board is created automatically and the data gets added.

http://localhost:9090/ds/dyn/Netboard/put?board=staging&key=id&value=623465387

get

Parameters: board, key

Description: returns a String with the value for an entry named key in the board provided.

http://localhost:9090/ds/dyn/Netboard/get?board=staging&key=account

containsKey

Parameters: board, key

Description: returns true if the provided board contains an entry with the provided key.

http://localhost:9090/ds/dyn/Netboard/containsKey?board=staging&key=account

getKeys

Parameters: board

Description: returns a JSON string with all keys defined in the board named “staging“

isEmpty

Parameters: board

Description: returns true if the board is empty

clearBoard

Parameters: board

Description: clear all the contents of the board

deleteBoard

Parameters: board

Description: remove the Netboard

getBoards

Parameters: none

Description: returns a JSON string with all the currently existing board names.

Example Test Designer JS Script

Segment.com Integration using the Netboard service

A set of entry points has been implemented along with standard Netboard calls to implement a webhook integration that allows automatic store of http://segment.com events. Segment.com events have JSON data. Need to configure any of the below entry points as webhooks inside http://segment.com configurations. The data received from those entry points will be processed in a way that received events data will be automatically named and put in corresponding Netboards.

_setDomain("http://localhost:9090");
get("/ds/dyn/Netboard/resetBoards");
get("/ds/dyn/Netboard/create?board=hitrecord");
get("/ds/dyn/Netboard/put?board=hitrecord&key=State&value=Alaska");
get("/ds/dyn/Netboard/put?board=hitrecord&key=Country&value=USA");
var $state = get("/ds/dyn/Netboard/get?board=hitrecord&key=State").getDataString();
log($state);
assertEquals($state,"Alaska");
var $contains = get("/ds/dyn/Netboard/containsKey?board=hitrecord&key=State").getDataString();
log($contains);
assertTrue($contains);
var $fields = JSON.parse(get("/ds/dyn/Netboard/getKeys?board=hitrecord").getDataString());
log($fields[0]);
assertEquals("State",$fields[0]);
log($fields[1]);
assertEquals("Country",$fields[1]);
var $isEmpty = get("/ds/dyn/Netboard/isEmpty?board=hitrecord").getDataString();
log("isEmpty: "+$isEmpty)
assertTrue($isEmpty=="false");
get("/ds/dyn/Netboard/create?board=costa%20rica");
get("/ds/dyn/Netboard/put?board=costa%20rica&key=State&value=San%20Jose");
get("/ds/dyn/Netboard/put?board=costa%20rica&key=Country&value=Costa%20Rica");
var $boards = JSON.parse(get("/ds/dyn/Netboard/getBoards").getDataString());
log($boards[0]);
assertEquals("hitrecord",$boards[0]);
assertEquals("costa rica",$boards[1]);
var $text = get("/ds/dyn/Netboard/removeOldEntries").getDataString();
log($text);
assertContains($text,"Removing data from Netboard older than");
get("/ds/dyn/Netboard/clearBoard?board=hitrecord");
$fields = JSON.parse(get("/ds/dyn/Netboard/getKeys?board=hitrecord").getDataString());
log($fields.length);
assertEquals(0,$fields.length);
get("/ds/dyn/Netboard/deleteBoard?board=hitrecord");
$fields = JSON.parse(get("/ds/dyn/Netboard/getBoards").getDataString());
log($fields.length);
assertEquals(1,$fields.length);
get("/ds/dyn/Netboard/deleteBoard?board=costa%20rica");
$fields = JSON.parse(get("/ds/dyn/Netboard/getBoards").getDataString());
log($fields.length);
assertEquals(0,$fields.length);

Segment.com Entry points

There are 5 independent entry points, each one capable of admin many Netboard.

    <aiq server dns>:9090/ds/dyn/Netboard/aiq01

    <aiq server dns>:9090/ds/dyn/Netboard/aiq02

    <aiq server dns>:9090/ds/dyn/Netboard/aiq03

    <aiq server dns>:9090/ds/dyn/Netboard/aiq04

    <aiq server dns>:9090/ds/dyn/Netboard/aiq05

    Once the webhook is configured with one of the above entry points the data from the incoming http://segment.com event will be available to be verified using normal get Netboard calls.


    Last updated: July 28, 2023

    If you have any feedback on this topic, please contact us at documentation@appvance.ai