Registry / devops / screwdriver-api

screwdriver-api

JSON →
library8.0.143jsnpmunverified

The Screwdriver API is the core server for the Screwdriver.cd continuous delivery service, currently at version 8.0.143. It provides 18 preloaded plugins for managing builds, pipelines, secrets, webhooks, and more, with support for multiple datastores (Postgres, MySQL, Sqlite), executors (Kubernetes, Docker, Nomad), and SCM providers (GitHub, GitLab, Bitbucket). Released weekly, it is actively maintained by Yahoo and the open-source community. Compared to Jenkins or GitLab CI, Screwdriver emphasizes container-native, pluggable architecture and SCM-agnosticism. Requires Node.js >=22.0.0.

npm install screwdriver-api
INSTALL
IMPORT
SIG · SCREWDRIVER-API
S
screwdriver-api
devopsjavascriptv8.0.143
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

server
import { server } from 'screwdriver-api'
const server = require('screwdriver-api')
ESM-only since v6.0.0; no default export.
setupServer
import { setupServer } from 'screwdriver-api'
Preferred way to start the API server programmatically.
Schema
import { Schema } from 'screwdriver-api'
import Schema from 'screwdriver-api'
Named export for validation schemas.

Initialize and start Screwdriver API server with Docker executor, SQLite datastore, and GitHub SCM.

import { setupServer, server } from 'screwdriver-api'; const port = parseInt(process.env.PORT ?? '8080', 10); const config = { port, datastore: { plugin: 'sequelize', sequelize: { dialect: 'sqlite', storage: './data.sqlite' } }, executor: { plugin: 'docker' }, scm: { plugin: 'github', github: { oauthClientId: process.env.GH_CLIENT_ID ?? '', oauthClientSecret: process.env.GH_CLIENT_SECRET ?? '' } }, auth: { jwtSecret: process.env.JWT_SECRET ?? 'a-really-long-secret-change-me' } }; const app = await setupServer(config); app.listen(port, () => { console.log(`Screwdriver API running on http://localhost:${port}`); });
Debug
Known issues
breakingESM-only since v6.0.0: CommonJS require() will not work.
fix
Use import syntax and ensure project is configured for ES modules.
affects: >=6.0.0
breakingNode.js >=22.0.0 required starting from v8.0.0.
fix
Upgrade Node.js to >=22.0.0.
affects: >=8.0.0
deprecatedsetupServer() is deprecated in favor of createServer() in v7.0.0.
fix
Use createServer() from 'screwdriver-api' instead.
affects: >=7.0.0 <8.0.0
breakingThe 'server' export changed from default to named in v6.0.0.
fix
Use import { server } from 'screwdriver-api' instead of import server from 'screwdriver-api'.
affects: >=6.0.0
gotchaEnvironment variables take precedence over config file; missing JWT_SECRET causes auth failures.
fix
Always set JWT_SECRET environment variable or in local.yaml.
affects: >=0.0.0
Errors
Common errors & fixes
Error: Cannot find module 'screwdriver-datastore-sequelize'
Missing optional datastore plugin dependency.
fix
Install the package: npm install screwdriver-datastore-sequelize
TypeError: jwt must be a string
JWT_SECRET is not configured.
fix
Set JWT_SECRET environment variable or add to config file.
Error: listen EADDRINUSE :::8080
Port 8080 is already in use.
fix
Change the port in config or kill the process using it.
SyntaxError: Unexpected token 'export'
Trying to run ESM code in a CJS environment.
fix
Add 'type': 'module' to package.json or use .mjs extension.
Upgrade
Version history
8.0.143latest on npm
Audit
Dependencies
screwdriver-modelsrequiredCore models for builds, jobs, pipelines, etc.
screwdriver-datastore-sequelizeoptionalDefault datastore implementation using Sequelize (Postgres, MySQL, Sqlite).
screwdriver-executor-k8soptionalKubernetes executor plugin for running builds.
Agent activity
22 hits · last 30 days
node
18
OpenAI (training)
1
Resources
screwdriver-api — npm install screwdriver-api · libregistry