Skip to main content

casebench-ee

Casebench's team server: the workbench with sign-in, five roles, an audit log and admin pages (decision 0058).

Licensed under the Elastic License 2.0. Everything outside ee/ is Apache-2.0.

Run it

Install it from PyPI, with the casebench release of the same version, and start it in a folder holding your runs, suites and casebench.yaml:

pip install casebench-ee
CASEBENCH_DATABASE_URL=postgresql://casebench:secret@db.internal/casebench \
CASEBENCH_PUBLIC_URL=https://casebench.firm.example \
casebench-team serve --host 0.0.0.0

Without CASEBENCH_DATABASE_URL it keeps the team in .casebench/team.db, SQLite, which is enough for a trial.

Or build the container image from the repository's root, and run it with Postgres and a folder holding your runs, suites and casebench.yaml:

docker build -f ee/Dockerfile -t casebench-team .
docker run -p 8080:8080 \
  -e CASEBENCH_DATABASE_URL=postgresql://casebench:secret@db.internal/casebench \
  -e CASEBENCH_PUBLIC_URL=https://casebench.firm.example \
  -v /srv/casebench:/data \
  casebench-team

The first start prints a one-time setup code to the log. Open the public URL, enter the code, and create the first admin with a password of 12 characters or more that is no default.

Settings

Variable What it sets
CASEBENCH_DATABASE_URL Postgres for a team; SQLite works for a trial
CASEBENCH_PUBLIC_URL where people open the app; sign-in links point here
CASEBENCH_SMTP_HOST, _PORT, _USERNAME, _PASSWORD, _FROM, _SECURITY the SMTP server that sends sign-in links; _SECURITY is starttls (default), tls or none. Without it, the admin copies each link from the Team page
CASEBENCH_GOOGLE_CLIENT_ID, _SECRET sign-in with Google, for invited emails Google has verified
CASEBENCH_MICROSOFT_CLIENT_ID, _SECRET sign-in with Microsoft, for invited emails Microsoft vouches for: personal accounts, or work accounts whose domain is verified
CASEBENCH_RUNS, CASEBENCH_SUITES, CASEBENCH_CONFIG where runs, suites and casebench.yaml are; /data/... in the image

Register the Google or Microsoft client with <public URL>/auth/google/callback or <public URL>/auth/microsoft/callback as its redirect address.

Erasing a team

casebench-team erase --database URL --runs-dir DIR --suites DIR --confirm NAME removes every table in the team's database, with the audit log, and everything in its run and suite folders. NAME is the database's name, typed back. What is erased cannot be restored.

From an engineer's machine

Create an API key with the engineer role on the Team page, set it as CASEBENCH_CLOUD_KEY on the engineer's machine, and name the server in casebench.yaml under cloud: url:. Then casebench push, casebench invite and casebench pull work against it (decision 0059).

Develop

uv sync installs casebench-ee with the core. npm run build:team in workbench/ builds the team's web app into ee/casebench_ee/static/. uv run pytest ee/team_tests runs its tests; set CASEBENCH_TEST_POSTGRES to a Postgres server's URL to run the Postgres ones too.

Metadata

Release files for casebench-ee 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for casebench-ee 0.3.0
File Size Uploaded
casebench_ee-0.3.0.tar.gz 479.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for casebench-ee 0.3.0
File Interpreter ABI Platform
casebench_ee-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 961.7 kB

Release files / casebench_ee-0.3.0.tar.gz

Download URL casebench_ee-0.3.0.tar.gz
Size 479.2 kB
Tags Source
SHA-256 checksum
How to use checksums
dd9ada227331712b2998fa71dce9762dbe80f0f77cfb45af728728b21d071ccf
BLAKE2b-256 checksum
How to use checksums
ede234cdfc06a42278a4f7631423a73711f26ddf74a061350dfd48b1ffc695af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release files / casebench_ee-0.3.0-py3-none-any.whl

Download URL casebench_ee-0.3.0-py3-none-any.whl
Size 482.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
519d361cbc54eb0e72e5c153b77eb7db6e4c3030cc6f6e6efc48c5baa619bd17
BLAKE2b-256 checksum
How to use checksums
62e789abc86d5234e7d97681210d78646d0869a1905128136d334113ce3c7cd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page