Skip to content

lsst/felis

Repository files navigation

Felis

Latest Tag PyPI PyPI - Python Version Codecov

YAML Schema Definition Language for Databases

Overview

Felis implements a YAML data format for describing database schemas in a way that is independent of implementation language and database variant. These schema definitions can be checked for validity using an internal Pydantic data model to ensure strict conformance to the format. SQL Data Definition language (DDL) statements can be generated to instantiate corresponding database objects, such as tables and columns, in a number of different database variants, including MySQL, PostgreSQL, and SQLite. The schema can also be used to update the TAP schema information in a TAP service.

The tool was developed internally by the Vera C. Rubin Observatory as a way of defining a "single source of truth" for database schemas and their metadata which are maintained for the facility in the sdm_schemas github repository. Though developed in the context of astronomical data management and including some optional features that are specific to IVOA standards, Felis is generic enough that it can be used as a general tool to define, update, and manage database schemas in a way that is independent of database variant or implementation language such as SQL.

Documentation

Detailed information on usage, customization, and design is available at the Felis documentation site.

Support

Users may report issues or request features on the Rubin Community Forum or by opening an issue on the Felis Issue Tracker. Posts on the forum should include the tag "felis."

Code of Conduct

Please see the LSST Project Code of Conduct for guidelines on communications and interactions.

License

Felis is distributed under the GNU General Public License, version 3.0 or later.