Database
Both the Android and iOS platforms use a SQLite database for storing data.
Minimum SQLite version:
- Android 24 - V3.9.2
- iOS 14.0 - V3.32.3
Schema
TestDescriptor
Stores installed test descriptors: Run V2 descriptors and NewsMediaScan default descriptors. It does not store OONI default descriptors, but it will in the future.
Notes
- We store old revisions in the database, so old results can still show the old descriptor information. But we clear `nettests field of old revisions, to save space, since we no longer need them.
Result
A Result is an aggregation of measurements from a single TestDescriptor ran in a point in time.
Notes
descriptor_runId
anddescriptor_revision
are only present when the Result is related with an installed TestDescriptor. If its a Result from a default OONI descriptor, it’s linked using thedescriptor_name
instead.task_origin
possible values are:ooni-run
for manually user-started tests;autorun
for automatically started background tests.
Network
Network details of one or more Results.
Measurement
Stores the outcome of a single net-test from a TestDescriptor. If the net-test has more than
one input (web_connectivity
tests usually), a Measurement is created for each input.
Notes
- We are no longer storing the full
test_keys
in the database. We only store the keys for Performance net-tests is they are present.
Url
Stores the Url details for a web_connectivity
net-test Measurement.