Connect PagerDuty
Register a Classic User OAuth app and create a verified Init connection.
Before you start
Engine operator registers one PagerDuty OAuth app using Classic User OAuth for the Init platform. Connection admin/user authorizes that app for their PagerDuty account during Connect.
You need:
- A PagerDuty account with permission to register apps (Integrations → App Registration, labels may vary by plan).
- A PagerDuty user who can authorize OAuth apps for the customer account (and the correct service region, US or EU).
- The engine public base URL for the redirect URL.
Configure the provider
One-time platform PagerDuty app (Engine operator)
-
In PagerDuty, open app registration and create a new app with OAuth 2.0 functionality.
-
Choose Classic User OAuth (Init’s pack uses Classic User OAuth with PKCE, not Scoped OAuth).
-
Set the Redirect URL to:
{FUSE_PUBLIC_URL}/v1/oauth/pagerduty/callback -
Configure permission scopes to the minimum Classic scopes your Init actions require (
readand/orwrite). Do not request write access unless write actions are enabled. -
Register the app and store the Client ID and Client Secret in the Fuse environment as
PAGERDUTY_OAUTH_CLIENT_IDandPAGERDUTY_OAUTH_CLIENT_SECRET. Never commit these values.
Per-account authorization (Connection admin/user)
Customers authorize the platform app through Init Connect. They do not paste API keys into Connect for this provider.
Connect to Init
- Connection admin/user starts a PagerDuty Connect session.
- Sign in to PagerDuty (correct US/EU identity host for the account) and approve the requested scopes.
- Init completes the authorization-code + PKCE callback and stores the connection. No customer credential fields are submitted.
If Init later enables write actions that require the Classic write scope, reconnect so PagerDuty re-consents.
Permissions
Classic User OAuth scopes for this pack are read and write (with write implying read). The generated action matrix lists which actions need which Classic scope.
Baseline identity scope (runtime policy, not action-declared): Init always includes openid so it can validate the PagerDuty ID token and bind the account. This is separate from action-required read/write scopes.
Authorization acts on behalf of the consenting PagerDuty user. Use an account with only the operational privileges you intend Init to exercise.
Verify the connection
- Confirm Connect completes and Init shows an active PagerDuty connection for the expected account/subdomain.
- Run a safe read such as listing services or on-calls the user can view.
- Success looks like PagerDuty API reads succeeding without
401/403and the connection remaining bound to the authorized account.
Rotate or revoke access
- Rotate platform secrets (Engine operator): rotate the OAuth client secret in PagerDuty app settings, update
PAGERDUTY_OAUTH_CLIENT_SECRET, then retire the old secret. - Revoke customer access (Connection admin/user): remove the authorized app from the PagerDuty account, or delete the Init connection.
- After Classic scope expansion (for example adding
write), reconnect/reauthorize before write actions succeed.
Troubleshooting
| Symptom | What to check |
|---|---|
| Redirect URL error | Must match {FUSE_PUBLIC_URL}/v1/oauth/pagerduty/callback. |
| Wrong OAuth mode | Platform app must use Classic User OAuth; Scoped OAuth is not this Init pack. |
| Region confusion | Authorize with the PagerDuty identity for the account’s US or EU region. |
| Write actions fail after product change | Reconnect to obtain Classic write (Init collapses read+write requests appropriately). |
| Fuse cannot start OAuth | Confirm PAGERDUTY_OAUTH_CLIENT_ID and PAGERDUTY_OAUTH_CLIENT_SECRET. |