Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
# Note the syntax: CODEOWNERS entries need a path pattern and an @-prefixed
# owner. The previous contents were bare usernames with neither, which GitHub
# silently ignores, so this file was not actually assigning reviewers at all.
* @Jamyn
* @helldweller
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,4 @@ If applicable, add screenshots to help explain your problem.
**Additional context**
Add any other context about the problem here.

> Suspected security vulnerability? Please don't file it here — see [SECURITY.md](https://github.com/Jamyn/dispatch/blob/main/SECURITY.md).
> Suspected security vulnerability? Please don't file it here — see [SECURITY.md](https://github.com/helldweller/dispatch/blob/main/SECURITY.md).
2 changes: 1 addition & 1 deletion .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Deploy docs

# Builds the Docusaurus site in docs/ and publishes it via the GitHub Pages
# deployment API, served at https://jamyn.github.io/dispatch/. No gh-pages
# deployment API, served at https://helldweller.github.io/dispatch/. No gh-pages
# branch or git commit is involved, so the repo-wide required-signatures
# ruleset (which a git-pushed gh-pages commit can never satisfy) doesn't apply.
on:
Expand Down
4 changes: 2 additions & 2 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ spaces.

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the maintainer by opening a
[private security advisory](https://github.com/Jamyn/dispatch/security/advisories/new)
[private security advisory](https://github.com/helldweller/dispatch/security/advisories/new)
or, for non-security conduct reports, by contacting
[@Jamyn](https://github.com/Jamyn) directly through GitHub. All complaints
[@helldweller](https://github.com/helldweller) directly through GitHub. All complaints
will be reviewed and investigated promptly and fairly.

Maintainers are obligated to respect the privacy and security of the reporter
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ Bug reports and feature requests for the application belong in this repo's
issue tracker. Deployment/Compose/installer issues belong in
[`Jamyn/dispatch-docker`](https://github.com/Jamyn/dispatch-docker/issues).
Suspected vulnerabilities should go through
[GitHub security advisories](https://github.com/Jamyn/dispatch/security/advisories/new)
[GitHub security advisories](https://github.com/helldweller/dispatch/security/advisories/new)
instead of a public issue.

## Code of Conduct
Expand Down
15 changes: 7 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# Dispatch

[![License](https://img.shields.io/github/license/Jamyn/dispatch)](LICENSE)
[![Release](https://img.shields.io/github/v/release/Jamyn/dispatch)](https://github.com/Jamyn/dispatch/releases)
[![Last commit](https://img.shields.io/github/last-commit/Jamyn/dispatch)](https://github.com/Jamyn/dispatch/commits/main)
[![Coverage](https://codecov.io/github/Jamyn/dispatch/badge.svg?branch=main)](https://codecov.io/github/Jamyn/dispatch)
[![License](https://img.shields.io/github/license/helldweller/dispatch)](LICENSE)
[![Release](https://img.shields.io/github/v/tag/helldweller/dispatch)](https://github.com/helldweller/dispatch/releases)
[![Last commit](https://img.shields.io/github/last-commit/helldweller/dispatch)](https://github.com/helldweller/dispatch/commits/main)

### What's Dispatch?

Expand All @@ -15,25 +14,25 @@ Dispatch helps effectively manage security incidents by deeply integrating with

This means you can let Dispatch focus on creating resources, assembling participants, sending out notifications, tracking tasks, and assisting with post-incident reviews; allowing you to focus on actually fixing the issue!

![Dispatch incident dashboard screenshot](https://github.com/Jamyn/dispatch/raw/main/docs/static/img/thumb-1.png) ![Dispatch incident detail screenshot](https://github.com/Jamyn/dispatch/raw/main/docs/static/img/thumb-2.png) ![Dispatch incident timeline screenshot](https://github.com/Jamyn/dispatch/raw/main/docs/static/img/thumb-3.png) ![Dispatch incident participants screenshot](https://github.com/Jamyn/dispatch/raw/main/docs/static/img/thumb-4.png) ![Dispatch incident tasks screenshot](https://github.com/Jamyn/dispatch/raw/main/docs/static/img/thumb-5.png) ![Dispatch incident report screenshot](https://github.com/Jamyn/dispatch/raw/main/docs/static/img/thumb-6.png)
![Dispatch incident dashboard screenshot](https://github.com/helldweller/dispatch/raw/main/docs/static/img/thumb-1.png) ![Dispatch incident detail screenshot](https://github.com/helldweller/dispatch/raw/main/docs/static/img/thumb-2.png) ![Dispatch incident timeline screenshot](https://github.com/helldweller/dispatch/raw/main/docs/static/img/thumb-3.png) ![Dispatch incident participants screenshot](https://github.com/helldweller/dispatch/raw/main/docs/static/img/thumb-4.png) ![Dispatch incident tasks screenshot](https://github.com/helldweller/dispatch/raw/main/docs/static/img/thumb-5.png) ![Dispatch incident report screenshot](https://github.com/helldweller/dispatch/raw/main/docs/static/img/thumb-6.png)

## Status: independently maintained

[Netflix/dispatch](https://github.com/Netflix/dispatch) was archived and made read-only on **September 1, 2025**. This repository is a standalone continuation of that code, maintained independently of Netflix. It may diverge from upstream, including with breaking changes, to fix security issues, update outdated components, and adapt the application to our own use of the product.

Development happens on `main`, and releases are date-versioned tags (e.g. [`v26.08.12`](https://github.com/Jamyn/dispatch/releases/tag/v26.08.12)). Upstream's final commit is preserved as the [`upstream-final`](https://github.com/Jamyn/dispatch/releases/tag/upstream-final) tag if you need the pristine Netflix state.
Development happens on `main`, and releases are date-versioned tags (e.g. [`v26.08.12`](https://github.com/helldweller/dispatch/releases/tag/v26.08.12)). Upstream's final commit is preserved as the [`upstream-final`](https://github.com/helldweller/dispatch/releases/tag/upstream-final) tag if you need the pristine Netflix state.

The supported way to run Dispatch is [`Jamyn/dispatch-docker`](https://github.com/Jamyn/dispatch-docker), which builds this repository at a pinned release commit.

## Reporting issues

Bug reports and feature requests for the application belong in [this repo's issue tracker](https://github.com/Jamyn/dispatch/issues). Deployment, Compose, and installer issues belong in [`Jamyn/dispatch-docker`'s issue tracker](https://github.com/Jamyn/dispatch-docker/issues) instead. Suspected vulnerabilities in the application should be reported privately via [GitHub security advisories](https://github.com/Jamyn/dispatch/security/advisories/new) — please don't open a public issue for those.
Bug reports and feature requests for the application belong in [this repo's issue tracker](https://github.com/helldweller/dispatch/issues). Deployment, Compose, and installer issues belong in [`Jamyn/dispatch-docker`'s issue tracker](https://github.com/Jamyn/dispatch-docker/issues) instead. Suspected vulnerabilities in the application should be reported privately via [GitHub security advisories](https://github.com/helldweller/dispatch/security/advisories/new) — please don't open a public issue for those.

Reports are accepted against the **latest tagged release** and the current `main` tip only.

## Project resources

- [Dispatch blog post](https://medium.com/@NetflixTechBlog/introducing-dispatch-da4b8a2a8072) (Netflix, 2020)
- [Documentation](https://jamyn.github.io/dispatch/) (built from this repository's `docs/`)
- [Documentation](https://helldweller.github.io/dispatch/) (built from this repository's `docs/`)
- [Docker deployment](https://github.com/Jamyn/dispatch-docker)
- [Upstream repository](https://github.com/Netflix/dispatch) (archived, read-only)
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ Vulnerabilities in the deployment tooling — `install.sh` (including secret gen

## Reporting a vulnerability

Report privately via GitHub: **[github.com/Jamyn/dispatch/security/advisories/new](https://github.com/Jamyn/dispatch/security/advisories/new)**. Please don't open a public issue for a suspected vulnerability. This is a single-maintainer, best-effort project with no SLA, but reports are read and acted on.
Report privately via GitHub: **[github.com/helldweller/dispatch/security/advisories/new](https://github.com/helldweller/dispatch/security/advisories/new)**. Please don't open a public issue for a suspected vulnerability. This is a single-maintainer, best-effort project with no SLA, but reports are read and acted on.

## Supported versions

Bug and security reports are accepted against the **latest tagged release** (`v*`, see [Releases](https://github.com/Jamyn/dispatch/releases)) and the current `main` tip only. Older releases receive no fixes; upgrade to the latest release before reporting. Fixes land on `main` and ship in the next release.
Bug and security reports are accepted against the **latest tagged release** (`v*`, see [Releases](https://github.com/helldweller/dispatch/releases)) and the current `main` tip only. Older releases receive no fixes; upgrade to the latest release before reporting. Fixes land on `main` and ship in the next release.
18 changes: 9 additions & 9 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ FROM python:3.14.9-slim-trixie as sdist
LABEL maintainer="oss@dispatch.io"
LABEL org.opencontainers.image.title="Dispatch PyPI Wheel"
LABEL org.opencontainers.image.description="PyPI Wheel Builder for Dispatch"
LABEL org.opencontainers.image.url="https://jamyn.github.io/dispatch/"
LABEL org.opencontainers.image.source="https://github.com/Jamyn/dispatch"
LABEL org.opencontainers.image.vendor="Jamyn"
LABEL org.opencontainers.image.url="https://helldweller.github.io/dispatch/"
LABEL org.opencontainers.image.source="https://github.com/helldweller/dispatch"
LABEL org.opencontainers.image.vendor="helldweller"
LABEL org.opencontainers.image.authors="oss@dispatch.io"

SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]
Expand All @@ -31,7 +31,7 @@ RUN wget --quiet -O - https://deb.nodesource.com/setup_22.x | bash - \
ARG SOURCE_COMMIT
ENV DISPATCH_BUILD=${SOURCE_COMMIT:-unknown}
LABEL org.opencontainers.image.revision=$SOURCE_COMMIT
LABEL org.opencontainers.image.licenses="https://github.com/Jamyn/dispatch/blob/${SOURCE_COMMIT:-main}/LICENSE"
LABEL org.opencontainers.image.licenses="https://github.com/helldweller/dispatch/blob/${SOURCE_COMMIT:-main}/LICENSE"

ARG DISPATCH_LIGHT_BUILD
ENV DISPATCH_LIGHT_BUILD=${DISPATCH_LIGHT_BUILD}
Expand Down Expand Up @@ -82,10 +82,10 @@ FROM python:3.14.9-slim-trixie
LABEL maintainer="oss@dispatch.io"
LABEL org.opencontainers.image.title="Dispatch"
LABEL org.opencontainers.image.description="Dispatch runtime image"
LABEL org.opencontainers.image.url="https://github.com/Jamyn/dispatch"
LABEL org.opencontainers.image.documentation="https://jamyn.github.io/dispatch/"
LABEL org.opencontainers.image.source="https://github.com/Jamyn/dispatch"
LABEL org.opencontainers.image.vendor="Jamyn"
LABEL org.opencontainers.image.url="https://github.com/helldweller/dispatch"
LABEL org.opencontainers.image.documentation="https://helldweller.github.io/dispatch/"
LABEL org.opencontainers.image.source="https://github.com/helldweller/dispatch"
LABEL org.opencontainers.image.vendor="helldweller"
LABEL org.opencontainers.image.authors="oss@dispatch.io"

SHELL ["/bin/bash", "-o", "pipefail", "-o", "errexit", "-c"]
Expand Down Expand Up @@ -190,4 +190,4 @@ CMD ["server", "start", "dispatch.main:app", "--host=0.0.0.0"]

ARG SOURCE_COMMIT
LABEL org.opencontainers.image.revision=$SOURCE_COMMIT
LABEL org.opencontainers.image.licenses="https://github.com/Jamyn/dispatch/blob/${SOURCE_COMMIT:-main}/LICENSE"
LABEL org.opencontainers.image.licenses="https://github.com/helldweller/dispatch/blob/${SOURCE_COMMIT:-main}/LICENSE"
2 changes: 1 addition & 1 deletion docs/docs/administration/cli.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ The `upgrade` and `downgrade` commands manage how `alembic` database migrations

### Restore/Dump

The `restore` and `dump` commands allow you to quickly backup and restore the Dispatch database. It can also be used to load our [example](https://github.com/Jamyn/dispatch/blob/main/data/dispatch-sample-data.dump) data set into your Dispatch installation.
The `restore` and `dump` commands allow you to quickly backup and restore the Dispatch database. It can also be used to load our [example](https://github.com/helldweller/dispatch/blob/main/data/dispatch-sample-data.dump) data set into your Dispatch installation.

Today, the `.dump` file must be located in `$CWD` and must be named `dispatch-backup.dump`.

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/administration/contributing/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ If the database schema changes, we will need to update the sample data according
### Change log

- Create a new changelog with all significant changes since the last release
- Update GitHub releases: https://github.com/Jamyn/dispatch/releases
- Update GitHub releases: https://github.com/helldweller/dispatch/releases
- Publish the release

### Update 'latest' tag
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/administration/installation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Note: Dispatch will not start without at least a few required configuration vari
:::

:::info
Note: Dispatch does not contain any data by default. For evaluation purposes, we do provide an example data set located [here](https://github.com/Jamyn/dispatch/blob/main/data/dispatch-sample-data.dump). For instructions on how to restore this data, see [here](cli.mdx).
Note: Dispatch does not contain any data by default. For evaluation purposes, we do provide an example data set located [here](https://github.com/helldweller/dispatch/blob/main/data/dispatch-sample-data.dump). For instructions on how to restore this data, see [here](cli.mdx).
:::

To start, run the install script:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ Dispatch allows you to define incident cost types. These types can then be used

### Calculating Incident Cost

Dispatch [calculates](https://github.com/Jamyn/dispatch/blob/main/src/dispatch/incident/service.py#L279) the cost of an incident by adding up the time participants have spent on each incident role \(e.g., Incident Commander\) and applying an [engagement multiplier](https://github.com/Jamyn/dispatch/blob/main/src/dispatch/incident/service.py#L266) that's based on the incident role. It also includes time spent on incident review-related activities. Dispatch calculates and publishes the cost for all incidents [every 5 minutes](https://github.com/Jamyn/dispatch/blob/main/src/dispatch/incident/scheduled.py#L257).
Dispatch [calculates](https://github.com/helldweller/dispatch/blob/main/src/dispatch/incident/service.py#L279) the cost of an incident by adding up the time participants have spent on each incident role \(e.g., Incident Commander\) and applying an [engagement multiplier](https://github.com/helldweller/dispatch/blob/main/src/dispatch/incident/service.py#L266) that's based on the incident role. It also includes time spent on incident review-related activities. Dispatch calculates and publishes the cost for all incidents [every 5 minutes](https://github.com/helldweller/dispatch/blob/main/src/dispatch/incident/scheduled.py#L257).

You can tweak incident cost parameters on a per-project basis by editing your project [here](../project.mdx)
2 changes: 1 addition & 1 deletion docs/docs/administration/settings/messaging.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Dispatch supports sending email notifications to participants of, for example, a

## Notification templates

Templates for emails are [part](https://github.com/Jamyn/dispatch/tree/main/src/dispatch/messaging/email/templates) of Dispatch
Templates for emails are [part](https://github.com/helldweller/dispatch/tree/main/src/dispatch/messaging/email/templates) of Dispatch
and are [Jinja](https://jinja.palletsprojects.com/) templates that during runtime are compiled into [MJML](https://mjml.io/) format.

There is a way to customize these templates. To do this, if you run Dispatch with [Docker Compose](https://github.com/Jamyn/dispatch-docker/),
Expand Down
2 changes: 1 addition & 1 deletion docs/docs/administration/settings/server.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -238,4 +238,4 @@ Add a ALB listener action without authenticate for `/api/v1/{organization}/event

### Incident Cost

Dispatch [calculates](https://github.com/Jamyn/dispatch/blob/main/src/dispatch/incident/service.py#L279) the cost of an incident by adding up the time participants have spent on each incident role \(e.g., Incident Commander\) and applying an [engagement multiplier](https://github.com/Jamyn/dispatch/blob/main/src/dispatch/incident/service.py#L266) that's based on the incident role. It also includes time spent on incident review-related activities. Dispatch calculates and publishes the cost for all incidents [every 5 minutes](https://github.com/Jamyn/dispatch/blob/main/src/dispatch/incident/scheduled.py#L257).
Dispatch [calculates](https://github.com/helldweller/dispatch/blob/main/src/dispatch/incident/service.py#L279) the cost of an incident by adding up the time participants have spent on each incident role \(e.g., Incident Commander\) and applying an [engagement multiplier](https://github.com/helldweller/dispatch/blob/main/src/dispatch/incident/service.py#L266) that's based on the incident role. It also includes time spent on incident review-related activities. Dispatch calculates and publishes the cost for all incidents [every 5 minutes](https://github.com/helldweller/dispatch/blob/main/src/dispatch/incident/scheduled.py#L257).
2 changes: 1 addition & 1 deletion docs/docs/administration/settings/signal/definition.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ r = session.post(

:::note

You can view the full API documentation for the `/instances` endpoint in the [API Reference](https://jamyn.github.io/dispatch/docs/api#tag/signals/operation/create_signal_instance__organization__signals_instances_post).
You can view the full API documentation for the `/instances` endpoint in the [API Reference](https://helldweller.github.io/dispatch/docs/api#tag/signals/operation/create_signal_instance__organization__signals_instances_post).

:::

Expand Down
2 changes: 1 addition & 1 deletion docs/docs/changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ Dispatch uses the [calver](https://calver.org/) version schema.

See the "released" page on the application repository for more information about changes:

[Releases](https://github.com/Jamyn/dispatch/releases)
[Releases](https://github.com/helldweller/dispatch/releases)
6 changes: 3 additions & 3 deletions docs/docs/support.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ description: >-

## General Support

We provide support via [this repo's issue tracker](https://github.com/Jamyn/dispatch/issues). We do our best to respond in a timely manner, but please keep in mind that open source is not a core responsibility of our job and we provide the code and support on a best effort basis.
We provide support via [this repo's issue tracker](https://github.com/helldweller/dispatch/issues). We do our best to respond in a timely manner, but please keep in mind that open source is not a core responsibility of our job and we provide the code and support on a best effort basis.

## Reporting a Security Issue

We ask that you do not report a security issue to our standard GitHub issue tracker.

If you believe you've identified a security issue with `Dispatch`, please report it privately via [GitHub security advisories](https://github.com/Jamyn/dispatch/security/advisories/new).
If you believe you've identified a security issue with `Dispatch`, please report it privately via [GitHub security advisories](https://github.com/helldweller/dispatch/security/advisories/new).

> **Note:** The codebase contains no secret values. Development secrets are generated locally by `docker/dev-setup.sh` into a gitignored `docker/.env`; the committed `docker/.env.example` carries only placeholders.

## Supported Versions

This is a single-maintainer, best-effort project with no SLA, but reports are read and acted on. Bug and security reports are accepted against the **latest tagged release** and the current `main` tip only — see [SECURITY.md](https://github.com/Jamyn/dispatch/blob/main/SECURITY.md) for the full policy.
This is a single-maintainer, best-effort project with no SLA, but reports are read and acted on. Bug and security reports are accepted against the **latest tagged release** and the current `main` tip only — see [SECURITY.md](https://github.com/helldweller/dispatch/blob/main/SECURITY.md) for the full policy.
Loading
Loading