Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/screwdriver-cd/data-schema

Screwdriver internal data schema
https://github.com/screwdriver-cd/data-schema

data-schema screwdriver validation

Last synced: 3 months ago
JSON representation

Screwdriver internal data schema

Awesome Lists containing this project

README

        

# Screwdriver Data Schema
[![Version][npm-image]][npm-url] ![Downloads][downloads-image] [![Build Status][status-image]][status-url] [![Open Issues][issues-image]][issues-url] ![License][license-image]

> Internal data schema of [Screwdriver](https://github.com/screwdriver-cd/screwdriver)

## Description

This contains the structure/validation for all the models/resources of Screwdriver.

It's broken down into five (5) sections:
- `api` - API related input/output structure
- `config` - Screwdriver.yaml definitions
- `models` - Internal data resources (pipeline, job, build, collection etc.)
- `plugins` - Plugins (datastore, executor, etc.)
- `core` - SCM plugin related output structure

## Models

The model represents a combination of what is required to create the resource and what is possible for returning from the resource.

### Methodology

Each model contains eight (8) schemas:
- `base` - List of all available fields in the model
- `allKeys` - List of all fields in the model
- `get` - Expected return values from a GET request against this resource
- `create` - Expected input values when making a CREATE action against this resource
- `update` - Expected input values when making an UPDATE action against this resource
- `keys` - List of keys that combine to represent a unique row
- `tableName` - Internal name of the table
- `indexes` - Secondary indexes to make search/lookup faster

## Contributing

Please read [Migrations](./CONTRIBUTING.md#migrations) before adding anything to the data-schema

## Usage

```bash
npm install screwdriver-data-schema
```

## Testing

```bash
npm test
```

## License

Code licensed under the BSD 3-Clause license. See LICENSE file for terms.

[npm-image]: https://img.shields.io/npm/v/screwdriver-data-schema.svg
[npm-url]: https://npmjs.org/package/screwdriver-data-schema
[downloads-image]: https://img.shields.io/npm/dt/screwdriver-data-schema.svg
[license-image]: https://img.shields.io/npm/l/screwdriver-data-schema.svg
[issues-image]: https://img.shields.io/github/issues/screwdriver-cd/screwdriver.svg
[issues-url]: https://github.com/screwdriver-cd/screwdriver/issues
[status-image]: https://cd.screwdriver.cd/pipelines/12/badge
[status-url]: https://cd.screwdriver.cd/pipelines/12