Skip to content

chore: Move ADaaS template repo FAQ to public docs #166

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 16 commits into from
Mar 17, 2025
2 changes: 1 addition & 1 deletion fern/docs/pages/adaas/data-extraction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ prepares batches of data and uploads them in the form of artifacts to DevRev.

The snap-in must respond to Airdrop with a message with event of type `EXTRACTION_DATA_PROGRESS`,
together with an optional progress estimate and relevant artifacts
when it extracts some data and the maximum ADaaS snap-in runtime (12 minutes) has been reached.
when it extracts some data and the maximum Airdrop snap-in runtime (12 minutes) has been reached.

If the extraction has been rate-limited by the external system and back-off is required, the snap-in must respond to
Airdrop with a message with event of type `EXTRACTION_DATA_DELAY` and specifying back-off time with `delay` attribute.
Expand Down
4 changes: 3 additions & 1 deletion fern/docs/pages/adaas/extraction-phases.mdx
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Extraction

Airdrop extractions are done in _sync runs_. A sync run is one execution of an import or sync. If you do an initial import from
the external system to DevRev, that import will be one sync run. If you then decide to do a reverse sync from DevRev to
the external system, that would be another sync run.
Expand Down Expand Up @@ -86,7 +88,7 @@ An extractor extracts data that was created and/or updated in the external syste
after the start of the latest successful forward sync, including any changes that occurred during the
forward sync, but were not picked up by it.

A snap-in must consult its state to get information on when the last successful forward sync started. ADaaS snap-ins
A snap-in must consult its state to get information on when the last successful forward sync started. Airdrop snap-ins
must maintain their own states that persists between phases in a sync run, as well as between sync runs.

A 1-way sync consists of the following phases:
Expand Down
23 changes: 23 additions & 0 deletions fern/docs/pages/adaas/faq.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Airdrop template repository

##### Q: I'm getting a `Conflict` error after the `Creating snap-in package...` message when running `make deploy`

A: A snap-in package with the same slug already exists.
Override the ``SNAP_IN_SLUG`` variable by explicitly updating the variable in `scripts/vars.sh`.

##### Q: Snap-in version `build/deployment failed` after the `Waiting for snap-in version to be ready...` message

A: The snap-in version could not be built.
Check the logs by running the DevRev CLI command. For prettier UI, pipe the output to `jq`.
```
devrev snap_in_package logs | jq
```

## Token handling

##### Q: `Token is expired` when deploying or cleaning up

A: Authentication token to the `DEV_ORG` has expired. Reauthenticate the organization by running.
```
make auth
```
4 changes: 2 additions & 2 deletions fern/docs/pages/adaas/getting-started.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## Before you begin

- If you have not created a development organization on DevRev before, create a dedicated
[DevRev organization for development purposes](https://app.devrev.ai/) where you will be publishing your ADaaS snap-in.
[DevRev organization for development purposes](https://app.devrev.ai/) where you will be publishing your Airdrop snap-in.
- Install required tools and packages:
- [devrev-cli](https://developer.devrev.ai/snapin-development/references/cli-install) (version 4.7 or higher)
- [jq](https://stedolan.github.io/jq)
Expand All @@ -10,7 +10,7 @@

## Setting up the snap-in

1. Create a new repo from the [ADaaS template repo](https://github.com/devrev/adaas-template). Select _Use this template_ and
1. Create a new repo from the [Airdrop template repo](https://github.com/devrev/adaas-template). Select _Use this template_ and
then _Create a new repository_.
1. Copy `.env.example` to `.env` and fill in the required variables.
1. Configure a keyring for the external system in the `manifest.yaml`.
Expand Down
1 change: 1 addition & 0 deletions fern/docs/pages/adaas/loading-phases.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# Loading
4 changes: 2 additions & 2 deletions fern/docs/pages/adaas/metadata-extraction.mdx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

During the metadata extraction phase, the ADaaS snap-in must provide an `external_domain_metadata.json` file on each sync run.
During the metadata extraction phase, the Airdrop snap-in must provide an `external_domain_metadata.json` file on each sync run.
This file provides a structured way of describing the external system's domain system, including its domain entities, types,
relationships, and other metadata.

Expand All @@ -14,7 +14,7 @@ or `EXTRACTION_METADATA_ERROR` in case of an error.

## Snap-in response

During the metadata extraction phase, the ADaaS snap-in must provide an `external_domain_metadata.json` file on each sync run.
During the metadata extraction phase, the Airdrop snap-in must provide an `external_domain_metadata.json` file on each sync run.

The transformation can be crafted and finalized further using the `chef-cli` to ensure extracted data is mapped consistently to the DevRev domain model.

Expand Down
10 changes: 5 additions & 5 deletions fern/docs/pages/adaas/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ _Airdrop_ is DevRev’s solution to migrate data. It allows our customers to bri
export data back to external systems, and keep data in sync between DevRev and the external systems.
You can read more about Airdrop in the [general documentation](https://docs.devrev.ai/import#airdrop-features).

_Airdrop-as-a-Service (ADaaS)_ gives snap-in developers the ability to integrate with DevRev’s Airdrop functionality.
DevRev is extending airdrop's capabilities to give snap-in developers the ability to integrate with DevRev’s Airdrop functionality.
It enables developers to create external workers (extractors and loaders) to bring data from various external systems.

<Tip>DevRev offers a repository template to help you create ADaaS snap-ins. Refer to [Getting started](getting-started) for instructions.</Tip>
<Tip>DevRev offers a repository template to help you create Airdrop snap-ins. Refer to [Getting started](getting-started) for instructions.</Tip>

```mermaid
flowchart TD
Expand All @@ -25,7 +25,7 @@ s3[(AWS S3)]

worker <-- Exchange artifact upload/download URLs --> s3interact
worker <-- Upload/download artifacts --> s3
worker <-- ADaaS messages and REST API --> airdrop
worker <-- Airdrop messages and REST API --> airdrop


subgraph DevRev
Expand All @@ -35,14 +35,14 @@ s3[(AWS S3)]

```

An _extractor_ is a function in an ADaaS-capable snap-in responsible for extracting data from an _external system_, such as Jira, Zendesk,
An _extractor_ is a function in an Airdrop-capable snap-in responsible for extracting data from an _external system_, such as Jira, Zendesk,
or HubSpot. It uses a standardized communication protocol for talking to Airdrop and a standardized
data structure for all the files it extracts and processes, so that they can be seamlessly imported into DevRev.

## Sync runs

Airdrop functions are executed in the context of _sync runs_, which is a directed operation that spans over many invocations
of an ADaaS snap-in to bring the data to DevRev or load the data to the external system.
of an Airdrop snap-in to bring the data to DevRev or load the data to the external system.

A _forward sync_ is a sync run from an external system to DevRev. An extractor function in the snap-in is responsible for extracting data from the
external system.
Expand Down
2 changes: 1 addition & 1 deletion fern/docs/pages/concepts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ and in some cases the organization name. A keyring is used by a snap-ins to auth

## Imports

Snap-ins that provide an extractor function for an [ADaaS](/snapin-development/adaas/overview) snap-in responsible for extracting data from an external system need to have an import section defined in their manifest to register their snap-in in the **Imports** section of the DevRev app.
Snap-ins that provide an extractor function for an [Airdrop](/snapin-development/adaas/overview) snap-in responsible for extracting data from an external system need to have an import section defined in their manifest to register their snap-in in the **Imports** section of the DevRev app.

## Globals

Expand Down
18 changes: 15 additions & 3 deletions fern/versions/public.yml
Original file line number Diff line number Diff line change
Expand Up @@ -136,10 +136,10 @@ navigation:
- page: Snap-in triggered by an external source
slug: triggered-external-source
path: ../docs/pages/tutorials/triggered-external-source.mdx
- section: ADaaS
slug: adaas
- section: Airdrop
slug: airdrop
contents:
- page: "Airdrop-as-a-Service (ADaaS)"
- page: "Overview"
slug: overview
path: ../docs/pages/adaas/overview.mdx
- page: "Getting started"
Expand All @@ -148,21 +148,33 @@ navigation:
- page: "Extraction phases"
slug: extraction-phases
path: ../docs/pages/adaas/extraction-phases.mdx
- page: "Loading phases"
slug: loading-phases
hidden: true
path: ../docs/pages/adaas/loading-phases.mdx
- page: "External sync units extraction"
slug: external-sync-units-extraction
hidden: true
path: ../docs/pages/adaas/external-sync-units-extraction.mdx
- page: "Metadata extraction"
hidden: true
slug: metadata-extraction
path: ../docs/pages/adaas/metadata-extraction.mdx
- page: "Data extraction"
hidden: true
slug: data-extraction
path: ../docs/pages/adaas/data-extraction.mdx
- page: "Attachments extraction"
hidden: true
slug: extract-attachments
path: ../docs/pages/adaas/attachments-extraction.mdx
- page: "Data and attachments deletion"
slug: data-attachments-deletion
hidden: true
path: ../docs/pages/adaas/data-attachments-deletion.mdx
- page: "Common issues - FAQ"
slug: faq
path: ../docs/pages/adaas/faq.mdx
- section: References
slug: references
contents:
Expand Down
Loading