Skip to content

Releases: NTIA/scos-sensor

1.0.0

22 Apr 20:12
d52ccc7
Compare
Choose a tag to compare

This release includes the following changes:

  • README updates
  • Bug fixes
  • Updated requirements for security vulnerabilities
  • Add host Postgres user and group for Postgres database folder permissions when deploying with Puppet
  • For the browsable API, automatically log out the user and end the session after 15 minutes
  • Adds support for OAUTH 2.0 authentication for task result callback
  • Adds support for authentication to scos-sensor API using OAUTH 2.0 JWT (JSON Web Token)
  • Removes is_private and admin_only.
  • User must be superuser or have JWT authority matching REQUIRED_ROLE setting
  • Add drivers folder for copying files into the scos-sensor API Docker container
  • Upgrade to latest pip version in scos-sensor API Docker container
  • Replaced MAX_TASK_RESULTS with MAX_DISK_USAGE which defaults to 85%
  • Refactored scos-sensor to support plugins for different actions and signal analyzers
  • Added feature to copy required driver files to specified locations in the API container
  • Added documentation on how to create required SSL certificates and JWT keys.
  • Added script for creating localhost SSL certificate for testing
  • Added height to location
  • Modified the scheduler to set the status of a task_result to 'notification_failed' in the event that the notification to the callback URL fails
  • Moved sensor definition/capabilities initialization from scos-sensor into scos-actions
  • Now using pip-tools to manage dependencies
  • Use broad version requirements for dependencies to reduce conflicts with scos plugins.
  • Updated dependencies, removed unneeded dependencies and moved some dependencies from requirements to requirements-dev
  • Added support for preselectors
  • Fixed Ubuntu version to 18.04
  • Fixed gps sync

Tasks Endpoint

25 Feb 20:29
140e988
Compare
Choose a tag to compare

The largest change in the release is that the /acquisitions endpoint, which holds data produced when the scheduler runs a task that saves data in the database, and the /results endpoint, which was created later to give some status information about each task run, have been merged into a new /tasks endpoint.

We also took this opportunity to relocate the "task queue", which provides a snapshot of upcoming tasks as seen by the scheduler, from the /status endpoint into /tasks.

/tasks/upcoming now shows the tasks queue. It now shows at most settings.MAX_TASK_QUEUE upcoming tasks.
/tasks/completed gives overview information about the number of results available for each schedule entry that you have permissions to view, and also provides a link to download a multi-recording archive of all available data for that schedule entry.
/tasks/completed/{schedule_entry_name} lists each task result and "metadata" and SigMF "archive" links under the new data key, if available.
/tasks/completed/{schedule_entry_name}/{task_id} shows the detail view for a single task result.

Multi-recording SigMF archives are now supported, which means actions can produce them. The "stepped frequency" style actions now produce a multi-recording archive to allow a different sample rate at each center frequency.

Python 3.7 or later is required

Other changes:

  • sensor definition can be loaded from a json file
  • actions can be defined in yaml (see /configs/actions/README.md)
  • m4s and IQ actions defined across 700MHz band
  • superuser (admin) account can be generated automatically from environment variables
  • django-debug-toolbar is enabled when DEBUG=true
  • object's url field name changed from "url" to "self" for consistency with RFC 42867
  • Task object (displayed in task queue at /tasks/upcoming) "time" field changed from epoch timestamp to datetime string to better align with rest of API
  • setup automatic code formatters using pre-commit. See the DEVELOPING.md file for notes
  • updated NTIA license
  • updated calibration file format
  • updated SigMF metadata
  • set clock rate based on calibration file and sample rate used
  • action callback now passes token in header
  • action callback SSL verification can be disabled with CALLBACK_SSL_VERIFICATION environment variable
  • last calibration time reported on status endpoint
  • added MAX_TASK_RESULTS environment variable to control the maximum task results for a schedule entry before oldest results will be overwritten
  • added MANAGER_FQDN and MANAGER_IP to resolve hostname for scos-manager in docker container
  • m4s actions now use flat top window for FFT
  • sensor overload reported in SigMF metadata
  • separate calibration files used for sensor and signal analyzer (usrp)
  • datetime fields now use millisecond ISO-8601 format
  • Fixed many bugs, upgraded and added tests, updated dependency versions, and much more...

Tasks Endpoint

22 Jan 17:00
Compare
Choose a tag to compare
Tasks Endpoint Pre-release
Pre-release

The largest change in the release is that the /acquisitions endpoint, which holds data produced when the scheduler runs a task that saves data in the database, and the /results endpoint, which was created later to give some status information about each task run, have been merged into a new /tasks endpoint.

We also took this opportunity to relocate the "task queue", which provides a snapshot of upcoming tasks as seen by the scheduler, from the /status endpoint into /tasks.

/tasks/upcoming now shows the tasks queue. It now shows at most settings.MAX_TASK_QUEUE upcoming tasks.
/tasks/completed gives overview information about the number of results available for each schedule entry that you have permissions to view, and also provides a link to download a multi-recording archive of all available data for that schedule entry.
/tasks/completed/{schedule_entry_name} lists each task result and "metadata" and SigMF "archive" links under the new data key, if available.
/tasks/completed/{schedule_entry_name}/{task_id} shows the detail view for a single task result.

Multi-recording SigMF archives are now supported, which means actions can produce them. The "stepped frequency" style actions now produce a multi-recording archive to allow a different sample rate at each center frequency.

Other changes:

  • sensor definition can be loaded from a yaml file
  • actions can be defined in yaml as well (see /configs/actions/README.md)
  • m4s and IQ actions defined across 700MHz band
  • superuser (admin) account can be generated automatically from environment variables
  • django-debug-toolbar is enabled when DEBUG=true
  • object's url field name changed from "url" to "self" for consistency with RFC 42867
  • Task object (displayed in task queue at /tasks/upcoming) "time" field changed from epoch timestamp to datetime string to better align with rest of API
  • setup automatic code formatters using pre-commit. See the DEVELOPING.md file for notes
  • updated NTIA license
  • updated calibration file format
  • updated SigMF metadata
  • set clock rate based on calibration file and sample rate used
  • action callback now passes token in header
  • action callback SSL verification can be disabled with CALLBACK_SSL_VERIFICATION environment variable
  • last calibration time reported on status endpoint
  • added MAX_TASK_RESULTS environment variable to control the maximum task results for a schedule entry before oldest results will be overwritten
  • added MANAGER_FQDN and MANAGER_IP to resolve hostname for scos-manager in docker container
  • m4s actions now use flat top window for FFT
  • sensor overload reported in SigMF metadata
  • separate calibration files used for sensor and signal analyzer (usrp)
  • Fixed many bugs, upgraded and added tests, updated dependency versions, and much more...

Tasks Endpoint

19 Jul 19:28
0574cab
Compare
Choose a tag to compare
Tasks Endpoint Pre-release
Pre-release

The largest change in the release is that the /acquisitions endpoint, which holds data produced when the scheduler runs a task that saves data in the database, and the /results endpoint, which was created later to give some status information about each task run, have been merged into a new /tasks endpoint.

We also took this opportunity to relocate the "task queue", which provides a snapshot of upcoming tasks as seen by the scheduler, from the /status endpoint into /tasks.

/tasks/upcoming now shows the tasks queue. It now shows at most settings.MAX_TASK_QUEUE upcoming tasks.
/tasks/completed gives overview information about the number of results available for each schedule entry that you have permissions to view, and also provides a link to download a multi-recording archive of all available data for that schedule entry.
/tasks/completed/{schedule_entry_name} lists each task result and "metadata" and SigMF "archive" links under the new data key, if available.
/tasks/completed/{schedule_entry_name}/{task_id} shows the detail view for a single task result

Multi-recording SigMF archive are now supported, which means actions can produce them. The "stepped frequency" style actions now produce multi-recording archive to allow a different sample rate at each center frequency.

Other changes:

  • sensor definition can be loaded from a yaml file
  • actions can be defined in yaml as well (see /configs/README.md)
  • m4s and IQ actions defined across 700MHz band
  • superuser (admin) account can be generated automatically from environment variables
  • django-debug-toolbar is enabled when DEBUG=true
  • object's url field name changed from "url" to "self" for consistency with RFC 42867
  • Task object (displayed in task queue at /tasks/upcoming) "time" field changed from epoch timestamp to datetime string to better align with rest of API
  • setup automatic code formatters using pre-commit. See the DEVELOPING.md file for notes
  • updated NTIA license
  • updated calibration file format
  • updated SigMF metadata
  • set clock rate based on calibration file and sample rate used
  • action callback now passes token in header
  • action callback SSL verification can be disabled with CALLBACK_SSL_VERIFICATION environment variable
  • last calibration time reported on status endpoint
  • added MAX_TASK_RESULTS environment variable to control the maximum task results for a schedule entry before oldest results will be overwritten
  • Fixed many bugs, upgraded and added tests, updates dependency version, and much more...

Tasks Endpoint

06 Jun 06:22
3eba31e
Compare
Choose a tag to compare
Tasks Endpoint Pre-release
Pre-release

The largest change in the release is that the /acquisitions endpoint, which holds data produced when the scheduler runs a task that saves data in the database, and the /results endpoint, which was created later to give some status information about each task run, have been merged into a new /tasks endpoint.

We also took this opportunity to relocate the "task queue", which provides a snapshot of upcoming tasks as seen by the scheduler, from the /status endpoint into /tasks.

/tasks/upcoming now shows the tasks queue. It now shows at most settings.MAX_TASK_QUEUE upcoming tasks.
/tasks/completed gives overview information about the number of results available for reach schedule entry that you have permissions to view, and also provides a link to download a multi-recording archive of all available data for that schedule entry.
/tasks/completed/{schedule_entry_name} lists each task result and "metadata" and SigMF "archive" links under the new data key, if available.
/tasks/completed/{schedule_entry_name}/{task_id} shows the detail view for a single task result

Multi-recording SigMF archive are now supported, which means actions can produce them. The "stepped frequency" style actions now produce multi-recording archive to allow a different sample rate at each center frequency.

Other changes:

  • sensor definition can be loaded from a yaml file
  • actions can be defined in yaml as well (see /configs/README.md)
  • superuser (admin) account can be generated automatically from environment variables
  • django-debug-toolbar is enabled when DEBUG=true
  • object's url field name changed from "url" to "self" for consistency with RFC 42867
  • Task object (displayed in task queue at /tasks/upcoming) "time" field changed from epoch timestamp to datetime string to better align with rest of API
  • setup automatic code formatters using pre-commit. See the DEVELOPING.md file fore notes
  • Fixed many bugs, upgraded and added tests, updates dependency version, and much more...

Handle more acquisitions on-disk

15 Mar 21:50
Compare
Choose a tag to compare

This release makes several modification to the API in order to better handle having a large number of acquisitions on disk. The changes include

  • Pagination enabled - any endpoint that previously returned an array of objects now returns an object containing next and previous page links, a link count, and results which holds the original array. Thank to this, loading a very large list of acquisitions will not crash the system.
GET /api/v1/schedule/

HTTP 200 OK
Allow: GET, POST, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "count": 5,
    "next": null,
    "previous": null,
    "results": [
        ...
    ]
}
  • The DRF API allows searching and sorting by various fields (using the new Filtering button)
  • /api/v1/acquisitions/ overview now includes an archive link option which will create a single multi-recording SigMF archive of all available acquisitions
  • Switches to new API documentation webpage generator so that auto-generated docs at https://ntia.github.io/scos-sensor/ are now accurate

Hotfix - fix typo: TuneResult -> TuneRequest

27 Nov 01:59
Compare
Choose a tag to compare

Issue was in the actual USRP interface code and is not hit by tests or the monitor_usrp task, so slid through. Re: issue #135.

Switch to python3 by using UHD py3 binding

26 Nov 23:23
Compare
Choose a tag to compare
  • py2 -> py3
  • gr-uhd -> UHD python binding
  • significantly reduced API docker image size
  • no high-level API changes

image

Patch fix for puppet-based build

15 Nov 00:17
Compare
Choose a tag to compare

Fix an issue where the autoheal tagged image wasn't being downloaded properly.

First stable release

13 Nov 21:48
Compare
Choose a tag to compare

This release includes many updates from almost a half year of running sensors in the lab.

Some of the many improvements include:

  • Use ISO 8601 time for more consistent time interface
  • Split schedule entry stop into absolute_stop and relative_stop, where absolute_stop takes an ISO 8601 datetime string and relative_stop is seconds after start.
  • Add lat/long to status endpoint and add ability to sync datetime and location to an onboard GPS with a new sync_gps action
  • Add active flag to schedule entry
  • Improve results endpoint
  • Add validate_only capability to schedule entry
  • Significantly reduce size and build-time of api docker container
  • Build autoheal at build-time instead of runtime to allow sensor to run without network connection
  • Add ability to apply a scale factor to incoming IQ samples
  • Retry failed acquisitions at usrp interface level
  • Significantly beefed-up unit testing
  • Make monitor_usrp task even more robust
  • Better default gain settings
  • New markdown + mathjax action algorithm descriptions
  • New stepped frequency time domain IQ capture template action
  • Security updates