Skip to main content

Introduction

This suite of training modules are meant to be a guide for Sciforge developers to get familiar with the infrastructure and tools used for plugin development as they begin their development journey.

Traditional API documentation lists out the available endpoints, with information relevant to their usage. This sort of material helps developers to take advantage of existing software.

Table of Contents

The SciForge API, while intended for use with multiple applications, takes significant direction from Elab. Elab is, by design, adaptable to nearly every laboratory. Each laboratory, even in similar industries, have different workflows and data being captured for samples, tests, inventory, and so on. From that perspective, no two instances of Elab are identical. As such, the SciForge API also must be adaptable. There is rarely an assumption that the endpoints provided out of the box are suitable for direct use.

GraphQL is central to this API. This enables a level of adaptability even for existing endpoints, as developers may choose which outputs they want. It also enables the GraphQL sandbox environment to be used to document the API endpoints, as well as a variety of other information.

The training material included within focuses on getting setup to develop and make changes to the SciForge API itself. To add your own endpoints, or to extend existing code, to fit the needs of the project being worked on. It is a starting point that is intended to help get the development environment setup, to understand the development pipeline, and a basic understanding of the code infrastructure.

While this material focuses on SciForge, most uses develop endpoints for Elab. Being able to find the schema objects that are needed is often critical to the success of a SciForge development project. Thus, this material does not stand entirely on its own; developing familiarity with Elab will be critical. That familiarity for a developer should always start with being able to log into the Elab application, and navigating through the screens that users are using to input data. This is reinforced in training material for Elab.

Terminology

Elab: The LabLynx LIMS application

LIMS: Laboratory Information Management Software

Plugin: Code extensions that can be used to customize, extend or add to the SciForge off-the-shelf API.

SciCloud: The platform of cloud hosted laboratory applications and associated automation. SciForge is one of the applications hosted in the SciCloud application suite, and is hosted on the dockerized SciCloud server.

SciForge: A GraphQL based API that is generally used to provide secure access to Elab data

UAT: User Acceptance Testing. UAT occurs in the “test environment.” Docker images to facilitate UAT in test environments are discussed within.

Endpoints: GraphQL has a specific terminology set for the queries, mutations and similar functionality available from users of the API. Other API technologies simply refer to these as “endpoints,” and in this document, the terms are used interchangeably, unless there is need for greater specificity.