84 lines
2.6 KiB
TypeScript
84 lines
2.6 KiB
TypeScript
import { posthogHelper } from '@botpress/common'
|
|
import { IntegrationDefinition, z } from '@botpress/sdk'
|
|
import { actions, events, subdomain } from './definitions'
|
|
|
|
export const INTEGRATION_NAME = 'bamboohr'
|
|
export const INTEGRATION_VERSION = '2.1.3'
|
|
|
|
export default new IntegrationDefinition({
|
|
name: INTEGRATION_NAME,
|
|
version: INTEGRATION_VERSION,
|
|
title: 'BambooHR',
|
|
description: 'Retrieve your BambooHR information',
|
|
readme: 'hub.md',
|
|
icon: 'icon.svg',
|
|
|
|
configuration: {
|
|
identifier: {
|
|
linkTemplateScript: 'linkTemplate.vrl',
|
|
required: true,
|
|
},
|
|
schema: z.object({}),
|
|
},
|
|
|
|
configurations: {
|
|
manual: {
|
|
title: 'Manual configuration',
|
|
description: 'Configure manually with your BambooHR API Key',
|
|
schema: z.object({
|
|
apiKey: z.string().min(1).title('API Key').describe('Your BambooHR API Key, from My Account > Api Keys'),
|
|
subdomain,
|
|
}),
|
|
},
|
|
},
|
|
actions,
|
|
events,
|
|
secrets: {
|
|
OAUTH_CLIENT_SECRET: {
|
|
description: 'The OAuth Client Secret provided by BambooHR from the developer portal.',
|
|
},
|
|
OAUTH_CLIENT_ID: {
|
|
description: 'The OAuth Client ID provided by BambooHR from the developer portal.',
|
|
},
|
|
...posthogHelper.COMMON_SECRET_NAMES,
|
|
},
|
|
states: {
|
|
oauth: {
|
|
type: 'integration',
|
|
schema: z
|
|
.object({
|
|
domain: z.string().title('Domain').describe('The domain of the company.'),
|
|
accessToken: z.string().title('Temporary Access Token').describe('Temporary access token for the API.'),
|
|
refreshToken: z.string().title('Refresh Token').describe('Token used to refresh the access token.'),
|
|
expiresAt: z
|
|
.number()
|
|
.title('Expiration Timestamp')
|
|
.describe('Timestamp (in ms from epoch) at which the token expires.'),
|
|
scopes: z.string().title('Scopes').describe('Scopes for the token (space-separated).'),
|
|
})
|
|
.title('OAuth Parameters')
|
|
.describe('Parameters required to authenticate via OAuth. Not required if using API Key.'),
|
|
},
|
|
webhook: {
|
|
type: 'integration',
|
|
schema: z.object({
|
|
privateKey: z
|
|
.string()
|
|
.nullable()
|
|
.title('Private Key')
|
|
.describe('The private key provided by BambooHR to validate the webhook.'),
|
|
id: z
|
|
.string()
|
|
.nullable()
|
|
.title('Webhook ID')
|
|
.describe('The ID of the webhook as provided by BambooHR when the webhook was created.'),
|
|
}),
|
|
},
|
|
},
|
|
attributes: {
|
|
category: 'Business Operations',
|
|
guideSlug: 'bamboohr',
|
|
repo: 'botpress',
|
|
},
|
|
})
|