# screwdriver-data-schema

> Internal Data Schema of Screwdriver

Latest version **26.4.0** (published 2026-09-02) · BSD-3-Clause license · 9.4K weekly downloads

## Install

```sh
npm install screwdriver-data-schema
pnpm add screwdriver-data-schema
yarn add screwdriver-data-schema
bun add screwdriver-data-schema
```

## Health

**Score 65/100 (B)** — status: active.

Positive: no vulnerabilities; recently updated; high maintenance score.

Warnings: no types; no esm support.

## Facts

| | |
|---|---|
| Version | 26.4.0 |
| Published | 2026-09-02 |
| First published | 2016-07-06 |
| Weekly downloads | 9.4K |
| License | BSD-3-Clause |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 238.9 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 5 |
| Author | St. John Johnson |
| Maintainers | sd-buildbot, screwdriver, screwdriver-all, fenrirunbound |
| Keywords | screwdriver, yahoo |

## Links

- npm: https://www.npmjs.com/package/screwdriver-data-schema
- Repository: https://github.com/screwdriver-cd/data-schema
- Issues: https://github.com/screwdriver-cd/screwdriver/issues
- npm.io page: https://npm.io/package/screwdriver-data-schema

## Dependencies (2)

- [joi](https://npm.io/package/joi.md) ^17.13.3
- [cron-parser](https://npm.io/package/cron-parser.md) ^4.9.0

## Recent versions

- 26.4.0 (latest) — 2026-09-02
- 26.3.1 — 2026-08-11
- 26.3.0 — 2026-08-04
- 26.2.2 — 2026-07-28
- 26.2.1 — 2026-07-09
- 26.2.0 — 2026-07-07
- 26.1.2 — 2026-05-11
- 26.1.1 — 2026-04-10
- 26.1.0 — 2026-04-02
- 26.0.0 — 2026-02-26
- 25.12.0 — 2025-10-23
- 25.11.3 — 2025-10-07
- 25.11.2 — 2025-09-30
- 25.11.1 — 2025-07-29
- 25.11.0 — 2025-07-15
- … 529 more at https://npm.io/package/screwdriver-data-schema/versions

## 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

---
_Source: https://npm.io/package/screwdriver-data-schema · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
