DataNet User Manual

Introduction

DataNet is a platform for managing metadata and data models and deploying corresponding data repositories for collecting and sharing the data. The following sections describe the process presenting corresponding screenshots of the available user interface. If you wish to learn to use the platform by following a step-by-step tutorial please go to the tutorial section.

The interface becomes available after a successful login procedure by providing valid PLGrid credentials in the login screen presented below.


Login screenshot


After a successful login action the following welcome screen should be rendered unless the URL points to a concrete DataNet resource.


Welcome screen


The main screen is divided into three sections. The top header contains DataNet logo with current version on the left and language switch, help and logout buttons on the right. Below, the left column contains a tree of models, versions and repositories and the main area shows views specific to the item chosen in the tree.

Model management

In order to use the DataNet platform a data model needs to be created. A data model shows how the stored data are structured and what is the type of individual fields. Data structure can be expressed as a set of entities consisting of fields. Fields can be of the following types:

Some of the types have an array equivalent in which case the type name is followed by []. Also, a field can have a type of another entity if a relationship should be modeled.

To create a new model the button should be clicked. Afterwards, new entities and fields can be added by using the and buttons respectively. A sample model is given below.


Sample model


The model consists of two entities representing people and their addresses. The relationship is done through the addresses field in the Person entity. After applying any modifications to the model it can be saved by clicking the button. When a given model is ready to be published it can be stored as a version which cannot be modified and only a model version can be deployed as a repository.

Model versions

A version of a given model is a snapshot which cannot be modified. It should be created when you want to ensure that a certain state of the model should be saved or when it should be made available as a repository. To create a new version click the button and provide its name in the displayed popup window. A tree item representing the new version will be created and the main view will switch to the version view which should be similar to the one below.


Version view


The version view is similar to the model creation view with the exception that it does not provide means to modify the model. A given version can be deployed to expose a repository.

Repository deployment

After a repository for a particular version is deployed a physical resource is made available to store incoming data requests. The repository later can be queried for stored data by using a REST endpoint. To create a new repository switch to a version view by clicking one of the model versions in the model tree and click the button. In the presented popup provide the repository name (the name will be a part of the URL pointing to it). The deployment may take some time and afterwards you will be switched to the repository view similar to the one below.


Repository view


For now the repository is empty but you can already configure its access restrictions by clicking the button. In the popup you can set the repository to be public (this is the default) or private.

The repository view also provides a utility which generates code samples in a few programming languages giving access to the repository. The code is specific for a given repository and its entities and can be copied and executed straight away. To access the utility click the button. Below is a sample template for Bash which shows how with the curl tool a repository can be accessed.


Code template in Bash


Repository data browsing and filtering

In the repository view each entity has a dedicated tab where the data can be browsed and queried and new records can be added. The data table provides pagination with indication of the current page and the number of all items. In order to search the data a simple form is available above the table. Currently, only exact matching for string fields is available (more search options are offered by the REST API). The use of the search form should be straightforward. New records can be added bby clicking the button and providing the data in the presented popup.

Repository REST interface access and querying

The REST interface of a repository is the interface exposed to applications used for storing, querying and updating data. Access to the repository can be accomplished by using one of the available libraries in a given programming language (for instance when using Bash the cURL tool can be used). The main URL of the repository is given in the repository view in the header of the main view. The base URL looks like this: http://{repository_name}.datanet.cyfronet.pl. When accessed the response will contain a list of entities for the repository's model. Below is a list of other requests that can be invoked on a repository.

Querying a given entity can be accomplished by using the query part of a URL pointing to an individual entity. For instance if an entity has a String field named surname a request returning only rows with a surname of value Smith would look like this: http://{repository_name}.datanet.cyfronet.pl/{entity_name}?surname=Smith. The supported operators are listed below.