wiki:doc/OONI/Backend

Backend

The OONI Backend (or OONIB) will mainly accomplish two tasks: assisting probes in running tests (TestHelper), collecting reports from OONI-probes or third party censorship related testing systems (Reports, PacketCapture)

Test Helpers

This backend infrastructure will be distributed and will run at least the following services:

Reporting system

The reporting system will expose an HTTP RESTful API over HTTPS or HTTPO (a.k.a. HTTP/.onion). This API will allow probes that are interested in sending a report to an OONIB node to do so.

REST API spec

/report/do

Responsible for creating and updating reports.

:POST

Creates a new report with the input


* Request

          {'software_name': 'XXX',
           'software_version': 'XXX',
           'test_name': 'XXX',
           'test_version': 'XXX',
           }

          Optional:
            'test_helper': 'XXX'
            'client_ip': 'XXX'

* Response
  
  {'backend_version': 'XXX', 'report_id': 'XXX'}

Required parameters

software_name: This is a string specifying the name of the software that is submitting a report (for example "OONI-probe")

software_version: This is a string representing the version number of the software submitting the report

test_name: This is the name of the test for which the report is being submitted

test_version: This is the version of the test for which a report is being created

Optional Parameters

test_helper: specifies which test helper we are interested in using

client_ip: is required when using test helpers to allow the matching up of client submitted reports with backend generated reports in OONIB.

:PUT

Update an already existing report.

  {'report_id': 'XXX',
   'report': 'XXX'
  }

/report/pcap

This is the async pcap reporting system. It requires the client to have created a report already, but can work independently from test progress.

/testhelper/

This part of the API is used for signaling with the Test helper backend

/controlchannel/

This part of the API is used for configuring the control channel part of the backend.

Last modified 5 years ago Last modified on Nov 8, 2012, 11:59:09 AM