Airtable Source
The Airtable API integration ingests audit logs periodically from the Airtable app platform into the Sumo Logic environment for storing and analyzing data.
Data Sources
The Airtable Integration periodically consumes audit logs from the Airtable API and sends data to Sumo Logic in chunks.
Prerequisites
To collect audit logs from the Airtable application into Sumo Logic, you must meet the following criteria:
- You need to have an Airtable admin account.
- Choose enterprise.auditLogs:read permission to access the token.
- You must have an Enterprise billing plan.
Authentication
Airtable's API uses token-based authentication, it allows you to authenticate API requests by inputting your access tokens into the HTTP authorization bearer token header. You need to create a Personal Access token
that will be used to authenticate API requests.
Complete the following steps to create service account credentials:
- Go to the Airtable application and navigate to Create Token.
- Click the Create new token button to create a new personal access token.
- Give your token a unique name. This name will be visible in the record revision history.
- Choose the scope enterprise.auditLogs:read to grant your token. This controls what API endpoints the token will be able to use.
- Click add a base to grant the token access to a base or workspace.
- You can grant access to any number and combination of bases and workspaces associated with your account. Ensure that the token can only read and write data within the bases and workspaces that have been assigned to it.
States
An Airtable Source lets you pull audit logs from the Airtable app. When you create an Airtable Source, it goes through the following states:
- Pending. Once the Source is submitted, it is validated, stored, and placed in a Pending state.
- Started. A collection task is created on the Hosted Collector.
- Initialized. The task configuration is complete in Sumo Logic.
- Authenticated. The Source is successfully authenticated with the Airtable app.
- Collecting. The Source is actively collecting data from the Airtable app.
If the Source has any issues during any one of these states, it is placed in an Error state.
When you delete the Source, it is placed in a Stopping state. When it has successfully stopped, it is deleted from your Hosted Collector.
On the Collection page, the Health and Status for Sources is displayed. Use Health Events to investigate issues with collection.
Hover your mouse over the status icon to view a tooltip with a count of the detected errors and warnings. You can click on the status icon to open a Health Events panel with details on each detected issue.
Setup and Configuration
In this configuration, you will set up an Airtable source account with your Enterprise account and configure it to be authorized and authenticated to use audit logs from Airtable API.
To configure an Airtable Source:
- In Sumo Logic, select Manage Data > Collection > Collection.
- On the Collection page, click Add Source next to a Hosted Collector.
- Search for and select Airtable.
- Enter a Name for the Source. The description is optional.
- (Optional) For Source Category, enter any string to tag the output collected from the Source. Category metadata is stored in a searchable field called
_sourceCategory
. - (Optional) Fields. Click the +Add Field link to define the fields you want to associate. Each field needs a name (key) and value.
- A green circle with a checkmark is shown when the field exists in the Fields table schema.
- An orange triangle with an exclamation point is shown when the field doesn't exist in the Fields table schema. In this case, an option to automatically add the nonexistent fields to the Fields table schema is provided. If a field is sent to Sumo that does not exist in the Fields schema it is ignored, known as dropped.
- In Account ID, enter an account ID that will be a unique identifier for your enterprise account.
- In Personal Access Token, enter the access token that you have generated in the authentication section.
- When you are finished configuring the Source, click Save.
Error Types
When Sumo Logic detects an issue it is tracked by Health Events. The following table shows the three possible error types, the reason the error would occur, if the Source attempts to retry, and the name of the event log in the Health Event Index.
Type | Reason | Retries | Retry Behavior | Health Event Name |
---|---|---|---|---|
ThirdPartyConfig | Normally due to an invalid configuration. You'll need to review your Source configuration and make an update. | No retries are attempted until the Source is updated. | Not applicable | ThirdPartyConfigError |
ThirdPartyGeneric | Normally due to an error communicating with the third-party service APIs. | No | Not applicable | ThirdPartyGenericError |
FirstPartyGeneric | Normally due to an error communicating with the internal Sumo Logic APIs. | No | Not applicable | FirstPartyGenericError |
Restarting your Source
If your Source encounters ThirdPartyConfig errors, you can restart it from either the Sumo Logic UI or Sumo Logic API.
UI
To restart your source in the Sumo Logic platform, follow the steps below:
- Open the Collection page, and go to Manage Data > Collection > Collection.
- Select the source and click the information icon on the right side of the row.
- The API usage information popup is displayed. Click the Restart Source button on the bottom left.
- Click Confirm to send the restart request.
- The bottom left of the platform will provide a notification informing you the request was successful.
API
To restart your source using the Sumo Management API, follow the instructions below:
- Method:
POST
- Example endpoint:
https://api.sumologic.com/api/v1/collectors/{collector_id}/sources/{source_id}/action/restart
Sumo Logic endpoints like api.sumologic.com
are different in deployments outside us1
. For example, an API endpoint in Europe would begin api.eu.sumologic.com
. A service endpoint in us2
(Western U.S.) would begin service.us2.sumologic.com
. For more information, see Sumo Logic Endpoints.
JSON configuration
Sources can be configured using UTF-8 encoded JSON files with the Collector Management API. See how to use JSON to configure Sources for details.
Parameter | Type | Required | Description | Access |
---|---|---|---|---|
config | JSON Object | Yes | Contains the configuration-parameters of the Source. | |
schemaRef | JSON Object | Yes | Use {"type":"Airtable"} for Airtable Source. | not modifiable |
sourceType | String | Yes | Use Universal for Airtable Source. | not modifiable |
Config Parameters
Parameter | Type | Required | Description | Access |
---|---|---|---|---|
name | String | Yes | Type the desired name of the Source and it must be unique per Collector. This value is assigned to the metadata field _source . | modifiable |
description | String | No | Type the description of the Source. | modifiable |
category | String | No | Type the category of the source. This value is assigned to the metadata field _sourceCategory . | modifiable |
fields | JSON Object | No | JSON map of key-value fields (metadata) to apply to the Collector or Source. Use the boolean field _siemForward to enable forwarding to SIEM. | modifiable |
accountId | String | Yes | Account ID is a unique identifier for your Enterprise Account. | modifiable |
personalAccessTokens | String | Yes | Used to authenticate API requests. | modifiable |
Airtable Source JSON example:
{
"api.version": "v1",
"source": {
"config": {
"name": "airtable",
"accountId": "accountid",
"personalAccessToken": "*********",
"fields": {
"_siemForward": true
}
},
"schemaRef": {
"type": "Airtable"
},
"sourceType": "Universal"
}
}
Limitations
We are using Personal Access Token
authentication in the integration, which is currently in public beta version. For more information, refer to the Airtable Notification.
Assumptions
- Size of the single audit log will be less than 64 KB.
- Data URLs will expire after 7 days. If URLs are not processed within 7 days, the integration will create a new request which may cause data duplication.