Skip to content

Commit

Permalink
Updated Feature: Activity-based Incident Cost Model (#4172)
Browse files Browse the repository at this point in the history
* Bump uvloop from 0.18.0 to 0.19.0 (#3896)

Bumps [uvloop](https://github.com/MagicStack/uvloop) from 0.18.0 to 0.19.0.
- [Release notes](https://github.com/MagicStack/uvloop/releases)
- [Commits](https://github.com/MagicStack/uvloop/compare/v0.18.0...v0.19.0)

---
updated-dependencies:
- dependency-name: uvloop
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump email-validator from 2.0.0.post2 to 2.1.0.post1 (#3897)

Bumps [email-validator](https://github.com/JoshData/python-email-validator) from 2.0.0.post2 to 2.1.0.post1.
- [Release notes](https://github.com/JoshData/python-email-validator/releases)
- [Changelog](https://github.com/JoshData/python-email-validator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/JoshData/python-email-validator/commits)

---
updated-dependencies:
- dependency-name: email-validator
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump vue from 2.7.14 to 2.7.15 in /src/dispatch/static/dispatch (#3895)

Bumps [vue](https://github.com/vuejs/core) from 2.7.14 to 2.7.15.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 8.51.0 to 8.52.0 in /src/dispatch/static/dispatch (#3894)

Bumps [eslint](https://github.com/eslint/eslint) from 8.51.0 to 8.52.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.51.0...v8.52.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump vue-template-compiler in /src/dispatch/static/dispatch (#3893)

Bumps [vue-template-compiler](https://github.com/vuejs/vue) from 2.7.14 to 2.7.15.
- [Release notes](https://github.com/vuejs/vue/releases)
- [Changelog](https://github.com/vuejs/vue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue/compare/v2.7.14...v2.7.15)

---
updated-dependencies:
- dependency-name: vue-template-compiler
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @vue/compiler-sfc in /src/dispatch/static/dispatch (#3892)

Bumps [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc) from 3.3.4 to 3.3.6.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.3.6/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ruff from 0.1.0 to 0.1.1 (#3891)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.0 to 0.1.1.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.0...v0.1.1)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump schemathesis from 3.19.7 to 3.20.1 (#3890)

Bumps [schemathesis](https://github.com/schemathesis/schemathesis) from 3.19.7 to 3.20.1.
- [Release notes](https://github.com/schemathesis/schemathesis/releases)
- [Changelog](https://github.com/schemathesis/schemathesis/blob/master/docs/changelog.rst)
- [Commits](https://github.com/schemathesis/schemathesis/compare/v3.19.7...v3.20.1)

---
updated-dependencies:
- dependency-name: schemathesis
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump faker from 19.10.0 to 19.11.0 (#3887)

Bumps [faker](https://github.com/joke2k/faker) from 19.10.0 to 19.11.0.
- [Release notes](https://github.com/joke2k/faker/releases)
- [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/joke2k/faker/compare/v19.10.0...v19.11.0)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Enhances Signals table (#3898)

* Enhances Signals table

* removes commented code

* Call ('input') in remove method (#3871)

* Reverts package-lock.json file to version in PR 3892 (#3899)

* Fixing an issue where we aren't paging for critical (#3902)

* Fixing an issue where we aren't paging for critical

* Adding back in search vector

* Removing vector based on signal

* Update to vue 3 (#3857)

* update packages

* auto fix

* update root navigation

* remove vuex-router-sync mapped fields

* update dashboards

* set default icon button variant to text

* replace vee-validate with v-form

* auto fix

* manual fix

* replace vue filters with function calls

* remove deprecated grid components

* remove deprecated slot syntax

* disable explicit emits

* update event hyphenation

* move v-for key to template node

* remove deprecated $listeners

* remove badge overlap prop

* remove deprecated app prop

* remove deprecated clipped prop

* clean up

* update search results summary tables

* update chip size prop

* update activator slots

* fix menu positioning

* swap field append-inner/outer

* update combobox selection slots

* remove .native modifier

* show active indicator on all list items

* update table headers and slots

* update drawer action buttons

* remove deprecated list sub-components

* replace material icons with mdi

* replace value/input with modelValue

* replace v-app-bar in drawers with v-toolbar

* fix breadcrumbs

* add default color to selection controls

* update vuetify

* update steppers

* replace fixed-width subtitles with title attribute

* update select item slots

* set custom link color

* update help icon

* update InfoWidget

* set default itemTitle to "text"

* add missing sortyBy array

* update tabs

* update monaco

* fix non-existent property access error

* replace VueClipboard with navigator.clipboard

* replace vue-markdown with vue3-markdown-it

* update incident report form

* misc fixes

* replace vuedraggable with vueuse sortable

* replace date-picker and time-picker with native inputs

* remove unused file

* fix BaseCombobox usage

* Adding FormKit dependency and fixing incident drawer

* fix chart card props

* update vuetify

* $vuetify.breakpoint -> $vuetify.display

* v-data-table -> v-data-table-server

* fix timeline layout

* Minor ui fixes

* Migrating btn

* More UI fixes

---------

Co-authored-by: David Whittaker <[email protected]>
Co-authored-by: kevgliss <[email protected]>
Co-authored-by: Marc Vilanova <[email protected]>

* Adds default org for api calls (#3912)

* Do not print out raw role policies in the incident roles UI section (#3913)

* Rollback session in case or exceptions (#3917)

* Bugfix/table font size (#3921)

* Reducing font size

* Removing table density

* Adding padding for spacing on participants and resources tabs (#3920)

* Fixing export preview missing scroll for incidents, cases, and tasks (#3919)

* Fixing styling for incident priority settings, search filter settings, and plugins table (#3918)

* Fixing validation for stable priority

* Ignore v-stepper and other deprecated component linter errors (#3923)

* Fixes issues with Signals table after migration to Vue3 (#3922)

* handle possible null actions in interactive.py (#3914)

* handle possible null actions interactive.py

It is possible that there are tasks, but there is no previous actions value so actions is None. This addresses that issue by setting actions to an empty string if it is None.

* Bump faker from 19.11.0 to 19.13.0 (#3924)

Bumps [faker](https://github.com/joke2k/faker) from 19.11.0 to 19.13.0.
- [Release notes](https://github.com/joke2k/faker/releases)
- [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/joke2k/faker/compare/v19.11.0...v19.13.0)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump google-api-python-client from 2.104.0 to 2.106.0 (#3916)

Bumps [google-api-python-client](https://github.com/googleapis/google-api-python-client) from 2.104.0 to 2.106.0.
- [Release notes](https://github.com/googleapis/google-api-python-client/releases)
- [Changelog](https://github.com/googleapis/google-api-python-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-python-client/compare/v2.104.0...v2.106.0)

---
updated-dependencies:
- dependency-name: google-api-python-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ruff from 0.1.1 to 0.1.3 (#3910)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.1 to 0.1.3.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.1...v0.1.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump werkzeug from 2.3.7 to 3.0.1 (#3908)

Bumps [werkzeug](https://github.com/pallets/werkzeug) from 2.3.7 to 3.0.1.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/2.3.7...3.0.1)

---
updated-dependencies:
- dependency-name: werkzeug
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump cachetools from 5.3.1 to 5.3.2 (#3906)

Bumps [cachetools](https://github.com/tkem/cachetools) from 5.3.1 to 5.3.2.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v5.3.1...v5.3.2)

---
updated-dependencies:
- dependency-name: cachetools
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump black from 23.10.0 to 23.10.1 (#3901)

Bumps [black](https://github.com/psf/black) from 23.10.0 to 23.10.1.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/23.10.0...23.10.1)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ipython from 8.16.1 to 8.17.2 (#3931)

Bumps [ipython](https://github.com/ipython/ipython) from 8.16.1 to 8.17.2.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](https://github.com/ipython/ipython/commits/8.17.2)

---
updated-dependencies:
- dependency-name: ipython
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump markdown from 3.5 to 3.5.1 (#3930)

Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.5 to 3.5.1.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.5...3.5.1)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump protobuf from 4.24.4 to 4.25.0 (#3929)

Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 4.24.4 to 4.25.0.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v4.24.4...v4.25.0)

---
updated-dependencies:
- dependency-name: protobuf
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump duo-client from 5.1.0 to 5.2.0 (#3928)

Bumps [duo-client](https://github.com/duosecurity/duo_client_python) from 5.1.0 to 5.2.0.
- [Release notes](https://github.com/duosecurity/duo_client_python/releases)
- [Commits](https://github.com/duosecurity/duo_client_python/compare/5.1.0...5.2.0)

---
updated-dependencies:
- dependency-name: duo-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump sentry-sdk from 1.32.0 to 1.34.0 (#3927)

Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.32.0 to 1.34.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/1.32.0...1.34.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixing participant select and centralizes component (#3925)

* Fixing participant select and centralizes component

* Add component

* Removing spans

* Fix linting

* Fixes

* Switch to auto-complete

* Fixes autocomplete

* Restyling templates settings page (#3926)

* Bugfix/format timeline fixes (#3932)

* Mirror the incident bottom sheet to prevent focus from being stolen (#3933)

* return object when an item is selected in case/incident table (#3934)

* return object for tasks data table (#3935)

* Bump eslint from 8.52.0 to 8.53.0 in /src/dispatch/static/dispatch (#3943)

Bumps [eslint](https://github.com/eslint/eslint) from 8.52.0 to 8.53.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.52.0...v8.53.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump msal from 1.24.1 to 1.25.0 (#3942)

Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.24.1 to 1.25.0.
- [Release notes](https://github.com/AzureAD/microsoft-authentication-library-for-python/releases)
- [Commits](https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.24.1...1.25.0)

---
updated-dependencies:
- dependency-name: msal
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump vue from 3.3.7 to 3.3.8 in /src/dispatch/static/dispatch (#3941)

Bumps [vue](https://github.com/vuejs/core) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.3.7...v3.3.8)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ruff from 0.1.3 to 0.1.4 (#3940)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.3...v0.1.4)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump uvicorn from 0.23.2 to 0.24.0.post1 (#3939)

Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.23.2 to 0.24.0.post1.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.23.2...0.24.0.post1)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump schemathesis from 3.20.1 to 3.20.2 (#3938)

Bumps [schemathesis](https://github.com/schemathesis/schemathesis) from 3.20.1 to 3.20.2.
- [Release notes](https://github.com/schemathesis/schemathesis/releases)
- [Changelog](https://github.com/schemathesis/schemathesis/blob/master/docs/changelog.rst)
- [Commits](https://github.com/schemathesis/schemathesis/compare/v3.20.1...v3.20.2)

---
updated-dependencies:
- dependency-name: schemathesis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump httpx from 0.24.1 to 0.25.1 (#3937)

Bumps [httpx](https://github.com/encode/httpx) from 0.24.1 to 0.25.1.
- [Release notes](https://github.com/encode/httpx/releases)
- [Changelog](https://github.com/encode/httpx/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/httpx/compare/0.24.1...0.25.1)

---
updated-dependencies:
- dependency-name: httpx
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixing issue with new template dialog always appearing (#3936)

* Removing password element from plugin form (#3945)

* Fixing time not saving correctly in edit event dialog (#3946)

* Project autocomplete (#3944)

* Project autocomplete

* Fixing linting

---------

Co-authored-by: Will Sheldon <[email protected]>

* Use real JSONPathError exception (#3951)

* Bump openai from 0.28.1 to 1.2.0 (#3954)

Bumps [openai](https://github.com/openai/openai-python) from 0.28.1 to 1.2.0.
- [Release notes](https://github.com/openai/openai-python/releases)
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-python/compare/v0.28.1...v1.2.0)

---
updated-dependencies:
- dependency-name: openai
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @vitejs/plugin-vue in /src/dispatch/static/dispatch (#3953)

Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 4.4.0 to 4.4.1.
- [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-vue/commits/[email protected]/packages/plugin-vue)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-vue"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump google-api-python-client from 2.106.0 to 2.107.0 (#3952)

Bumps [google-api-python-client](https://github.com/googleapis/google-api-python-client) from 2.106.0 to 2.107.0.
- [Release notes](https://github.com/googleapis/google-api-python-client/releases)
- [Changelog](https://github.com/googleapis/google-api-python-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-python-client/compare/v2.106.0...v2.107.0)

---
updated-dependencies:
- dependency-name: google-api-python-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump pytest from 7.4.2 to 7.4.3 (#3949)

Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.2 to 7.4.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.2...7.4.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump pandas from 2.1.1 to 2.1.2 (#3948)

Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.1.1...v2.1.2)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump alembic from 1.12.0 to 1.12.1 (#3947)

Bumps [alembic](https://github.com/sqlalchemy/alembic) from 1.12.0 to 1.12.1.
- [Release notes](https://github.com/sqlalchemy/alembic/releases)
- [Changelog](https://github.com/sqlalchemy/alembic/blob/main/CHANGES)
- [Commits](https://github.com/sqlalchemy/alembic/commits)

---
updated-dependencies:
- dependency-name: alembic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Only display raw data in signal viewer (#3955)

* Only display raw data in signal viewer

* Fixes warning and error in EditEventDialog.vue

* Revert "Bump alembic from 1.12.0 to 1.12.1 (#3947)" (#3968)

This reverts commit f983f790e81a2ca1f515d4d06251c59cdfd161df.

* Fixing playwright tests (#3969)

* Continue to work on fixing playwright tests (#3970)

* Have playwright.yml only run on chromium

* Replacing deprecated props (#3971)

* Making search more reliable (#3967)

Co-authored-by: Will Sheldon <[email protected]>
Co-authored-by: David Whittaker <[email protected]>
Co-authored-by: David Whittaker <[email protected]>

* Bugfix/vuetify upgrade (#3973)

* Upgrade and remove labs

* Upgrade lock

* Bump faker from 19.13.0 to 20.0.0 (#3972)

Bumps [faker](https://github.com/joke2k/faker) from 19.13.0 to 20.0.0.
- [Release notes](https://github.com/joke2k/faker/releases)
- [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/joke2k/faker/compare/v19.13.0...v20.0.0)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump schemathesis from 3.20.2 to 3.21.0 (#3966)

Bumps [schemathesis](https://github.com/schemathesis/schemathesis) from 3.20.2 to 3.21.0.
- [Release notes](https://github.com/schemathesis/schemathesis/releases)
- [Changelog](https://github.com/schemathesis/schemathesis/blob/master/docs/changelog.rst)
- [Commits](https://github.com/schemathesis/schemathesis/compare/v3.20.2...v3.21.0)

---
updated-dependencies:
- dependency-name: schemathesis
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump ruff from 0.1.4 to 0.1.5 (#3965)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.4 to 0.1.5.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.4...v0.1.5)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump black from 23.10.1 to 23.11.0 (#3964)

Bumps [black](https://github.com/psf/black) from 23.10.1 to 23.11.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/23.10.1...23.11.0)

---
updated-dependencies:
- dependency-name: black
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump openai from 1.2.0 to 1.2.2 (#3963)

Bumps [openai](https://github.com/openai/openai-python) from 1.2.0 to 1.2.2.
- [Release notes](https://github.com/openai/openai-python/releases)
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-python/compare/v1.2.0...v1.2.2)

---
updated-dependencies:
- dependency-name: openai
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump @formkit/vue from 1.2.2 to 1.3.0 in /src/dispatch/static/dispatch (#3962)

Bumps [@formkit/vue](https://github.com/formkit/formkit/tree/HEAD/packages/rules) from 1.2.2 to 1.3.0.
- [Release notes](https://github.com/formkit/formkit/releases)
- [Commits](https://github.com/formkit/formkit/commits/HEAD/packages/rules)

---
updated-dependencies:
- dependency-name: "@formkit/vue"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump @vueuse/integrations in /src/dispatch/static/dispatch (#3961)

Bumps [@vueuse/integrations](https://github.com/vueuse/vueuse/tree/HEAD/packages/integrations) from 10.5.0 to 10.6.0.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v10.6.0/packages/integrations)

---
updated-dependencies:
- dependency-name: "@vueuse/integrations"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump @formkit/themes in /src/dispatch/static/dispatch (#3960)

Bumps [@formkit/themes](https://github.com/formkit/formkit/tree/HEAD/packages/themes) from 1.2.2 to 1.3.0.
- [Release notes](https://github.com/formkit/formkit/releases)
- [Commits](https://github.com/formkit/formkit/commits/HEAD/packages/themes)

---
updated-dependencies:
- dependency-name: "@formkit/themes"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump eslint-plugin-vuetify in /src/dispatch/static/dispatch (#3959)

Bumps [eslint-plugin-vuetify](https://github.com/vuetifyjs/eslint-plugin-vuetify) from 2.0.5 to 2.1.0.
- [Release notes](https://github.com/vuetifyjs/eslint-plugin-vuetify/releases)
- [Commits](https://github.com/vuetifyjs/eslint-plugin-vuetify/compare/v2.0.5...v2.1.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-vuetify
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Updates OpenAI plugin (#3975)

* Bump openai from 1.2.2 to 1.2.4 (#3976)

Bumps [openai](https://github.com/openai/openai-python) from 1.2.2 to 1.2.4.
- [Release notes](https://github.com/openai/openai-python/releases)
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-python/compare/v1.2.2...v1.2.4)

---
updated-dependencies:
- dependency-name: openai
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Pre commit/eslint ruff versions (#3957)

* Add eslint pre-commit and ruff, typos

* Add husky

* Bump vuetify from 3.3.22 to 3.4.0 in /src/dispatch/static/dispatch (#3982)

Bumps [vuetify](https://github.com/vuetifyjs/vuetify/tree/HEAD/packages/vuetify) from 3.3.22 to 3.4.0.
- [Release notes](https://github.com/vuetifyjs/vuetify/releases)
- [Commits](https://github.com/vuetifyjs/vuetify/commits/v3.4.0/packages/vuetify)

---
updated-dependencies:
- dependency-name: vuetify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Removes canary column in signal instance table (#3985)

Co-authored-by: David Whittaker <[email protected]>

* Only show variant in case notification if it is set (#3984)

* Only show variant in case notification if it exists

* walrus operator

---------

Co-authored-by: David Whittaker <[email protected]>

* Sets resolution reason when case is resolved through signal engagement (#3983)

Co-authored-by: David Whittaker <[email protected]>

* Bump slack-sdk from 3.23.0 to 3.23.1 (#3988)

Bumps [slack-sdk](https://github.com/slackapi/python-slack-sdk) from 3.23.0 to 3.23.1.
- [Release notes](https://github.com/slackapi/python-slack-sdk/releases)
- [Changelog](https://github.com/slackapi/python-slack-sdk/blob/main/docs-v2/changelog.html)
- [Commits](https://github.com/slackapi/python-slack-sdk/compare/v3.23.0...v3.23.1)

---
updated-dependencies:
- dependency-name: slack-sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump google-api-python-client from 2.107.0 to 2.108.0 (#3987)

Bumps [google-api-python-client](https://github.com/googleapis/google-api-python-client) from 2.107.0 to 2.108.0.
- [Release notes](https://github.com/googleapis/google-api-python-client/releases)
- [Changelog](https://github.com/googleapis/google-api-python-client/blob/main/CHANGELOG.md)
- [Commits](https://github.com/googleapis/google-api-python-client/compare/v2.107.0...v2.108.0)

---
updated-dependencies:
- dependency-name: google-api-python-client
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @vueuse/integrations in /src/dispatch/static/dispatch (#3981)

Bumps [@vueuse/integrations](https://github.com/vueuse/vueuse/tree/HEAD/packages/integrations) from 10.6.0 to 10.6.1.
- [Release notes](https://github.com/vueuse/vueuse/releases)
- [Commits](https://github.com/vueuse/vueuse/commits/v10.6.1/packages/integrations)

---
updated-dependencies:
- dependency-name: "@vueuse/integrations"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump numpy from 1.26.1 to 1.26.2 (#3979)

Bumps [numpy](https://github.com/numpy/numpy) from 1.26.1 to 1.26.2.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v1.26.1...v1.26.2)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump sentry-sdk from 1.34.0 to 1.35.0 (#3978)

Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.34.0 to 1.35.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/1.34.0...1.35.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Bump pandas from 2.1.2 to 2.1.3 (#3977)

Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.1.2...v2.1.3)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: David Whittaker <[email protected]>

* Declutters Slack case threads (#3994)

* Declutters Slack case threads

* Update src/dispatch/plugins/dispatch_slack/case/messages.py

Co-authored-by: Will Sheldon <[email protected]>

* Update src/dispatch/plugins/dispatch_slack/case/messages.py

Co-authored-by: Will Sheldon <[email protected]>

---------

Co-authored-by: Will Sheldon <[email protected]>

* Fixes DSN. (#3986)

* Uses entity type name in Slack snooze modal (#3995)

* Show entity value in entity filter combobox (#3996)

* Aligns form styles and reverts project autocomplete (#3989)

* Aligns form styles and reverts project autocomplete

* Adding cases

* Update src/dispatch/static/dispatch/src/auth/Register.vue

Co-authored-by: Marc Vilanova <[email protected]>

---------

Co-authored-by: Marc Vilanova <[email protected]>

* Fixing settings bread crumbs (#3992)

* Fixing table cards to remove card outlines (#3990)

Co-authored-by: David Whittaker <[email protected]>

* Increase min page sizes (#3993)

* Bump slack-sdk from 3.23.1 to 3.24.0 (#4001)

Bumps [slack-sdk](https://github.com/slackapi/python-slack-sdk) from 3.23.1 to 3.24.0.
- [Release notes](https://github.com/slackapi/python-slack-sdk/releases)
- [Changelog](https://github.com/slackapi/python-slack-sdk/blob/main/docs-v2/changelog.html)
- [Commits](https://github.com/slackapi/python-slack-sdk/compare/v3.23.1...v3.24.0)

---
updated-dependencies:
- dependency-name: slack-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump faker from 20.0.0 to 20.0.3 (#4000)

Bumps [faker](https://github.com/joke2k/faker) from 20.0.0 to 20.0.3.
- [Release notes](https://github.com/joke2k/faker/releases)
- [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/joke2k/faker/compare/v20.0.0...v20.0.3)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump pdpyras from 5.1.2 to 5.1.3 (#3999)

Bumps [pdpyras](https://github.com/PagerDuty/pdpyras) from 5.1.2 to 5.1.3.
- [Release notes](https://github.com/PagerDuty/pdpyras/releases)
- [Changelog](https://github.com/PagerDuty/pdpyras/blob/main/docs/changelog.html)
- [Commits](https://github.com/PagerDuty/pdpyras/compare/v5.1.2...v5.1.3)

---
updated-dependencies:
- dependency-name: pdpyras
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump openai from 1.2.4 to 1.3.0 (#3998)

Bumps [openai](https://github.com/openai/openai-python) from 1.2.4 to 1.3.0.
- [Release notes](https://github.com/openai/openai-python/releases)
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-python/compare/v1.2.4...v1.3.0)

---
updated-dependencies:
- dependency-name: openai
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump protobuf from 4.25.0 to 4.25.1 (#3997)

Bumps [protobuf](https://github.com/protocolbuffers/protobuf) from 4.25.0 to 4.25.1.
- [Release notes](https://github.com/protocolbuffers/protobuf/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/protobuf_release.bzl)
- [Commits](https://github.com/protocolbuffers/protobuf/compare/v4.25.0...v4.25.1)

---
updated-dependencies:
- dependency-name: protobuf
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Correctly render object title in SignalEngagementCombobox (#4002)

* Handle invalid JSONPath with KeyError, Exceptions, and add test cases (#4007)

* Handle invalid JSONPath with KeyError, general Exceptions, and add test cases

* Change comment to correct value

* Update log line to be a warning instead of an exception

* Bump ruff from 0.1.5 to 0.1.6 (#4016)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.5 to 0.1.6.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.5...v0.1.6)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixing project and case type select (#4010)

* Bugfix/cant add assignee (#4017)

* Bump aiohttp from 3.8.6 to 3.9.0 (#4015)

Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.8.6 to 3.9.0.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.8.6...v3.9.0)

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump openai from 1.3.0 to 1.3.3 (#4014)

Bumps [openai](https://github.com/openai/openai-python) from 1.3.0 to 1.3.3.
- [Release notes](https://github.com/openai/openai-python/releases)
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-python/compare/v1.3.0...v1.3.3)

---
updated-dependencies:
- dependency-name: openai
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint from 8.53.0 to 8.54.0 in /src/dispatch/static/dispatch (#4013)

Bumps [eslint](https://github.com/eslint/eslint) from 8.53.0 to 8.54.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.53.0...v8.54.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump schemathesis from 3.21.0 to 3.21.1 (#4006)

Bumps [schemathesis](https://github.com/schemathesis/schemathesis) from 3.21.0 to 3.21.1.
- [Release notes](https://github.com/schemathesis/schemathesis/releases)
- [Changelog](https://github.com/schemathesis/schemathesis/blob/master/docs/changelog.rst)
- [Commits](https://github.com/schemathesis/schemathesis/compare/v3.21.0...v3.21.1)

---
updated-dependencies:
- dependency-name: schemathesis
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @playwright/test in /src/dispatch/static/dispatch (#4004)

Bumps [@playwright/test](https://github.com/microsoft/playwright) from 1.39.0 to 1.40.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.39.0...v1.40.0)

---
updated-dependencies:
- dependency-name: "@playwright/test"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @vitejs/plugin-vue in /src/dispatch/static/dispatch (#4003)

Bumps [@vitejs/plugin-vue](https://github.com/vitejs/vite-plugin-vue/tree/HEAD/packages/plugin-vue) from 4.4.1 to 4.5.0.
- [Release notes](https://github.com/vitejs/vite-plugin-vue/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-vue/blob/main/packages/plugin-vue/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-vue/commits/[email protected]/packages/plugin-vue)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-vue"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Do not send case traige reminders if there is no assignee. (#4008)

* Do not send case traige reminders if there is no assignee.

* Case assignee check fails faster.

* Make assignee combobox behave like participant select (#4018)

* Bump sentry-sdk from 1.35.0 to 1.37.0 (#4027)

Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.35.0 to 1.37.0.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/1.35.0...1.37.0)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump ipython from 8.17.2 to 8.18.0 (#4026)

Bumps [ipython](https://github.com/ipython/ipython) from 8.17.2 to 8.18.0.
- [Release notes](https://github.com/ipython/ipython/releases)
- [Commits](https://github.com/ipython/ipython/compare/8.17.2...8.18.0)

---
updated-dependencies:
- dependency-name: ipython
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump slack-sdk from 3.24.0 to 3.26.0 (#4025)

Bumps [slack-sdk](https://github.com/slackapi/python-slack-sdk) from 3.24.0 to 3.26.0.
- [Release notes](https://github.com/slackapi/python-slack-sdk/releases)
- [Changelog](https://github.com/slackapi/python-slack-sdk/blob/main/docs-v2/changelog.html)
- [Commits](https://github.com/slackapi/python-slack-sdk/compare/v3.24.0...v3.26.0)

---
updated-dependencies:
- dependency-name: slack-sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump openai from 1.3.3 to 1.3.5 (#4024)

Bumps [openai](https://github.com/openai/openai-python) from 1.3.3 to 1.3.5.
- [Release notes](https://github.com/openai/openai-python/releases)
- [Changelog](https://github.com/openai/openai-python/blob/main/CHANGELOG.md)
- [Commits](https://github.com/openai/openai-python/compare/v1.3.3...v1.3.5)

---
updated-dependencies:
- dependency-name: openai
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump faker from 20.0.3 to 20.1.0 (#4021)

Bumps [faker](https://github.com/joke2k/faker) from 20.0.3 to 20.1.0.
- [Release notes](https://github.com/joke2k/faker/releases)
- [Changelog](https://github.com/joke2k/faker/blob/master/CHANGELOG.md)
- [Commits](https://github.com/joke2k/faker/compare/v20.0.3...v20.1.0)

---
updated-dependencies:
- dependency-name: faker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Dark mode not persisting through reloads (#4033)

* Bump slack-bolt from 1.18.0 to 1.18.1 (#4032)

Bumps [slack-bolt](https://github.com/slackapi/bolt-python) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/slackapi/bolt-python/releases)
- [Commits](https://github.com/slackapi/bolt-python/compare/v1.18.0...v1.18.1)

---
updated-dependencies:
- dependency-name: slack-bolt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump aiohttp from 3.9.0 to 3.9.1 (#4031)

Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.9.0 to 3.9.1.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.9.0...v3.9.1)

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump sentry-sdk from 1.37.0 to 1.37.1 (#4030)

Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.37.0 to 1.37.1.
- [Release notes](https://github.com/getsentry/sentry-python/releases)
- [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-python/compare/1.37.0...1.37.1)

---
updated-dependencies:
- dependency-name: sentry-sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump eslint-plugin-local-rules in /src/dispatch/static/dispatch (#4029)

Bumps [eslint-plugin-local-rules](https://github.com/cletusw/eslint-plugin-local-rules) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/cletusw/eslint-plugin-local-rules/releases)
- [Commits](https://github.com/cletusw/eslint-plugin-local-rules/compare/v2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-local-rules
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump vue from 3.3.8 to 3.3.9 in /src/dispatch/static/dispatch (#4028)

Bumps [vue](https://github.com/vuejs/core) from 3.3.8 to 3.3.9.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/compare/v3.3.8...v3.3.9)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fixes signal instance deduplication check. (#4012)

* Deduplicating signal instances should only occur when those instances are associated with a case.

* Checks for existing cases before signal deduplication.

---------

Co-authored-by: kevgliss <[email protected]>

* Swallow send exceptions (#4034)

* All backend. Creates new models and adds new API calls for improving the cost model. Refactors Plugin Events. Creates PluginEvents views. Adds routes for incident cost model deletion. Adds incident cost model to the scheduler.

* Front end

* Refactors incident cost calculations

* Fixed front end.

* Updates to database schema.

* Removes unused code/comments.

* Restores main branch's package-lock.json.

* Fixes Pylint errors.

* Fixes JavaScript lint errors.

* Fixes cost model documentation.

* Documents which plugin events are currently supported for the incident cost model.

* Adds image of edit sheet to the incident cost model documentation.

* Increases test code readability.

* Cleans up import statements.

* Update src/dispatch/incident_cost_model/service.py

Co-authored-by: Marc Vilanova <[email protected]>

* Update src/dispatch/incident_cost_model/service.py

Co-authored-by: Marc Vilanova <[email protected]>

* Database migration cleanup.

* Fixes error messages and adds doc strings to functions.

* Update src/dispatch/incident_cost_model/service.py

Co-authored-by: Marc Vilanova <[email protected]>

* Update src/dispatch/incident_cost/service.py

Co-authored-by: Marc Vilanova <[email protected]>

* Code cleanup.

* Code cleanup.

* Code cleanup.

* Renames IncidentCostModel* to CostModel*

* Fixes lint errors

* Fixes markdown link

* Adds additional validation.

* Adds additional validation.

* Adds cost model selection in Slack interface.

* Updates cost model documentation with concrete cost calculation examples.

* Cost Model Activity Dialog only displays Plugins with PluginEvents in the PluginInstanceCombobox.

* Fixes database revision change

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marc Vilanova <[email protected]>
Co-authored-by: Will Sheldon <[email protected]>
Co-authored-by: kevgliss <[email protected]>
Co-authored-by: Kael <[email protected]>
Co-authored-by: David Whittaker <[email protected]>
Co-authored-by: David Whittaker <[email protected]>
Co-authored-by: Jason Schroth <[email protected]>
  • Loading branch information
9 people authored Jan 18, 2024
1 parent d976f3a commit c682670
Show file tree
Hide file tree
Showing 64 changed files with 3,364 additions and 141 deletions.
105 changes: 105 additions & 0 deletions docs/docs/user-guide/cost_model.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Cost Model

Our Cost Model is a feature that enables teams to estimate response cost for each incident. Users can opt in to create and use personalized cost calculations for each incident based on participant activity.

If no cost model is assigned to an incident, the default classic cost model will be used. See [Incident Cost Type](../administration/settings/incident/incident-cost-type.mdx###calculating-incident-cost).

<div style={{textAlign: 'center'}}>

![](/img/admin-ui-cost-model.png)

</div>

## Key Features

### Customizable Cost Models
Users have the flexibility to define their unique cost models based on their organization's workflow and tools. This customization can be tailored to each incident, providing a versitile approach to cost calculation. The cost model for an incident can be changed at any time during its lifespan. All participant activity costs moving forward will be calculated using the new cost model.

### Plugin-Based Tracking
Users can track costs from their existing tools by using our plugin-based tracking system. Users have the flexibility to select which plugins and specific plugin events they want to track, offering a targeted approach to cost calculation.

### Effort Assignment
For each tracked activity, users can assign a quantifiable measure of effort, represented in seconds of work time. This feature provides a more accurate representation of the cost of an incident.

### Incident Cost Calculation
Incident cost calculation is based on the cost model and effort assignment for each tracked participant activity. This helps in understanding resource utilization and cost of an incident.


## Currently Supported Plugin Events

### Slack: Channel Activity
This event tracks activity within a specific Slack channel. By periodically polling channel messages, this gathers insights into the activity and engagement levels of each participant.

### Slack: Thread Activity
This event tracks activity within a specific Slack thread. By periodically polling thread replies, this gathers insights into the activity and engagement levels of each participant.


<div style={{textAlign: 'center'}}>

![](/img/admin-ui-edit-cost-model.png)

</div>

## Cost Calculation Examples

Below, we illustrate the use of the cost model through two examples. These are based on the following values:

<b>Cost Model 1</b>

| Plugin Event | Response Time (seconds)
| ------------ | -------------
| Slack Channel Activity | 300

The employee hourly rate can be adjusted by modifying the `Annual Employee Cost` and `Business Year Hours` fields in the [project settings](../administration/settings/project.mdx). In these examples, we will use the following value:
```
hourly_rate = 100
```

#### Example 1

Consider the following Slack channel activity for `Incident 1`:

| Slack Channel Activity Timestamp | Participant
| ------------ | -------------
| 100 | Cookie Doe
| 200 | Nate Flex

The resulting recorded participant activity will be:

| Participant | started_at | ended_at | Plugin Event | Incident
| ------------ | ------------- | ------------- | ------------- | -------------
| Cookie Doe | 100 | 400 | Slack Channel Activity | Incident 1
| Nate Flex | 200 | 500 | Slack Channel Activity | Incident 1


The incident cost is then calculated as:

```
( (400 - 100) + (500-200) ) / SECONDS_IN_HOUR * hourly_rate = $16.67
```

#### Example 2

Consider the following Slack channel activity for `Incident 2`:

| Slack Channel Activity Timestamp | Participant
| ------------ | -------------
| 100 | Cookie Doe
| 150 | Cookie Doe
| 200 | Nate Flex
| 500 | Cookie Doe

The resulting recorded participant activity will be:

| Participant | started_at | ended_at | Plugin Event | Incident
| ------------ | ------------- | ------------- | ------------- | -------------
| Cookie Doe | 100 | 450 | Slack Channel Activity | Incident 2
| Nate Flex | 200 | 500 | Slack Channel Activity | Incident 2
| Cookie Doe | 500 | 800 | Slack Channel Activity | Incident 2


The incident cost is then calculated as:

```
( (450 - 100) + (500 - 200) + (800 - 500) ) / SECONDS_IN_HOUR * hourly_rate = $26.39
```
Binary file added docs/static/img/admin-ui-cost-model.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/static/img/admin-ui-edit-cost-model.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 11 additions & 2 deletions src/dispatch/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
from dispatch.route.models import Recommendation # noqa lgtm[py/unused-import]
from dispatch.conference.models import Conference # noqa lgtm[py/unused-import]
from dispatch.conversation.models import Conversation # noqa lgtm[py/unused-import]
from dispatch.cost_model.models import (
CostModel, # noqa lgtm[py/unused-import]
CostModelActivity, # noqa lgtm[py/unused-import]
)
from dispatch.definition.models import Definition # noqa lgtm[py/unused-import]
from dispatch.document.models import Document # noqa lgtm[py/unused-import]
from dispatch.event.models import Event # noqa lgtm[py/unused-import]
Expand All @@ -37,8 +41,11 @@
from dispatch.individual.models import IndividualContact # noqa lgtm[py/unused-import]
from dispatch.notification.models import Notification # noqa lgtm[py/unused-import]
from dispatch.participant.models import Participant # noqa lgtm[py/unused-import]
from dispatch.participant_activity.models import (
ParticipantActivity, # noqa lgtm[py/unused-import]
)
from dispatch.participant_role.models import ParticipantRole # noqa lgtm[py/unused-import]
from dispatch.plugin.models import Plugin # noqa lgtm[py/unused-import]
from dispatch.plugin.models import Plugin, PluginEvent # noqa lgtm[py/unused-import]
from dispatch.report.models import Report # noqa lgtm[py/unused-import]
from dispatch.service.models import Service # noqa lgtm[py/unused-import]
from dispatch.storage.models import Storage # noqa lgtm[py/unused-import]
Expand All @@ -61,7 +68,9 @@
from dispatch.case.severity.models import CaseSeverity # noqa lgtm[py/unused-import]
from dispatch.case.type.models import CaseType # noqa lgtm[py/unused-import]
from dispatch.signal.models import Signal # noqa lgtm[py/unused-import]
from dispatch.feedback.service.reminder.models import ServiceFeedbackReminder # noqa lgtm[py/unused-import]
from dispatch.feedback.service.reminder.models import (
ServiceFeedbackReminder, # noqa lgtm[py/unused-import]
)
from dispatch.forms.type.models import FormsType # noqa lgtm[py/unused-import]
from dispatch.forms.models import Forms # noqa lgtm[py/unused-import]

Expand Down
11 changes: 8 additions & 3 deletions src/dispatch/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
from dispatch.incident.type.views import router as incident_type_router
from dispatch.incident.views import router as incident_router
from dispatch.incident_cost.views import router as incident_cost_router
from dispatch.cost_model.views import router as cost_model_router
from dispatch.incident_cost_type.views import router as incident_cost_type_router
from dispatch.incident_role.views import router as incident_role_router
from dispatch.individual.views import router as individual_contact_router
Expand Down Expand Up @@ -197,6 +198,11 @@ def get_organization_path(organization: OrganizationSlug):
prefix="/case_severities",
tags=["case_severities"],
)
authenticated_organization_api_router.include_router(
cost_model_router,
prefix="/cost_models",
tags=["cost_models"],
)
authenticated_organization_api_router.include_router(
workflow_router, prefix="/workflows", tags=["workflows"]
)
Expand All @@ -223,13 +229,12 @@ def get_organization_path(organization: OrganizationSlug):
authenticated_organization_api_router.include_router(
incident_role_router, prefix="/incident_roles", tags=["role"]
)
authenticated_organization_api_router.include_router(
forms_router, prefix="/forms", tags=["forms"]
)
authenticated_organization_api_router.include_router(forms_router, prefix="/forms", tags=["forms"])
authenticated_organization_api_router.include_router(
forms_type_router, prefix="/forms_type", tags=["forms_type"]
)


@api_router.get("/healthcheck", include_in_schema=False)
def healthcheck():
return {"status": "ok"}
Expand Down
20 changes: 19 additions & 1 deletion src/dispatch/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def install_plugins(force):
from dispatch.common.utils.cli import install_plugins
from dispatch.database.core import SessionLocal
from dispatch.plugin import service as plugin_service
from dispatch.plugin.models import Plugin
from dispatch.plugin.models import Plugin, PluginEvent
from dispatch.plugins.base import plugins

install_plugins()
Expand All @@ -104,6 +104,7 @@ def install_plugins(force):
description=p.description,
)
db_session.add(plugin)
record = plugin
else:
if force:
click.secho(f"Updating plugin... Slug: {p.slug} Version: {p.version}", fg="blue")
Expand All @@ -115,6 +116,23 @@ def install_plugins(force):
record.description = p.description
record.type = p.type

# Registers the plugin events with the plugin or updates the plugin events
for plugin_event_in in p.plugin_events:
click.secho(f" Registering plugin event... Slug: {plugin_event_in.slug}", fg="blue")
if plugin_event := plugin_service.get_plugin_event_by_slug(
db_session=db_session, slug=plugin_event_in.slug
):
plugin_event.name = plugin_event_in.name
plugin_event.description = plugin_event_in.description
plugin_event.plugin = record
else:
plugin_event = PluginEvent(
name=plugin_event_in.name,
slug=plugin_event_in.slug,
description=plugin_event_in.description,
plugin=record,
)
db_session.add(plugin_event)
db_session.commit()


Expand Down
5 changes: 5 additions & 0 deletions src/dispatch/conversation/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,8 @@ class ConversationButtonActions(DispatchEnum):
service_feedback = "service-feedback"
subscribe_user = "subscribe-user"
update_task_status = "update-task-status"


class ConversationFilters(DispatchEnum):
exclude_bots = "exclude-bots"
exclude_channel_join = "exclude-channel-join"
Empty file.
111 changes: 111 additions & 0 deletions src/dispatch/cost_model/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
from datetime import datetime
from pydantic import Field
from sqlalchemy import (
Column,
Integer,
String,
Boolean,
ForeignKey,
PrimaryKeyConstraint,
Table,
)
from sqlalchemy.orm import relationship
from sqlalchemy.sql.schema import UniqueConstraint
from sqlalchemy_utils import TSVectorType
from typing import List, Optional

from dispatch.database.core import Base
from dispatch.models import (
DispatchBase,
NameStr,
Pagination,
PrimaryKey,
ProjectMixin,
TimeStampMixin,
)
from dispatch.plugin.models import PluginEventRead, PluginEvent
from dispatch.project.models import ProjectRead

assoc_cost_model_activities = Table(
"assoc_cost_model_activities",
Base.metadata,
Column("cost_model_id", Integer, ForeignKey("cost_model.id", ondelete="CASCADE")),
Column(
"cost_model_activity_id",
Integer,
ForeignKey("cost_model_activity.id", ondelete="CASCADE"),
),
PrimaryKeyConstraint("cost_model_id", "cost_model_activity_id"),
)


# SQLAlchemy Model
class CostModelActivity(Base):
id = Column(Integer, primary_key=True)
plugin_event_id = Column(Integer, ForeignKey(PluginEvent.id, ondelete="CASCADE"))
plugin_event = relationship(PluginEvent, backref="plugin_event")
response_time_seconds = Column(Integer, default=300)
enabled = Column(Boolean, default=True)


class CostModel(Base, TimeStampMixin, ProjectMixin):
__table_args__ = (UniqueConstraint("name", "project_id"),)
id = Column(Integer, primary_key=True)
name = Column(String)
description = Column(String)
enabled = Column(Boolean)
activities = relationship(
"CostModelActivity",
secondary=assoc_cost_model_activities,
lazy="subquery",
backref="cost_model",
)
search_vector = Column(
TSVectorType("name", "description", weights={"name": "A", "description": "B"})
)


# Pydantic Models
class CostModelActivityBase(DispatchBase):
plugin_event: PluginEventRead
response_time_seconds: Optional[int] = 300
enabled: Optional[bool] = Field(True, nullable=True)


class CostModelActivityCreate(CostModelActivityBase):
pass


class CostModelActivityRead(CostModelActivityBase):
id: PrimaryKey


class CostModelActivityUpdate(CostModelActivityBase):
id: Optional[PrimaryKey]


class CostModelBase(DispatchBase):
name: NameStr
description: Optional[str] = Field(None, nullable=True)
enabled: Optional[bool] = Field(True, nullable=True)
created_at: Optional[datetime]
updated_at: Optional[datetime]
project: ProjectRead


class CostModelUpdate(CostModelBase):
id: PrimaryKey
activities: Optional[List[CostModelActivityUpdate]] = []


class CostModelCreate(CostModelBase):
activities: Optional[List[CostModelActivityCreate]] = []


class CostModelRead(CostModelBase):
id: PrimaryKey
activities: Optional[List[CostModelActivityRead]] = []


class CostModelPagination(Pagination):
items: List[CostModelRead] = []
Loading

0 comments on commit c682670

Please sign in to comment.