Git Product home page Git Product logo

Pacifica Core Services

Build Status

Pacifica is an open source scientific data management platform for harvesting, validating, and distributing data and metadata. It is architected as a flexible set of inter-changeable tools used to build custom scientific data management solutions to meet the diverse changing demands of research at different institutions.

Pacifica services enable institutions to take advantage of new technologies to search, catalog and disseminate the data they generate. The intent behind Pacifica is to maintain a stable foundation to manage scientific data, which tools can be built on top in a consistent way. This allows institutions to own the system they build while future proofing federation and collaboration challenges.

Core Services

The core services are split up into several git submodules. These can be forked or replaced with custom version as a particular site might want.

  • Ingest - Validates incoming data and stores the data to the archive.
  • Archive Interface - This is the Pacifica interface to the archive supports data on disk or tape.
  • Policy - This defines the policy code that sites might customize to change behavior of the other services.
  • UniqueID - This defines the unique identifiers used in the rest of the services (ingest and cart)
  • Metadata - This defines the core metadata schema and access to meta in that schema.
  • Cart - Data cart for requesting data to be bundled and be made available for download later.
  • CLI - Command line interface for uploading and downloading data.
    • Uploader Library - Python library for tools to incorporate to upload data to the Ingest service.
    • Downloader Library - Python library for tools to incorporate to download data from the Cart service.

Docker Compose Environment

Docker compose is used heavily to deploy developer environments for interacting with the services one at a time. The primary docker-compose.yml in this repository pulls images from docker hub and creates all the services and dependencies.

For more information about docker compose environment refer to the documentation.

Code Standards and Architectures

Coding standards are enforced by Travis-CI. They will be checked and commented on by merge requests.

Code Climate is used to inform on code coverage and potential issues through static code analysis.

Architectures are talked about in detail in the docs submodule. However, there are two basic types of tools, Python REST services and PHP/JavaScript Websites.

Contributing

Contributing is pretty basic, fork it on github and create a merge request. Further reading is done here

Pacifica Software's Projects

ansible-certinfra icon ansible-certinfra

Anasible role to manage your own OpenSSL Certificate Authority and associated client and server certificates.

charts icon charts

Helm Charts for Pacifica Services

pacifica icon pacifica

Main Pacifica repository contains submodules to all Pacifica core software components

pacifica-cartd icon pacifica-cartd

Pacifica CartData used for packaging then distributing data from the archive

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.