Skip to content

Getting Data from the Database

simonwalton edited this page Sep 17, 2014 · 42 revisions

All data in the database can be retrieved from the API as JSON. In fact, all the visualizations are driven by the very same APIs (especially for aggregate information).

API giving access to all RAW data.

The pattern for retrieving data is very simple.

To get all records, the URL is formed as /data-sub/api/<data_type>/?format=json&limit=N where N can be

  • 0 to get all records (no limit)
  • N (>0) to get N records

The limit is by default 50.

To get a single record, the URL is formed as /data-sub/api/<data_type>/<id>/?format=json

Note that the slumber equivalents are

  • api.<data_type>.get(limit=N), or
  • api.<data_type>.get(id=X)

Datetime format

Some examples below feature a <datetime> placeholder. The format is:

  • YYYY-MM-DD for dates, e.g. 2014-09-16
  • YYYY-MM-DDTHH:MM:SS for datetimes, e.g. 2014-09-16T21:01:55

Note the lte and gte parts of the filter string, which are less-than-equal and greater-than-equal. You can use one or both to filter on.

Datatypes

The available data types are:

  • loginsession (Login sessions).

    • Get all (/data-sub/api/loginsession/?format=json).
    • Get a single record (/data-sub/api/loginsession/1/?format=json)
    • You can also filter through a number of parameters:
      • name - add &employee__name=Simon Walton for example
      • employee_id - add &employee__employee_id=SW001 for example
      • start_time - add one or both of &start_time__lte=<datetime> / &start_time__gte=<datetime>
      • end_time - add or both of &end_time__lte=<datetime> / &end_time__gte=<datetime>
  • employee (Employees).

    • Get all (/data-sub/api/employee/?format=json)
    • Get a single record (/data-sub/api/employee/1/?format=json)
    • You can also filter through a number of parameters:
      • name - add &name=Simon Walton for example
      • employee_id - add &employee_id=SW001 for example
      • currentEmploymentStatus - add &employee__currentEmploymentStatus=R. Options include:
        • 'U' - Uncontracted Personnel
        • 'P' - Probation period
        • 'E' - Employed
        • 'L' - On leave
        • 'R' - Resigning
        • 'C' - Contract Terminated
        • 'RE' - Retiring
        • 'RT' - Retiring
  • communications (Email/Web Communications).

    • Get all (/data-sub/api/communications/?format=json) |
    • Get a single record (/data-sub/api/communications/1/?format=json)
    • You can also filter through a number of parameters:
      • communicationType - add &communicationType=E for email &communicationType=W for web records
      • employee_id - e.g. &employee__employee_id=SW001
      • source - add &source=insider@gmail.com
      • destination - add &destination=j.dory@yahoo.com
      • time - add &time__lte=<datetime> / &time__gte=<datetime>
  • devices (Device Insertions).

    • Get all (/data-sub/api/device/?format=json).
    • Get a single record (/data-sub/api/device/1/?format=json)
    • You can also filter through a number of parameters:
      • employee_id - add &employee__employee_id=SW001 for example
      • deviceType - add &deviceType=USB for example
      • interaction_time - add &interaction_time__lte=<datetime> / &interaction_time__gte=<datetime>
  • contract (Employee Contracts).

    • Get all (/data-sub/api/contract/?format=json)
    • Get a single record (/data-sub/api/contract/1/?format=json)
    • You can also filter through a number of parameters based on the employee, for example:
      • employee_id - add &employee__employee_id=SW001
      • name - add &employee__name=SW001
      • currentEmploymentStatus - add &employee__currentEmploymentStatus=R. Options include:
        • 'U' - Uncontracted Personnel
        • 'P' - Probation period
        • 'E' - Employed
        • 'L' - On leave
        • 'R' - Resigning
        • 'C' - Contract Terminated
        • 'RE' - Retiring
        • 'RT' - Retiring
  • department (Departments).

    • Get all (/data-sub/api/department/?format=json)
    • Get a single record (/data-sub/api/department/1/?format=json)
  • employeecontact (Employee Contact Information).

    • Get all (/data-sub/api/employeecontact/?format=json)
    • Get a single record (/data-sub/api/employeecontact/1/?format=json)
    • You can also filter through a number of parameters based on the employee, for example:
      • employee_id - add &employee__employee_id=SW001
      • name - add &employee__name=SW001
  • criminal (Criminal Records).

    • Get all (/data-sub/api/employeecontact/?format=json)
    • Get a single record (/data-sub/api/employeecontact/1/?format=json)
    • You can also filter through a number of parameters based on the employee, for example:
      • employee_id - add &employee__employee_id=SW001
      • name - add &employee__name=SW001
  • oceanprofile (Departments).

    • Get all (/data-sub/api/oceanprofile/?format=json)
    • Get a single record (/data-sub/api/oceanprofile/1/?format=json)
    • You can also filter through a number of parameters based on the employee, for example:
      • employee_id - add &employee__employee_id=SW001
      • name - add &employee__name=SW001
  • darktriad (Departments).

    • Get all (/data-sub/api/darktriad/?format=json)
    • Get a single record (/data-sub/api/darktriad/1/?format=json)
    • You can also filter through a number of parameters based on the employee, for example:
      • employee_id - add &employee__employee_id=SW001
      • name - add &employee__name=SW001
  • employeestressprofile (Departments).

    • Get all (/data-sub/api/employeestressprofile/?format=json)
    • Get a single record (/data-sub/api/employeestressprofile/1/?format=json)
    • You can also filter through a number of parameters based on the employee, for example:
      • employee_id - add &employee__employee_id=SW001
      • name - add &employee__name=SW001
  • detectionmodelresult (Detection Mode Result).

    • Get all (/data-sub/api/detectionmodelresult/?format=json)
    • Get a single record (/data-sub/api/detectionmodelresult/1/?format=json)
    • You can also filter through a number of parameters, for example:
      • employee_id - add &employee__employee_id=SW001
      • name - add &employee__name=SW001
      • status - add &status=In Queue or 'Action Taken', 'In Quarantine', 'Removed' and 'In Queue'
      • reporter - add &reporter=Detection Model or some analysts name for example
      • date - add &date__lte=<datetime> / &date__gte=<datetime>

Clone this wiki locally