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)
| File | Size | Uploaded | |
|---|---|---|---|
| casebench_ee-0.3.0.tar.gz | 479.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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 logRelease 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