Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
6784670
feat: revamp airdrop docs
patricijabrecko Mar 24, 2025
ad88f55
Add missing pages
patricijabrecko Mar 24, 2025
f12d500
Update getting started
patricijabrecko Mar 24, 2025
0e73c47
Update overview
patricijabrecko Mar 24, 2025
1b6813e
Fix diagrams in overview
patricijabrecko Mar 24, 2025
3fc1c3f
Add end to overview diagram
patricijabrecko Mar 24, 2025
39d760e
Move some content from overview to how does it work
patricijabrecko Mar 24, 2025
439746c
Update connecting to the external system page
patricijabrecko Mar 24, 2025
7c49abd
Update Getting started
patricijabrecko Mar 25, 2025
1c23f3e
Updates
patricijabrecko Mar 25, 2025
626be24
Update how does it work section
patricijabrecko Mar 25, 2025
06cb02f
musings on state
GasperSenk Mar 25, 2025
9aa52c7
Update publish to marketplace
patricijabrecko Mar 25, 2025
b6e64a8
Add first steps of development
patricijabrecko Mar 26, 2025
dc4624f
Add first steps of development to navigation
patricijabrecko Mar 26, 2025
9b545f3
Move some things around
patricijabrecko Mar 26, 2025
2d8083a
Snap-in configuration
patricijabrecko Mar 26, 2025
fe2cad9
Split data extraction into sections
patricijabrecko Mar 27, 2025
f7648c7
Some text fixes
patricijabrecko Mar 28, 2025
316a82e
Add metadata and data extraction
patricijabrecko Mar 31, 2025
e8d766a
Shuffle things around
patricijabrecko Mar 31, 2025
2068b7d
Merge branch 'main' into extend-adaas-docs
patricijabrecko Apr 2, 2025
ef2f14c
Add information from SDK readme
patricijabrecko Apr 2, 2025
2e7f6a0
Fix metadata-extraction file formatting
patricijabrecko Apr 2, 2025
2720168
Merge branch 'main' into extend-adaas-docs
patricijabrecko Apr 3, 2025
95f4a2c
Minor text changes
patricijabrecko Apr 3, 2025
568b2a3
Fix public.yml
patricijabrecko Apr 3, 2025
1e6cdff
Fix public.yml again
patricijabrecko Apr 3, 2025
7421130
Merge branch 'main' into extend-adaas-docs
radovanjorgic Apr 4, 2025
abb979e
Some fixes and add supported object types
patricijabrecko Apr 4, 2025
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
18 changes: 18 additions & 0 deletions fern/docs/pages/airdrop/connecting-to-the-external-system.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
TODO: Keyring explanation and guide setting up.

## Keyrings

_Keyrings_ are a DevRev-specific mechanism for managing authentication to external systems.
They are called **Connections** in the DevRev app.

Keyrings provide a secure way to store and manage credentials within your DevRev snap-in.
This eliminates the need to expose sensitive information like passwords or access tokens directly
within your code or configuration files, enhancing overall security.
They also provide a valid token by abstracting OAuth token renewal from the end user.

A keyring is used by a worker to authenticate to the external system in API calls.
They include the key (for example, a PAT or API key), its type, the organization ID for which a
key is valid, and in some cases the organization name.

Configure a keyring for the external system in the `manifest.yaml`.
Refer to [Keyrings](/snapin-development/references/manifest#developer-keyrings) for instructions.
7 changes: 7 additions & 0 deletions fern/docs/pages/airdrop/development-guide.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Extracting data from external system

TODO: Explain the order of development steps.

## Loading data to DevRev

TODO: Explain the order of development steps.
85 changes: 52 additions & 33 deletions fern/docs/pages/airdrop/getting-started.mdx
Original file line number Diff line number Diff line change
@@ -1,35 +1,54 @@
## 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 are
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)
- [golang](https://go.dev/doc/install)
- [nodejs](https://nodejs.org/en/download/package-manager) (version 18.x.x+ or higher)

## Setting up the snap-in

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`.
Refer to [Keyrings](/snapin-development/references/manifest#developer-keyrings) for instructions.
1. Deploy a draft version of your snap-in to your dev org using `make deploy`.
1. Install the snap-in in your DevRev at **Settings** > **Snap-ins** > **Install snap-in**.
1. Define the connection at **Settings** > **Imports** > **Connections**.
1. Create an import at **Settings** > **Imports** > **Import**.

## Observability

- To observe logs from your snap-in in your development environment:
```
devrev snap_in_package logs | jq
```
- To open logs in your favorite editor:
```
devrev snap_in_package logs | code -
```
## Before You Begin

If this is your first time setting up an organization within DevRev, you'll need to create a dedicated DevRev organization for developing your new Airdrop snap-in:

1. Click on your profile picture in the top left corner.
2. Navigate to the **Orgs** section and click on **+**.
3. Fill in the necessary details and click **Create**.

You will now find your newly created organization under **Orgs**.

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)
- [golang](https://go.dev/doc/install)
- [nodejs](https://nodejs.org/en/download/package-manager) (version 18.x.x+ or higher)

## Setting Up the Snap-in

### Starter Template

DevRev provides a starter template for Airdrop snap-in development.

1. Create a new repository from [Airdrop template repository](https://github.com/devrev/adaas-template) by selecting _Use this template_ and then _Create a new repository_.
1. Copy `.env.example` to a new file named `.env` and fill in the required variables.

### Local Development

For ease of development, you can run your snap-in locally and receive logs directly in your console. Follow the guide [here](/snapin-development/locally-testing-snap-ins).

### Publishing the snap-in

Once you're ready to launch your snap-in in a production environment, follow these steps:

1. Deploy a draft version of your snap-in to your organization by using `make deploy`.
1. Install the snap-in in your DevRev by going to **Settings** > **Snap-ins** > **Install snap-in**.
1. Set up the connection under **Settings** > **Airdrops** > **Connections**.
1. Create an import at **Settings** > **Airdrops** > **Airdrop**.

#### Observability

To observe logs from your snap-in in your development environment:

```
devrev snap_in_package logs | jq
```

To open logs in your favorite editor:

```
devrev snap_in_package logs | code -
```

For more information, refer to [Debugging](/snapin-development/debugging).
5 changes: 5 additions & 0 deletions fern/docs/pages/airdrop/how-does-it-work.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
TODO: Explain how ADaaS code works by using the template

TODO: Explain the role of manifest.yaml and where is what

TODO: Explain how the communication between snap-in and DevRev works (through emitting events).
19 changes: 1 addition & 18 deletions fern/docs/pages/airdrop/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,6 @@ 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 Airdrop snap-ins.
Refer to [Getting started](getting-started) for instructions.</Tip>

```mermaid
flowchart TD
%%{init: {
Expand Down Expand Up @@ -57,18 +54,4 @@ An extractor function in the snap-in is responsible for extracting data from the
A _reverse sync_ is a sync run from DevRev to an external system.
It uses a loader function, to create or update data in the external system.

## Keyrings

_Keyrings_ are a DevRev-specific mechanism for managing authentication to external systems.
They are called **Connections** in the DevRev app.

Keyrings provide a secure way to store and manage credentials within your DevRev snap-in.
This eliminates the need to expose sensitive information like passwords or access tokens directly
within your code or configuration files, enhancing overall security.
They also provide a valid token by abstracting OAuth token renewal from the end user.

A keyring is used by a worker to authenticate to the external system in API calls.
They include the key (for example, a PAT or API key), its type, the organization ID for which a
key is valid, and in some cases the organization name.

Refer to [Keyrings](/snapin-development/references/keyrings) for more information.
TODO: 1-way sync, 2-way sync, incremental sync, ...
3 changes: 3 additions & 0 deletions fern/docs/pages/airdrop/publish-to-marketplace.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
When you feel like your snap-in is ready to be used by different organizations, you can publish it to the DevRev marketplace.

Follow this [guide](/snapin-development/marketplace-listings).
5 changes: 5 additions & 0 deletions fern/docs/pages/airdrop/snap-in-examples.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
You can find snap-in examples for various external systems [here](https://github.com/devrev/adaas-connector-examples).

Examples include:

- Asana
31 changes: 26 additions & 5 deletions fern/versions/public.yml
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,24 @@ navigation:
- page: "Getting started"
slug: getting-started
path: ../docs/pages/airdrop/getting-started.mdx
- page: "How does it work"
slug: how-does-it-work
path: ../docs/pages/airdrop/how-does-it-work.mdx
- page: "Snap-in examples"
slug: snap-in-examples
path: ../docs/pages/airdrop/snap-in-examples.mdx
- page: "Connecting to the external system"
slug: connecting-to-the-external-system
path: ../docs/pages/airdrop/connecting-to-the-external-system.mdx
- section: "Development guide"
slug: development-guide
contents:
- page: "Extracting data from external system"
slug: extracting-data
path: ../docs/pages/airdrop/development-guide/extracting-data.mdx
- page: "Loading data to DevRev"
slug: loading-data
path: ../docs/pages/airdrop/development-guide/loading-data.mdx
- page: "Extraction phases"
slug: extraction-phases
path: ../docs/pages/airdrop/extraction-phases.mdx
Expand All @@ -154,24 +172,27 @@ navigation:
path: ../docs/pages/airdrop/loading-phases.mdx
- page: "External sync units extraction"
slug: external-sync-units-extraction
hidden: false
hidden: true
path: ../docs/pages/airdrop/external-sync-units-extraction.mdx
- page: "Metadata extraction"
hidden: false
hidden: true
slug: metadata-extraction
path: ../docs/pages/airdrop/metadata-extraction.mdx
- page: "Data extraction"
hidden: false
hidden: true
slug: data-extraction
path: ../docs/pages/airdrop/data-extraction.mdx
- page: "Attachments extraction"
hidden: false
hidden: true
slug: extract-attachments
path: ../docs/pages/airdrop/attachments-extraction.mdx
- page: "Data and attachments deletion"
slug: data-attachments-deletion
hidden: false
hidden: true
path: ../docs/pages/airdrop/data-attachments-deletion.mdx
- page: "Publish to the marketplace"
slug: publish-to-marketplace
path: ../docs/pages/airdrop/publish-to-marketplace.mdx
- page: "Common issues - FAQ"
slug: faq
path: ../docs/pages/airdrop/faq.mdx
Expand Down
Loading