MCPcopy
hub / github.com/target/goalert

github.com/target/goalert @v0.34.1 sqlite

repository ↗ · DeepWiki ↗ · release v0.34.1 ↗
8,508 symbols 29,924 edges 1,401 files 1,743 documented · 20%
README

GoAlert

GoAlert provides on-call scheduling, automated escalations and notifications (like SMS or voice calls) to automatically engage the right person, the right way, and at the right time.

main-screen-updated

Installation

GoAlert is distributed as a single binary with release notes available from the GitHub Releases page. Additionally, images are published on Docker Hub for each release. The latest tag is the most recent release, and nightly is the latest build from the master branch.

See our Getting Started Guide for running GoAlert in a production environment.

Quick Start

docker run -it --rm -p 8081:8081 goalert/demo

GoAlert will be running at localhost:8081. You can log in with admin/admin123.

If you're using the demo container for integration testing:

  • A non-admin user is available as user/user1234.
  • You can specify the ENV variable SKIP_SEED=1 to skip the initial seed data step.
  • You can get a session token via curl -XPOST -H 'Referer: http://localhost:8081' -d 'username=admin&password=admin123' 'http://localhost:8081/api/v2/identity/providers/basic?noRedirect=1'.

Contributing (Local Development)

If you'd like to contribute to GoAlert, please see our Contributing Guidelines and the Development Setup Guide.

Please also see our Code of Conduct.

For most purposes, you can use make start from the root of this repo to start a development server.

  • It will be running at http://localhost:3030
  • Default login is admin/admin123
  • Changes you make locally, UI and backend, should be reflected in the running server within a few seconds (no need to restart the server).

Contact Us

If you need help or have a question, the #goalert Slack channel is available on gophers.slack.com.

To access Gophers Slack and the #goalert channel, you will need an invitation. You request one through the automated process here: https://invite.slack.golangbridge.org/

License

GoAlert is licensed under the Apache License, Version 2.0.

Extension points exported contracts — how you extend this code

MessageSender (Interface)
A MessageSender can send notifications. [8 implementers]
notification/nfydest/messagesender.go
Module (Interface)
Module is a processing lock module. [14 implementers]
engine/processinglock/module.go
Verb (Interface)
Verb is any verb that can be nested inside a Response. [6 implementers]
devtools/mocktwilio/twiml/anyverb.go
SubIterator (Interface)
A SubIterator can be added to a TimeIterator via the Register method. [5 implementers]
oncall/timeiterator.go
PauseResumer (Interface)
A PauseResumer can be atomically paused and resumed. [4 implementers]
app/lifecycle/pauseresumer.go
Source (Interface)
A Source will provide a snapshot of a Config struct. [4 implementers]
config/source.go
ReceiverSetter (Interface)
ReceiverSetter is an optional interface a Sender can implement for use with two-way interactions. [3 implementers]
notification/sender.go
IdentityProvider (Interface)
An IdentityProvider provides an option for a user to login (identify themselves). Examples include user/pass, OIDC, LDA [3 …
auth/identityprovider.go

Core symbols most depended-on inside this repo

get
called by 915
notification/twilio/client.go
New
called by 609
auth/nonce/store.go
String
called by 474
test/smoke/migratetest/ruleset.go
Error
called by 467
graphql2/stringmap.go
Close
called by 375
test/smoke/harness/harness.go
check
called by 348
web/src/app/schedules/util.js
Equal
called by 308
gadb/dest.go
Scan
called by 283
schedule/rule/rule.go

Shape

Method 4,631
Function 2,157
Struct 929
Interface 575
TypeAlias 172
FuncType 24
Class 20

Languages

Go81%
TypeScript19%

Modules by API surface

graphql2/generated.go2,120 symbols
gadb/queries.sql.go333 symbols
graphql2/models_gen.go210 symbols
web/src/schema.d.ts181 symbols
gadb/models.go148 symbols
test/smoke/harness/slack.go66 symbols
pkg/sysapi/sysapi.pb.go63 symbols
test/smoke/harness/harness.go52 symbols
assignment/target.go52 symbols
graphql2/graphqlapp/alert.go40 symbols
validation/fieldvalidationerror.go33 symbols
devtools/resetdb/datagen.go33 symbols

Dependencies from manifests, versioned

4d63.com/gocheckcompilerdirectivesv1.3.0 · 1×
4d63.com/gochecknoglobalsv0.2.2 · 1×
cel.dev/exprv0.24.0 · 1×
cloud.google.com/go/compute/metadatav0.7.0 · 1×
dario.cat/mergov1.0.2 · 1×
filippo.io/edwards25519v1.1.0 · 1×
github.com/4meepo/tagalignv1.4.2 · 1×
github.com/Abirdcfly/dupwordv0.1.3 · 1×
github.com/Antonboom/errnamev1.1.0 · 1×
github.com/Antonboom/nilnilv1.1.0 · 1×
github.com/Antonboom/testifylintv1.6.0 · 1×

Datastores touched

goalertDatabase · 1 repos
goalert2Database · 1 repos
goalert_integrationDatabase · 1 repos
goalert_swo_mainDatabase · 1 repos
goalert_swo_nextDatabase · 1 repos
postgresDatabase · 1 repos

For agents

$ claude mcp add goalert \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact