Go to file
2024-06-04 16:03:15 +02:00
api Added an endpoint for enqueueing arec recorder jobs for processing 2024-06-04 16:03:15 +02:00
.gitignore Added requirements.txt for ease of python installation 2021-11-24 10:31:50 +01:00
application.wsgi A bit of api refactoring for more paths, and daisy now returns usernames 2020-12-11 17:06:03 +01:00
config.ini.example added password check for DELETE method 2021-10-27 10:57:14 +02:00
db.sql Switched mysql driver in hope of better stability. 2021-03-12 13:58:47 +01:00
LICENSE Add 'LICENSE' 2020-12-04 12:43:41 +01:00
README.md Added /notify/mediasite and /notify/default endpoints and updated the documentation 2023-03-30 15:38:56 +02:00
requirements.txt Fixed an incorrect dependency 2021-11-24 14:02:25 +01:00

DSV play storage

This application has two jobs:

  • handle new uploads and places them in the daemon's processing queue.
  • serve presentation files after verifying valid access rights

In order for file serving to work, the hosting web server must support the X-Sendfile header.

Python dependencies

The application runs on python3. Its dependencies require python development libraries to work, e.g. python3-dev on Debian. Dependencies are listed in requirements.txt.

The directory ./venv is exempted from git for ease of virtualenv use.

Setup

The application requires a database and two writable directories. A dump of the schema is available for import from ./db.sql.

The required writable directories are ./queue and ./storage. Both may be symbolic links.

Remaining settings should be set in ./config.ini. The format is documented in ./config.ini.example.

API reference

The API always returns JSON objects on successful requests unless otherwise noted.

/presentation

GET a list of all available presentation IDs.

/presentation/{{PACKAGEID}}

GET the package information for PACKAGEID.

DELETE PACKAGEID. Requires authentication as configured in config.ini.

This should change to a bearer token to align with other authenticated resources.

/presentation/{{PACKAGEID}}/{{PATH}}[?token={{TOKEN}}]

GET the file at PATH in PACKAGEID. TOKEN is required for all files except images.

/notify

Deprecated in favor of the origin-specific subpaths default, mediasite and cattura.

GET a brief description of the incoming package format.

POST a package to be processed.

/notify/hold

Same as /notify, but packages submitted this way are put on hold.

/notify/default

POST a package to be processed. The request body should be a package specification as documented by the play daemon.

/notify/mediasite

POST a package to be processed. The request body should be a package specification in the mediasite package format.

/notify/cattura

POST a package to be processed from a cattura recorder webhook.

/status/daemon

GET the processing daemon status. Returns a single boolean field, running.

/status/queue

GET a list of all items in the processing queue. The items are sorted in the order they will be processed. Items on hold are not shown.