Event Types

SeaWatch tracks 16 security event types organized into five categories. Each event type captures a specific action with its success or failure status.

Authentication

EventDescriptionActorTarget
login_successUser successfully authenticatedUserUser
login_failureAuthentication attempt failedUser (if identified)

login_success details:

{
  "client_id": "my-frontend",
  "grant_type": "password",
  "ip_address": "203.0.113.42"
}

login_failure details:

{
  "reason": "invalid_credentials",
  "client_id": "my-frontend",
  "username": "alice"
}

Failed logins have no actor

When a login fails, the user is not yet authenticated, so actor_id is typically null. The target_id is set when the user could be identified (valid username, wrong password).

Password

EventDescriptionActorTarget
password_resetPassword was reset by an adminAdminUser
password_reset_requestedUser requested a password reset emailSystemUser
password_reset_completedUser completed the password reset flowUserUser

These three events trace the full password reset lifecycle. A password_reset_requested without a matching password_reset_completed might indicate a user who abandoned the flow — or an attacker testing email enumeration.

User

EventDescriptionActorTarget
user_createdNew user account createdAdmin or SystemUser
user_deletedUser account deletedAdminUser

User creation events include whether the user was created by an admin, through self-registration, or as a service account for a client.

Role

EventDescriptionActorTarget
role_assignedRole assigned to a userAdminUser
role_unassignedRole removed from a userAdminUser
role_createdNew role createdAdminRole
role_removedRole deletedAdminRole

Role events are critical for access control audits. They answer: “Who granted this user admin permissions, and when?”

Client

EventDescriptionActorTarget
client_createdNew OAuth2 client registeredAdminClient
client_deletedClient removedAdminClient
client_secret_rotatedClient secret was regeneratedAdminClient

client_secret_rotated is particularly important — it means the old secret is invalidated. If this happens unexpectedly, it could indicate a compromised admin account.

Configuration

EventDescriptionActorTarget
realm_config_changedRealm settings were modifiedAdminRealm

Configuration changes can have wide-reaching effects (enabling/disabling registration, changing token lifetimes). SeaWatch captures the full details of what changed.