Developing with LabKey Server

LabKey Server is both broadly API-enabled and extensible, giving developers flexibility and rich tools for building custom applications on the LabKey Server platform.

LabKey Server Client APIs

LabKey Server’s client API libraries provide secure, auditable, programmatic access to LabKey Server data and services, and allow teams to extend and leverage LabKey Server from other applications. LabKey supports a variety of programming languages, enabling developers to build everything from simple customization scripts to sophisticated stand-alone applications to meet their research goals.

Common goals achieved through usage of LabKey APIs include:

  • Analyzing and visualizing data stored in LabKey Server using a statistical languages such as R or SAS
  • Performing routine, automated tasks
  • Querying and manipulation data in a repeatable and reproducible way
  • Creating customized user interfaces, embedded in the standard LabKey Server UI, that can include R, SQL, HTML, JavaScript, and more
  • Developing new user interfaces (web-based or otherwise) that are deployed separately from LabKey Server itself, but still interact with its data and services

LabKey currently supports working with the following programming languages/environments:

Visit the LabKey Support portal for LabKey Server client API documentation and tutorials.

LabKey Server Scripting

LabKey Server provides numerous ‘hooks’ for adding scripts, allowing developers to validate and manipulate data during import and automate analyses.

Common scripts utilized in LabKey Server include:

  • Assay transformation scripts, written in virtually any language
  • Trigger scripts, written in JavaScript
  • Script-based pipelines for multi-step, repeatable processing

Visit the LabKey Support portal for LabKey Server scripting and reporting documentation and tutorials.

LabKey Server Modules

Developers can create larger features by packaging resources together for simple deployment as a module within LabKey Server. A wide variety of resources can be used to create custom LabKey Server modules, including R reports, SQL queries, HTML pages, CSS, JavaScript, images and other static resources, XML-based configuration, and compiled Java code.

Common uses of custom modules, developed for LabKey Server include:

  • Queries, Views, and Reports: Modules used for creating file-based SQL queries, reports, views, web parts, and HTML/JavaScript client-side applications
  • Custom Schemas: Create and manage database schemas for persisting and querying data
  • Extract-Transform-Load (ETL) Processes: Modules designed to configure data transfer and synchronization between databases
  • New Assay Types: Modules used for defining a new assay type
  • Script Pipelines: Modules used for running scripts in sequence, including R scripts, JavaScript, Perl, Python, etc.
  • Java Applications: Modules used for Java-based applications to create server-side code

Visit the LabKey Support portal for LabKey Server module development documentation and tutorials.

Get Started with LabKey Server

Interested in learning more about LabKey Server? Contact us and the LabKey team will work with you to understand your needs and determine if LabKey is the right fit for your research.