Skip to content

SecondShift v0.1.0b5

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Nov 16:37
· 78 commits to main since this release
57b4e7b

Install uv and start Docker, then download the wheel below and run:

uvx --python 3.13 --from ./secondshift-0.1.0b5-py3-none-any.whl secondshift up

For a persistent installation:

uv tool install --force --python 3.13 ./secondshift-0.1.0b5-py3-none-any.whl
secondshift up

SecondShift 0.1.0b5

This beta makes merging .secondshift.yaml enough to approve a job, when an
owner allows it. Owners can also limit the arguments a tool is called with.
The docs explain how to connect vendors' MCP servers, and the dashboard links
to the docs.

Approval at merge

Each MCP, API and webhook connection has Require approval for each job.
When it is off, a job that asks only for tools allowed on the connection is
ready without an owner. The review of .secondshift.yaml is the approval
(#141).

  • New connections start with approval off. Existing connections keep
    requiring approval after the upgrade.
  • A request for a tool outside the connection's allowed list still waits for
    an owner. An owner's approval or denial is never overridden.
  • Turning approval back on keeps existing grants. New and changed requests
    wait again.
  • Only owners can change the setting.

Protect .secondshift.yaml with a CODEOWNERS entry if you turn approval off.
See Who grants what.

Tool restrictions

In the access review, owners can limit how a job calls an approved MCP or API
tool. A rule applies to one top-level argument (#143).

  • Fixed: the broker always sends this value. The model never sees the
    argument.
  • Allowed values: the model must pick one of these.
  • Maximum: a number can't go above this.
  • Forbidden: the model may not send the argument.

The broker checks the rules before a call leaves SecondShift. A blocked call
fails the run under Tool restriction. If a connection's tools change and a
rule no longer fits, the job is blocked until an owner fixes it. Repository
configuration cannot set rules. See
Securing MCP and API calls.

Included

  • Vendor MCP servers. A new guide shows how to connect an official MCP
    server, with a tested Linear example and notes on Atlassian, Datadog and
    Notion. See Vendor MCP servers (#145).
  • Docs links. The account menu links to the docs. The access review and
    credential forms link to the security model (#146).
  • One HTTP client. The backend uses httpx for every call. Runner errors
    now say whether the runner could not be reached or did not answer in time
    (#144).
  • Docs site. The docs and a landing page are at
    second-shift.app (#119).

Upgrade compatibility

From beta 4, keep your existing data, private configuration and encryption
keys. Install the new wheel or update the pinned container image to
ghcr.io/piotrekno1/second-shift:0.1.0b5. Then run the normal migration
commands. This release adds three migrations:
connections.0003_require_approval,
connections.0004_new_connections_skip_approval and
jobs.0004_jobgrant_tool_rules. They add columns with defaults. Existing
connections keep requiring approval, and existing grants have no tool
restrictions.

From older alpha builds, fresh databases are still required. Follow the
beta 1 upgrade instructions.

Limitations

The tests use stand-ins for GitHub, the model provider and S3. Real GitHub.com
and model providers, public HTTPS certificates, and production S3 permissions
still need checking on your own deployment. See the
deployment guide.

What's Changed

Full Changelog: v0.1.0b4...v0.1.0b5