> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fastgen.com/llms.txt
> Use this file to discover all available pages before exploring further.

# System Events

**Listen to the heartbeat of your backend project and take action.**

## Overview

System events are emitted internally by the system and offer developers a unique avenue to enhance their applications by effortlessly tapping into and responding to critical points in the backend's lifecycle. Unleash the full potential of Fastgen as you explore the different system events and their event payload, ensuring your projects remain agile and adaptive.

### Datahub events

#### Table Created

Event `api.dataTable_created` is emitted on every table creation done through the Datahub UI on app.fastgen.com

```json Example Payload theme={null}
$param: {
  "ID": "f76c7770-79c3-45a2-96ad-e4e4321ad66b",
  "Name": "Test",
  "Description": ""
}
```

#### Table Updated

Event `api.dataTable_updated` is emitted on every table update done through the Datahub UI on app.fastgen.com

```json Example Payload theme={null}
$param: {
  "ID": "f76c7770-79c3-45a2-96ad-e4e4321ad66b",
  "Name": "Test",
  "Description": "My updated description"
}
```

#### Table Emptied

Event `api.dataTable_emptied` is emitted whenever `Clear table` is clicked in the table settings menu.

```json Example Payload theme={null}
$param: {
  "ID": "f76c7770-79c3-45a2-96ad-e4e4321ad66b",
  "Name": "Test",
  "Description": "My updated description"
}
```

#### Table Deleted

Event `api.dataTable_deleted` is emitted whenever `Delete Table` is clicked in the table settings menu.

```json Example Payload theme={null}
$param: {
  "ID": "f76c7770-79c3-45a2-96ad-e4e4321ad66b",
  "Name": "Test",
  "Description": "My updated description"
}
```

### User management events

#### Post Log in

Event `auth.user_loggedIn` is emitted whenever a user logs in

```json Example Payload theme={null}
$param: {
  "userId": "fa02e4bb-405d-4c20-97c8-060b756a890e",
  "email": "test@fastgen.com",
  "emailVerified": false,
  "roles": ["My Super User Role"]
}
```

#### Post Sign up

Event `auth.user_signedUp` is emitted whenever a user logs in

```json Example Payload theme={null}
$param: {
  "userId": "fa02e4bb-405d-4c20-97c8-060b756a890e",
  "email": "test@fastgen.com",
  "emailVerified": false,
  "roles": ["My Super User Role"]
}
```

#### Email Verification Requested

Event `auth.email_verificationRequested` is emitted whenever the email verification is requested. This either happens automatically direct after sign up with email and password of when email verification is requested [via the API](/user-management/api/email-verification#requesting-verification-email)

The `link` property is pointing to your [hosted authentication pages](/user-management/overview#fastgen-hosted-authentication-pages) so it is only working if you have those enabled. The link contains the verification token and the user only has to click the link for the verification to succeed and the user will then be redirected to the entered callback url that was specified on the hosted authentication settings page.

The `token` and `link` are valid for one day after which they expire.

You can also customize this part of the process by taking the `token` and building your own logic on when and how it will be used for verifying the users email. Just use [Email Verification Submission Endpoint](/user-management/api/email-verification#submitting-verification-token) and provide the `token` and the users email is verified. Or use the User action to modify a user's email verified property.

```json Example Payload theme={null}
$param: {
  "userId": "fa02e4bb-405d-4c20-97c8-060b756a890e",
  "email": "test@fastgen.com",
  "emailVerified": false,
  "roles": ["My Super User Role"],
  "token": "Y2YwZWFmZjgzMzI5YzU0MjdlZDQ3Ym...",
  "link": "https://auth.fastgen.com/ff37f1aa-c021-4354-8595-61627a5e5cde/verify-email?token=Y2YwZWFmZjgzMzI5YzU0MjdlZDQ3Ym..."
}
```

#### Email Verified

Event `auth.email_verified` is emitted whenever the email verification is succesfull.

```json Example Payload theme={null}
$param: {
  "userId": "fa02e4bb-405d-4c20-97c8-060b756a890e",
  "email": "test@fastgen.com",
  "emailVerified": true,
  "roles": ["My Super User Role"]
}
```

#### Password Reset Requested

Event `auth.password_reset` is emitted whenever the password reset was requested by either the hosted authentication page or via the [Request Password Reset API endpoint](/user-management/api/password-reset#requesting-password-reset).

The `token` and `link` are valid for one hour after which they expire.

Here you can again decide like describe with the [Email Verification Requested](/developer-tools/system-events#email-verification-requested) Event that you can either use the provided `link` and the pre build and ready-configured hosted authentication pages or do the process yourself with the `token` and the [Submit Password Reset Token API endpoint](/user-management/api/password-reset#submitting-password-reset-token).

```json Example Payload theme={null}
$param: {
  "userId": "fa02e4bb-405d-4c20-97c8-060b756a890e",
  "email": "test@fastgen.com",
  "emailVerified": true,
  "roles": ["My Super User Role"],
  "token": "Y2YwZWFmZjgzMzI5YzU0MjdlZDQ3Ym...",
  "link": "https://auth.fastgen.com/ff37f1aa-c021-4354-8595-61627a5e5cde/set-new-password?token=Y2YwZWFmZjgzMzI5YzU0MjdlZDQ3Ym..."
}
```

#### Password Reset

Event `auth.password_reset` is emitted whenever the password reset was successful. Note, that changing the users password through the User Management UI does not trigger this event.

```json Example Payload theme={null}
$param: {
  "userId": "fa02e4bb-405d-4c20-97c8-060b756a890e",
  "email": "test@fastgen.com",
  "emailVerified": true,
  "roles": ["My Super User Role"]
}
```
