Giter Club home page Giter Club logo

sdk's Introduction

@jupiterone/sdk

A collection of packages supporting integrations with JupiterOne.

Development Resources

Introduction

Integrating with JupiterOne may take one of these paths:

  1. A structured integration leveraging this SDK to dramatically simplify the synchronization process, essential for any significant, ongoing integration effort
  2. A command line script (sh, bash, zsh, etc.) using the JupiterOne CLI tool to easily query/create/update/delete entities and relationships in bulk
  3. Any programming/scripting language making HTTP GraphQL requests to query/create/update/delete entities and relationships
  4. A JavaScript program using the JupiterOne Node.js client library to query/create/update/delete entities and relationships

The integration SDK structures an integration as a collection of simple, atomic steps, executed in a particular order. It submits generated entities and relationships, along with the raw data from the provider used to build the entities, to the JupiterOne synchronization system, which offloads complex graph update operations, provides integration progress information, and isolates failures to allow for as much ingestion as possible.

An integration built this way runs not only on your local machine; it can be deployed to JupiterOne's managed infrastructure. You can easily build the integration you need today and run it wherever you'd like. When you're ready, we can help you get that integration running within the JupiterOne infrastructure, lowering your operational costs and simplifying adoption of your integration within the security community!

Please reference the integration development documentation for details about how to develop integrations with this SDK.

Development

To get started with development:

  1. Install dependencies using yarn
  2. Run yarn build

This project utilizes TypeScript project references for incremental builds. To prepare all of the packages, run yarn build. If you are making a changes across multiple packages, it is recommended you run yarn build --watch to automatically compile changes as you work.

Linking packages

If you are making changes to the SDK and you want to test the changes in another project then it is recommended to automatically rebuild and link this project when changes are made.

Steps to automatically build and link:

  • Run yarn build or yarn build --watch in this project from a terminal and wait for initial build to complete.

  • Run yarn link in the package that you want to link.

  • In a separate terminal, run yarn link @jupiterone/<package to link> in the integration project. You can now use the integration SDK CLI in the other project and it will use the latest code on your filesystem.

Versioning this project

To version all packages in this project and tag the repo with a new version number, run the following (where major.minor.patch is the version you expect to move to). Don't forget to update the CHANGELOG.md file!

git checkout -b release-<major>.<minor>.<patch>
git push -u origin release-<major>.<minor>.<patch>
yarn lerna version {major, minor, patch}

Note the git checkout/git push is required because Lerna will expect that you've already created a remote branch before bumping, tagging, and pushing the local changes to remote.

sdk's People

Contributors

ctdio avatar austinkelleher avatar ndowmon avatar adam-in-ict avatar zemberdotnet avatar aiwilliams avatar vdubber avatar nick-ncsu avatar mknoedel avatar mdaum avatar dobregons avatar softwarewright avatar austin-rausch avatar edreyer1 avatar dobregon-truepill avatar imdevinc avatar dependabot[bot] avatar ceelias avatar maxheckel avatar ronaldeam avatar philidem avatar cdeevfrr avatar i5o avatar extremex avatar jakeferrero avatar isaacjwilliams avatar gonzalo-avalos-ribas avatar rwaterman avatar swwright avatar a-u-h-g avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.