Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jupiterone/graph-bamboohr
A graph conversion tool for https://www.bamboohr.com/
https://github.com/jupiterone/graph-bamboohr
Last synced: 7 days ago
JSON representation
A graph conversion tool for https://www.bamboohr.com/
- Host: GitHub
- URL: https://github.com/jupiterone/graph-bamboohr
- Owner: JupiterOne
- License: mpl-2.0
- Created: 2020-09-23T15:06:39.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-01-02T19:13:00.000Z (11 months ago)
- Last Synced: 2024-01-02T20:27:08.486Z (11 months ago)
- Language: TypeScript
- Size: 562 KB
- Stars: 0
- Watchers: 14
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Codeowners: CODEOWNERS
Awesome Lists containing this project
README
# JupiterOne Integration
## Development Environment
### Prerequisites
You must have Node.JS installed to run this project. If you don't already have
it installed, you can can download the installer
[here](https://nodejs.org/en/download/). You can alternatively install Node.JS
using a version manager like [fnm](https://github.com/Schniz/fnm) or
[nvm](https://github.com/nvm-sh/nvm).### Setup
#### Installing dependencies
First, you'll need to
[install `yarn`](https://yarnpkg.com/getting-started/install). Then, from the
root of this project, run `yarn install` to install dependencies.#### Loading configuration
An integration executes against a configuration that provides credentials and
any other information necessary to ingest data from the provider. The
configuration fields are defined in `src/instanceConfigFields.ts` while the
configuration values are stored in a `.env` file at the root of this project.
This allows the integration to automatically load the field values and complain
when they're not provided.Create a `.env` file at the root of this project and add environment variables
to match what is in `src/instanceConfigFields.ts`. The `.env` file is ignored by
git, so you won't have to worry about accidentally pushing credentials.Given this example configuration:
```typescript
import { IntegrationInstanceConfigFieldMap } from '@jupiterone/integration-sdk-core';const instanceConfigFields: IntegrationInstanceConfigFieldMap = {
clientId: {
type: 'string',
},
clientSecret: {
type: 'string',
mask: true,
},
};export default instanceConfigFields;
```You would provide a `.env` file like this:
```bash
CLIENT_ID="client-id"
CLIENT_SECRET="supersecret"
```The snake cased environment variables will automatically be converted and
applied to the camel cased configuration field. So for example, `CLIENT_ID` will
apply to the `clientId` config field, `CLIENT_SECRET` will apply to
`clientSecret`, and `MY_SUPER_SECRET_CONFIGURATION_VALUE` will apply to a
`mySuperSecretConfigurationValue` configuration field.## Running the integration
To start collecting data, run `yarn start` from the root of the project. This
will load in your configuration from `src/index.ts`.## Documentation
### Development
Please reference the JupiterOne integration
[development documentation](https://github.com/JupiterOne/sdk/blob/main/docs/integrations/development.md)
for more information on how to use the SDK.See [docs/development.md](docs/development.md) for details about how to get
started with developing this integration.### Integration usage and resource coverage
More information about the resources covered by this integration and how to
setup the integration in JupiterOne can be found in
[docs/jupiterone.md](docs/jupiterone.md).### Changelog
The history of this integration's development can be viewed at
[CHANGELOG.md](CHANGELOG.md).