Project

General

Profile

Feature #95

Working GDP RESTful Interface needed for Signpost

Added by Anonymous over 2 years ago. Updated 12 months ago.

Status:
Closed
Priority:
High
Assignee:
Category:
-
Start date:
02/24/2017
Due date:
% Done:

100%


Description

We need a working RESTful interface to the GDP for the Signpost.

My understanding is that there was a RESTful interface at one time, but I'm not sure if it has been maintained.

Josh recently hacked together a RESTful interface that executes command-line scripts.

As far as the details of Josh's work, searching the signpost repo for gdp via https://github.com/lab11/signpost/search?utf8=%E2%9C%93&q=gdp yields some hits, I suggest starting with https://github.com/lab11/signpost/search?utf8=%E2%9C%93&q=gdp

https://github.com/lab11/signpost/tree/master/software/receiver/debug_radio#appending-to-gdp says:

Appending to GDP

To perform GDP appends the signpost_networking_post URL must be set to

gdp.lab11.eecs.umich.edu/gdp/v1//append

If the log does not already exist, signpost-debug-radio will create the log for you before appending data. The signpost-debug-radio script will print 1) whether the log existed and 2) if the append was successful.

Who wants to take charge of this feature request?

Also, could someone add Beth Osyk beth@berkeley.edu as a watcher to this bug?

History

#1 Updated by Eric Allman about 2 years ago

  • Assignee set to Rick Pratt

#2 Updated by Anonymous about 2 years ago

Documentation for the RESTful interface may be found in the GDP repo as gdp/doc/gdp-rest-interface.html.

One open issue is that we also need to be able to do subscription.

We could do Long Polling (https://en.wikipedia.org/wiki/Push_technology#Long_polling)

Or, we could use a WebSockets interface. There is a WebSocketClient accessor (https://www.icyphy.org/accessors/library/index.html?accessor=net.WebSocketClient)

#3 Updated by Rick Pratt about 2 years ago

  • % Done changed from 0 to 90

Documentation for the RESTful interface Draft 8 may be found in the GDP repo as gdp/doc/gdp-rest-interface.html.

Summary

RESTful Interface Updated

RESTful GCL create

  • HTTP PUT and POST methods on /gdp/v1/gcl
  • Creation parameters within HTML page, JSON format
  • “external-name” required, whether PUT (specified name) or POST (random generated name) method

RESTful GCL append record

  • HTTP POST method on /gdp/v1/gcl/<gcl_name>
  • Append payload within HTML page, JSON format advised

RESTful GCL retrieve record

  • HTTP GET method on /gdp/v1/gcl/<gcl_name>?<query>

RESTful Interface Deployed

  • Basic client authentication and HTTPS (for Signpost)

https://gdp-rest-01.eecs.berkeley.edu/
Insecure http:// prefix produces no response

  • Clients must authenticate (ask for a username:password)
  • Server owns GCL writer keys on behalf of clients
  • Any authenticated client can act on any owned GCL, for now
  • Per client access control possible, if desired

Open Item:

  • GET with subscribe-like functionality, even if not completely RESTful

#4 Updated by Eric Allman about 2 years ago

  • Status changed from New to In Progress

#5 Updated by Rick Pratt about 2 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100

The Virtual Instrumentation requirement (read subscription service) is now New Issue 108 with an evaluation attached.

#6 Updated by Eric Allman 12 months ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF