-
Notifications
You must be signed in to change notification settings - Fork 329
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
Design a way to more quickly write AWS sync plugins #349
Comments
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
This issue has been automatically closed for inactivity. If you still wish to make these changes, please open a new change or reopen this one. |
@achantavy I still thinks this could add some value and speed-up writing new sync modules. |
@marco-lancini 100%. I have some ideas on how to do this and have opened up #395 as foundation for this work. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
This issue has been automatically closed for inactivity. If you still wish to make these changes, please open a new change or reopen this one. |
* Build ingest query * Linter * Save cleanup query for another PR * Implement schema * bump mypy to 0.981 for python/mypy#13398 * linter * make load_graph_data interface make more sense * fix comment * Docs and some better names * add a todo * Doc updates, rename some fields * Fix pre-commit * Code commment suggestions Co-authored-by: Ramon Petgrave <[email protected]> * Stackoverflow comment for clarity) * Support ingesting only parts of a schema without breaking the others * Doc comment * Linter * Support matching on one or more properties * Correctly name test * Change key_refs to TargetNodeMatcher to enforce it as a mandatory field * Remove use of hacky default_field() * Support subset of schema relationships for query generation, test multiple node labels * Docstrings * Comments in tests * Better comments * Test for exception conditions * Remove irrelevant comment Co-authored-by: Ramon Petgrave <[email protected]>
Done! We will need to refactor existing code using #1038, but we have the capability now! |
* Build ingest query * Linter * Save cleanup query for another PR * Implement schema * bump mypy to 0.981 for python/mypy#13398 * linter * make load_graph_data interface make more sense * fix comment * Docs and some better names * add a todo * Doc updates, rename some fields * Fix pre-commit * Code commment suggestions Co-authored-by: Ramon Petgrave <[email protected]> * Stackoverflow comment for clarity) * Support ingesting only parts of a schema without breaking the others * Doc comment * Linter * Support matching on one or more properties * Correctly name test * Change key_refs to TargetNodeMatcher to enforce it as a mandatory field * Remove use of hacky default_field() * Support subset of schema relationships for query generation, test multiple node labels * Docstrings * Comments in tests * Better comments * Test for exception conditions * Remove irrelevant comment Co-authored-by: Ramon Petgrave <[email protected]>
Design a way to more quickly write AWS sync plugins
Description:
Background
An intel module needs to perform a common set of steps:
Get data with a certain set of fields from an external API
Perform a set of data transformations such as generating unique IDs if vendor-provided ones (e.g. AWS ARNs) are not available.
Load new nodes and relationships to the graph and connect them to all related nodes such as AWS accounts and others
Make indexes for the new node types
Create integration tests to ensure the nodes and connections are loaded as expected
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.
The text was updated successfully, but these errors were encountered: