Data Structure

The data entities used in the Data Tracker:

  • Order

  • Dataset

  • Collection

  • User

  • Log

Terminology

  • Properties:

    • Properties in the documents for the datatype/collection.

  • Inherited properties:

    • Properties that are either calculated or retrieved from documents in other collection(s).

    • Included when the entity is requested via API, but is not part of the entry in the database.

Order

  • Requires special permission to access (DATA_EDIT)

  • May only be accessed and modified by users listed in editors or users with DATA_MANAGEMENT.

  • Can have any number of associated datasets.

  • Deleting an order will delete all associated datasets.

Summary

Property

Description

Default

Public

_id

UUID of the Entry

Set by system

Hidden

title

Title of the Entry

Must be non-empty

Hidden

description

Description in markdown

Empty

Hidden

generators

List of users who generated data

Empty

Visible (via dataset)

authors

List of users responsible for e.g. samples (e.g PI)

Empty

Visible (via dataset)

organisation

User who is data controller

Empty

Visible (via dataset)

editors

List of users who can edit the order and datasets

Entry creator

Hidden

datasets

List of associated datasets

Empty

Visible (via dataset)

tags

Text-based tags for metadata

Empty

Hidden

properties

Key-value pairs for metadata

Empty

Hidden

Properties

_id
  • UUID of the entry.

  • Set by the system upon entry creation, never modified.

title
  • Entry title.

  • Must be non-empty.

description
  • Entry description.

  • May use markdown for formatting.

  • Default: Empty

generators
  • List of users.

  • Corresponds to e.g. the facility or people generating the data (from samples).

  • May be shown openly on all associated datasets.

    • Access may be limited by other settings.

  • Default: Empty

authors
  • List of users.

  • Corresponds to e.g. the researcher who leads the project the samples came from.

  • May be shown openly on all associated datasets.

    • Access may be limited by other settings.

  • Default: Empty

organisation
  • A single user who is the data controller for the datasets generated from the order (e.g. a University).

  • Default: Empty

editors
  • List of users.

  • Users that may edit the order and dataset entries. May add datasets to an order.

  • Default: The user that created the entry.

datasets
  • List of datasets associated to the order.

  • Cannot be modified directly but must be modified through specialised means.

  • Default: Empty

tags
  • Text strings for metadata

  • Default: Empty

properties
  • Key-value pairs for metadata

  • Default: Empty

Dataset

  • Dataset generated by e.g. a facility.

  • A dataset must be associated with one order.

  • Multiple datasets may be associated with the same order.

  • The association to a specific order cannot be changed.

    • Once associated with an order, it will stay so.

  • Can have identifier(s) (e.g. DOIs).

  • Will use some properties from its order:

    • generators

    • authors

    • organisation

    • editors

Summary

Property

Description

Default

Public

_id

UUID of the Entry

Set by system

Visible

title

Title of the Entry

Must be non-empty

Visible

description

Description in markdown

Empty

Visible

tags

Text-based tags for metadata

Empty

Visible

properties

Key-value pairs for metadata

Empty

Visible

Properties

_id
  • UUID of the entry.

  • Set by the system upon entry creation, never modified.

title
  • Entry title.

  • Must be non-empty.

description
  • Entry description.

  • May use markdown for formatting.

  • Default: Empty

tags
  • Text strings for metadata

  • Default: Empty

properties
  • Key-value pairs for metadata

  • Default: Empty

Inherited properties

related
  • datasets from order, except the current dataset.

collections
  • List of collections containing the current dataset in datasets.

generators
  • generators from order.

authors
  • authors from order.

organisation
  • organisation from order.

editors
  • editors from order (only for DATA_MANAGEMENT and editors)

Collection

  • May be created by any users.

  • Can have multiple editors.

  • Can have identifiers.

  • Provides a way of grouping datasets before publication.

  • Should aid requesting a DOI from Figshare for the collection.

Summary

Property

Description

Default

Public

_id

UUID of the Entry

Set by system

Visible

title

Title of the Entry

Must be non-empty

Visible

datasets

The associated datasets

Empty

Visible

description

Description in markdown

Empty

Visible

tags

Text-based tags for metadata

Empty

Visible

properties

Key-value pairs for metadata

Empty

Visible

editors

List of users who can edit the collection

Entry creator

Hidden

Properties

_id
  • UUID of the collection.

  • Set by the system upon entry creation, never modified.

title
  • Entry title.

  • Must be non-empty.

description
  • Entry description.

  • May use markdown for formatting.

  • Default: Empty

tags
  • Text strings for metadata

  • Default: Empty

properties
  • Key-value pairs for metadata

  • Default: Empty

editors
  • List of users.

  • Users that may edit the collection.

    • May add datasets to an order.

  • Default: The user that created the entry.

User

  • Everyone using the system is a user.

    • Including facilities, organisations …

  • Login via e.g. Elixir AAI or API key.

    • On first login, the user will be added to db.

  • A user with the permission USER_MANAGEMENT can create and modify users.

  • A user with the permission USER_ADD can create users.

  • A user with the permission USER_SEARCH can list users.

Summary

Property

Description

Default

Public

_id

UUID of the Entry

Set by system

Hidden

affiliation

User affiliation (e.g. university)

Empty

Visible

api_key

Hash for the API key

Empty

Hidden

api_salt

Salt for API api_key

Empty

Hidden

auth_ids

List of identfiers from e.g. Elixir

Empty

Hidden

email

Email address for the user

Must be non-empty

Hidden

contact

Contact information

Empty

Visible

name

Name of the user

Must be non-empty

Visible

orcid

ORCID of the user

Empty

Visible

permissions

List of permissions for the user

Empty

Hidden

url

URL to e.g. homepage

Empty

Visible

Properties

_id
  • UUID of the entry.

  • Set by the system upon entry creation, never modified.

affiliation
  • Affiliation of the user.

api_key
  • Hash for the API key for authorization to API or login.

api_salt
  • Salt for the API key.

auth_ids
  • List of identifiers used by e.g. Elixir AAI.

  • Saved as strings.

  • The general form is email@location.suffix::source, but the style may vary between sources.

  • Any of the auth_id can be used with the API key.

email
  • Email address for the user.

  • Default: Must be set

email_public
  • Email to show to public on e.g. generated datasets.

  • Default: Empty.

name
  • Name of the user.

    • Could also be name of e.g. facility or university.

orcid
  • ORCID of the user.

permissions
  • A list of the extra permissions the user has (see Permissions).

url
  • Url to e.g. a homepage

  • If set, it must start with http:// or https://.

  • Default: Empty

Log

  • Whenever an entry (order, dataset, collection, or user) is changed, a log should be written.

  • Only visible to entry owners and admins.

  • All logs are in the same collection.

  • The log needs parsing to show changes between different versions of an entry.

  • A full cope of the new entry is saved.

    • In case of deletion, _id is saved as data.

Summary

Property

Description

Default

_id

UUID of the Entry

Set by system

action

type of action

Must be non-empty

comment

Short description of the action

Empty

data_type

The modified collection (e.g. order)

Must be non-empty

data

Complete copy of the new entry

Must be non-empty

timestamp

Timestamp for the change

Must be non-empty

user

UUID for the user who performed the action

Must be non-empty

Properties

_id
  • UUID of the entry.

  • Set by the system upon entry creation, never modified.

action
  • Type of action

    • Add

    • Edit

    • Delete

comment
  • Short description of why it was made

    • “Add Dataset from order X”.

data_type
  • The collection that was modified, e.g. order

data
  • Add/edit: full copy of the new/updated document.

  • Delete: the _id of the document.

timestamp
  • The time the action was performed.

user
  • _id of the user that performed the action.

  • Can be set to system for automated actions (e.g. creating a user after OIDC login)