Skip to content

Minor Airdrop fixes #253

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 11, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions fern/docs/pages/airdrop/getting-started.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ as well as the capabilities and limitations of the external system being integra

## DevRev organization

If this is your first time setting up an organization within DevRev, you need to create a
DevRev organization for developing your new Airdrop snap-in:
If this is your first time developing a snap-in, you should start by creating a new DevRev organization:

1. Click on your profile picture in the top left corner.
2. Go to the **Orgs** section and click on **+**.
Expand Down Expand Up @@ -40,13 +39,13 @@ A _sync unit_ is one self-encompassing unit of data that is synced to an externa
- An organization Zendesk.

In Jira, users often have multiple projects. Each project acts as an individual sync unit.
In contrast, Zendesk operates with a single large pool of tickets and agents. Here, the entire Zendesk instance can be synced in a single airdrop.
In contrast, Zendesk operates with a single large pool of tickets and agents. Here, the entire Zendesk instance can be synced in a single import.

### Sync run

Airdrop extractions are done in _sync runs_.
A sync run is one end-to-end (extract-transform-load) execution of a _sync unit_.
If you do an initial import from the external system to DevRev, that import will be one sync run.
If you do an initial import from the external system to DevRev, that import is one sync run.
Another import in the same direction is another sync run.
And if you then decide to do a reverse sync from DevRev to the external system, that would be another
sync run.
Expand Down
9 changes: 5 additions & 4 deletions fern/docs/pages/airdrop/local-development.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ For easier development you can run your Airdrop snap-in locally and receive logs
## Prerequisites

- [devrev-cli](https://developer.devrev.ai/snapin-development/references/cli-install) (version 4.7 or higher)
- [chef-cli](https://github.com/devrev/adaas-chef-cli)
- [jq](https://stedolan.github.io/jq)
- [nodejs](https://nodejs.org/en/download/package-manager) (version 18.x.x+ or higher)
- [ngrok](https://ngrok.com)
Expand All @@ -13,7 +14,7 @@ DevRev offers a starter Airdrop snap-in template that is ready for immediate use

1. Create a new repository:
- Create a new repository from this template by clicking the "Use this template" button in the upper right corner and then "Create a new repository".
- The repository name must start with `airdrop-` (for example, `airdrop-<external system>-snap-in`).
- The repository name must start with `airdrop-` (for example, `airdrop-asana-snap-in`).
2. Open the project in your IDE and authenticate to your DevRev organization using the DevRev CLI:
```bash
devrev profiles authenticate --org <your DevRev organization slug>
Expand Down Expand Up @@ -48,10 +49,10 @@ DevRev offers a starter Airdrop snap-in template that is ready for immediate use

# Initial sync

Now that you have a running snap-in, you can start an airdrop.
Now that you have a running snap-in, you can start an import.
Go to DevRev app and click **Airdrops** -> **Start Airdrop** -> **Your snap-in**.

1. Starting an airdrop begins with establishing a connection to the external system. The Airdrop snap-in prompts for specific information needed to create this connection. Afterwards, the snap-in verifies that the connection is successful and you should see a success message.
1. Starting an import begins with establishing a connection to the external system. The Airdrop snap-in prompts for specific information needed to create this connection. Afterwards, the snap-in verifies that the connection is successful and you should see a success message.

2. Once the connection is established, the snap-in collects information from the external system about the data unit to be exported. This phase is called _external sync units extraction_. An external sync unit is the data unit from the external system to be imported to DevRev. At this point, the DevRev app prompts the user to select an external sync unit from the list.

Expand All @@ -65,4 +66,4 @@ Go to DevRev app and click **Airdrops** -> **Start Airdrop** -> **Your snap-in**

The process described above is called the **initial sync**. In all subsequent syncs, the first two steps are skipped.

The snap-in constantly communicates with Airdrop platform, which manages its behavior. When an action occurs in the DevRev app, Airdrop platform sends a message to the snap-in with details about the event. The snap-in performs an action based on the event type. For example, when a user starts a new airdrop for the first time, Airdrop platform instructs the snap-in to perform an external sync unit extraction. The snap-in carries out the task and sends back available sync units to Airdrop platform.
The snap-in constantly communicates with Airdrop platform, which manages its behavior. When an action occurs in the DevRev app, Airdrop platform sends a message to the snap-in with details about the event. The snap-in performs an action based on the event type. For example, when a user starts a new import for the first time, Airdrop platform instructs the snap-in to perform an external sync unit extraction. The snap-in carries out the task and sends back available sync units to Airdrop platform.
2 changes: 1 addition & 1 deletion fern/docs/pages/airdrop/manifest.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ keyring_types:
There are some options to consider:

* `kind`
The `kind` option can be either "secret" or "oauth2". The "secret" option is intended for storing various tokens, such as a PAT token. Use of OAuth2 is encouraged when possible. More information is available for [secret](/public/snapin-development/references/keyrings/secret-configuration) and [oauth2](/oauth-configuration).
The `kind` option can be either "secret" or "oauth2". The "secret" option is intended for storing various tokens, such as a PAT token. Use of OAuth2 is encouraged when possible. More information is available for [secret](/public/snapin-development/references/keyrings/secret-configuration) and [oauth2](/public/snapin-development/references/keyrings/oauth-configuration).

* `is_subdomain`
The `is_subdomain` field relates to the API endpoints being called. When the endpoints for fetching data from an external system include a slug representing the organization—such as for example `https://subdomain.freshdesk.com/api/v2/tickets`—set this key to "true". In this scenario, users creating a new connection are prompted to insert the subdomain.
Expand Down
Loading