> For the complete documentation index, see [llms.txt](https://thenicholasrbarrowcompany.gitbook.io/bubble-plugins/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://thenicholasrbarrowcompany.gitbook.io/bubble-plugins/google-service-account/google-service-account-plugin/creating-an-jwt-assertion.md).

# Creating An JWT Assertion

This page handles the first of the two steps needed to generate an authorized bearer token for use in workflows.

## Directions

1. Add a "Create Assertion" action to your workflow.
2. Fill-out the assertion using your information. See the guides and examples below.

## Input Fields

| Field                 | Type   | What It Is                                                                                                                                       | Example                                                                                                                                                                                                                                  |
| --------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Service Account Email | String | The email account associated with your service account.                                                                                          | <example@developer.gserviceaccount.com>                                                                                                                                                                                                  |
| Scope                 | String | The scope(s) you are requesting in a space-delimited list. For a full list, see <https://developers.google.com/identity/protocols/oauth2/scopes> | <https://www.googleapis.com/auth/devstorage.read\\_only>  <https://www.googleapis.com/auth/cloud-platform>                                                                                                                               |
| Email to Impersonate  | String | Email address the service account should perform actions on behalf of; usually a super-admin in your Google organization.                        | <example@mydomain.com>                                                                                                                                                                                                                   |
| key                   | String | They key downloaded from the .PEM file. The same key is reusable.                                                                                | <p>-----BEGIN PRIVATE KEY----- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHrpz8eiwwPKev ...</p><p>O35SvxEYqUvEv9JjXvbeSt73ALUexIpRsZsKJue1eDPicGx1o0iSXoXPjEZfnBvc m3KSBZvEPpg4Z1WlgWYjKgM= </p><p>-----END PRIVATE KEY-----</p> |

{% hint style="info" %}
For security reasons, you should periodically delete the existing key, generate a new one, and replace it in your Bubble workflow.&#x20;
{% endhint %}

## Example

{% hint style="info" %}
In the example below, we are taking the fields from inputs. You can enter your own static text or store the values in the database.
{% endhint %}

![](https://2527096876-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MNjI2hy1nzDWWKQJ2fV%2F-MNuQTzadg3eoGZ_ya9P%2F-MNuQvyY4vQVY3zPOpue%2FScreen%20Shot%202020-12-06%20at%206.42.46%20PM.png?alt=media\&token=c4cf9475-a258-405c-930d-e914304818d2)
