{"id":15284752,"url":"https://github.com/jupiterone/sdk","last_synced_at":"2026-04-07T13:32:22.914Z","repository":{"id":37060050,"uuid":"252546704","full_name":"JupiterOne/sdk","owner":"JupiterOne","description":"Home of the JupiterOne SDK","archived":false,"fork":false,"pushed_at":"2025-03-25T16:57:17.000Z","size":50636,"stargazers_count":20,"open_issues_count":105,"forks_count":16,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-03-26T23:03:58.035Z","etag":null,"topics":["aws","azure","gcp","graph","hacktoberfest","neo4j","security"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JupiterOne.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-02T19:23:31.000Z","updated_at":"2025-03-25T16:57:19.000Z","dependencies_parsed_at":"2024-01-24T21:39:12.716Z","dependency_job_id":"855824de-427f-49a5-be0f-8009a88179dc","html_url":"https://github.com/JupiterOne/sdk","commit_stats":{"total_commits":2033,"total_committers":55,"mean_commits":36.96363636363636,"dds":0.8480078701426463,"last_synced_commit":"786fce45173ae45d3e2b736e91a2c92c72a41014"},"previous_names":["jupiterone/integration-sdk"],"tags_count":1625,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterOne%2Fsdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterOne%2Fsdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterOne%2Fsdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JupiterOne%2Fsdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JupiterOne","download_url":"https://codeload.github.com/JupiterOne/sdk/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246068271,"owners_count":20718503,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","azure","gcp","graph","hacktoberfest","neo4j","security"],"created_at":"2024-09-30T15:00:04.432Z","updated_at":"2026-04-07T13:32:22.873Z","avatar_url":"https://github.com/JupiterOne.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# @jupiterone/sdk\n\nA collection of packages supporting integrations with JupiterOne.\n\n## Development Resources\n\n- [Getting Started With Integration Development](docs/integrations/development_guide.md)\n- [SDK and CLI Reference](docs/integrations/development.md)\n- [Common Step Patterns](docs/integrations/step-patterns.md)\n- [Testing Integrations](docs/integrations/testing.md)\n\n## Introduction\n\nIntegrating with JupiterOne may take one of these paths:\n\n1. A structured integration leveraging **this SDK** to dramatically simplify the\n   synchronization process, essential for any significant, ongoing integration\n   effort\n1. A command line script (sh, bash, zsh, etc.) using the [JupiterOne CLI\n   tool][2] to easily query/create/update/delete entities and relationships in\n   bulk\n1. Any programming/scripting language making HTTP GraphQL requests to\n   [query/create/update/delete entities and relationships][1]\n1. A JavaScript program using the [JupiterOne Node.js client library][2] to\n   query/create/update/delete entities and relationships\n\nThe integration SDK structures an integration as a collection of simple, atomic\nsteps, executed in a particular order. It submits generated entities and\nrelationships, along with the raw data from the provider used to build the\nentities, to the JupiterOne synchronization system, which offloads complex graph\nupdate operations, provides integration progress information, and isolates\nfailures to allow for as much ingestion as possible.\n\nAn integration built this way runs not only on your local machine; it can be\ndeployed to JupiterOne's managed infrastructure. You can easily build the\nintegration you need today and run it wherever you'd like. When you're ready, we\ncan help you get that integration running within the JupiterOne infrastructure,\nlowering your operational costs and simplifying adoption of your integration\nwithin the security community!\n\nPlease reference the\n[integration development documentation](docs/integrations/development.md) for\ndetails about how to develop integrations with this SDK.\n\n## Development\n\nTo get started with development:\n\n1. Install dependencies using `npm install`\n1. Run `npm run build`\n\nThis project utilizes TypeScript project references for incremental builds. To\nprepare all of the packages, run `npm run build`. If you are making a changes\nacross multiple packages, it is recommended you run `npm run build -- --watch`\nto automatically compile changes as you work.\n\n### Linking packages\n\nIf you are making changes to the SDK and you want to test the changes in another\nproject then it is recommended to automatically rebuild and link this project\nwhen changes are made.\n\nSteps to automatically build and link:\n\n- Run `npm run build` or `npm run build --watch` in _this_ project from a\n  terminal and wait for initial build to complete.\n\n- Run `npm link` in the package that you want to link.\n\n- In a separate terminal, run `npm link @jupiterone/\u003cpackage to link\u003e` in the\n  integration project. You can now use the integration SDK CLI in the other\n  project and it will use the latest code on your filesystem.\n\n### Versioning this project\n\nTo version all packages in this project and tag the repo with a new version\nnumber, run the following (where `major.minor.patch` is the version you expect\nto move to). Don't forget to update the `CHANGELOG.md` file!\n\n```shell\ngit checkout -b release-\u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e\ngit push -u origin release-\u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e\nnpm exec lerna version \u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e\n```\n\nNote the `git checkout`/`git push` is required because Lerna will expect that\nyou've already created a remote branch before bumping, tagging, and pushing the\nlocal changes to remote.\n\n❕Make sure to have committed all your changes before running\n`npm exec lerna version` since it will commit the version update and tag that\ncommit. Rebasing or amending lerna's commit will cause the tag to point to a\ndifferent commit.\n\n[1]:\n  https://support.jupiterone.io/hc/en-us/articles/360022722094-JupiterOne-Platform-API\n[2]: https://github.com/JupiterOne/jupiterone-client-nodejs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjupiterone%2Fsdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjupiterone%2Fsdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjupiterone%2Fsdk/lists"}