Skip to content

Design a way to more quickly write AWS sync plugins #349

@achantavy

Description

@achantavy

Design a way to more quickly write AWS sync plugins

Description:

Describe your idea. Please be detailed. If a feature request, please
describe the desired behavior, what scenario it enables, and how it
would be used.

Background

An intel module needs to perform a common set of steps:

  1. Get data with a certain set of fields from an external API

  2. Perform a set of data transformations such as generating unique IDs if vendor-provided ones (e.g. AWS ARNs) are not available.

  3. Load new nodes and relationships to the graph and connect them to all related nodes such as AWS accounts and others

  4. Make indexes for the new node types

  5. Create integration tests to ensure the nodes and connections are loaded as expected

  6. Update our schema documents

This is a lot of boilerplate code to write and there are many repeated sections across intel modules.

The idea

To improve our developer experience, we could create an abstraction layer that accepts as input what data types the developer wants to retrieve and their expected forms in the graph (steps 1-4). This will greatly improve our velocity on adding new plugins.

This issue will initially be scoped to AWS syncs and we will revisit this approach for the other modules.

The task

Write a specification document on what this abstraction interface could look like and submit requests for comment.

Metadata

Metadata

Assignees

Labels

keep freshDisables stalebot from closing an issuelong-term-improvementA better way of doing things

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions