0.29.20 • Published 26 days ago

@sipgate/integration-bridge v0.29.20

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
26 days ago

sipgate Integration Bridge Framework

This is the sipgate Integration Bridge framework to integrate sipgate apps with external services. It provides a unified way to connect apps to any provider of external data management, like contacts or calendar events.

Developing locally

To test your changes to the integration-bridge framework locally, follow these steps:

  • Run npm run dev in sipgate-integration-bridge repo
  • Run npm link @sipgate/integration-bridge in *-integration-bridge-repo
  • Add the following to your tsconfig.json:
    {
      "compilerOptions": {
        "paths": {
          "@sipgate/integration-bridge": [
            "node_modules/@sipgate/integration-bridge/src"
          ]
        }
      }
    }

Publishing a version

To publish a new framework version, simply create a new tag and push it:

npm version <minor|patch>
git push --follow-tags

This will automatically publish the package in the npm registry via the CI pipeline.

Bootstrapping a new bridge

If you want to bootstrap a new sipgate Integration Bridge you can use this repository: integration-bridge-boilerplate

Installation

npm install @sipgate/integration-bridge
# or
yarn add @sipgate/integration-bridge

Quick Start

The minimum adapter implements the getContacts method:

const bridge = require('@sipgate/integration-bridge');
const fetch = require('node-fetch');

const { ServerError } = bridge;

const adapter = {
  getContacts: async ({ apiKey, apiUrl }) => {
    // Fetch contacts using apiUrl and apiKey
    const response = await fetch(`${apiUrl}/api/contacts`, {
      headers: { Authorization: `Bearer ${apiKey}` },
    });

    if (response.status === 401) {
      throw new ServerError(401, 'Unauthorized');
    }

    if (!response.ok) {
      throw new ServerError(500, 'Could not fetch contacts');
    }

    // TODO: Convert contacts to the structure below
    const contacts = await response.json();
    return contacts;
  },
};

bridge.start(adapter);

Contacts are accepted in this format:

{
  id: "abc123",

  // Provide either the full name or first and last name, not both
  name: null, // or null
  firstName: "Walter", // or null
  lastName: "Geoffrey", // or null

  organization: "Rocket Science Inc.", // or null
  contactUrl: "http://myapp.com/contacts/abc123", // or null
  avatarUrl: "http://myapp.com/avatar/abc123.png", // or null
  email: "walter@example.com", // or null
  phoneNumbers: [
    {
      label: "MOBILE", // or "WORK" or "HOME" ...
      phoneNumber: "+4915799912345"
    }
  ]
}

Configuration

The sipgate Integration Bridge supports configuration through the following environment variables:

  • OAUTH2_REDIRECT_URL: URL to redirect the user at the end of the OAuth2 flow
  • OAUTH2_IDENTIFIER: Name of the Integration to identify credentials in uppercase e. g. "MY_CRM"
  • REDIS_URL: URL of a Redis instance to cache responses, otherwise memory cache will be used
  • CACHE_DISABLED: Disable caching
  • CACHE_REFRESH_INTERVAL: Time a contact in cache is not refreshed (in seconds), only used if redis or memory cache is active
0.29.18

26 days ago

0.29.20

26 days ago

0.29.17

1 month ago

0.29.16

2 months ago

0.29.12

2 months ago

0.29.13

2 months ago

0.29.14

2 months ago

0.29.15

2 months ago

0.29.10

3 months ago

0.29.11

3 months ago

0.29.9

3 months ago

0.29.8

3 months ago

0.29.7

3 months ago

0.29.6

3 months ago

0.29.5

3 months ago

0.29.4

3 months ago

0.29.3

3 months ago

0.29.2

3 months ago

0.29.0

3 months ago

0.29.1

3 months ago

0.27.24

4 months ago

0.28.0

4 months ago

0.27.22

4 months ago

0.27.23

4 months ago

0.27.21

4 months ago

0.27.20

4 months ago

0.27.19

4 months ago

0.27.18

4 months ago

0.27.17

4 months ago

0.27.14

5 months ago

0.27.13

5 months ago

0.27.11

5 months ago

0.27.10

5 months ago

0.27.9

5 months ago

0.20.0

10 months ago

0.22.22

8 months ago

0.22.21

8 months ago

0.22.20

8 months ago

0.22.19

8 months ago

0.22.16

9 months ago

0.22.15

10 months ago

0.22.18

8 months ago

0.22.17

8 months ago

0.22.12

10 months ago

0.22.11

10 months ago

0.22.14

10 months ago

0.22.13

10 months ago

0.25.3

7 months ago

0.25.2

7 months ago

0.22.10

10 months ago

0.25.1

7 months ago

0.25.0

7 months ago

0.21.1

10 months ago

0.21.0

10 months ago

0.26.3

7 months ago

0.22.7

10 months ago

0.26.2

7 months ago

0.22.6

10 months ago

0.26.1

7 months ago

0.22.5

10 months ago

0.22.4

7 months ago

0.26.0

7 months ago

0.22.3

10 months ago

0.22.2

10 months ago

0.22.1

10 months ago

0.22.0

10 months ago

0.26.7

6 months ago

0.26.6

6 months ago

0.26.5

6 months ago

0.22.9

10 months ago

0.26.4

7 months ago

0.22.8

10 months ago

0.19.8

10 months ago

0.19.9

10 months ago

0.19.4

10 months ago

0.19.5

10 months ago

0.19.6

10 months ago

0.19.7

10 months ago

0.27.2

6 months ago

0.27.1

6 months ago

0.27.0

6 months ago

0.23.0

8 months ago

0.27.8

5 months ago

0.27.7

5 months ago

0.27.6

6 months ago

0.27.5

6 months ago

0.27.4

6 months ago

0.27.3

6 months ago

0.19.11

10 months ago

0.19.12

10 months ago

0.19.13

10 months ago

0.19.10

10 months ago

0.24.1

7 months ago

0.24.0

7 months ago

0.17.7

11 months ago

0.18.1

11 months ago

0.18.2

11 months ago

0.18.3

11 months ago

0.19.0

11 months ago

0.19.1

11 months ago

0.19.2

11 months ago

0.19.3

11 months ago

0.14.13

12 months ago

0.14.12

12 months ago

0.14.11

12 months ago

0.14.10

12 months ago

0.17.2

11 months ago

0.17.5

11 months ago

0.17.6

11 months ago

0.14.17

12 months ago

0.14.16

12 months ago

0.14.14

12 months ago

0.17.0

11 months ago

0.14.19

12 months ago

0.17.1

11 months ago

0.14.18

12 months ago

0.14.24

12 months ago

0.14.23

12 months ago

0.14.22

12 months ago

0.14.21

12 months ago

0.14.26

12 months ago

0.14.25

12 months ago

0.14.5

1 year ago

0.14.6

1 year ago

0.14.7

1 year ago

0.14.8

1 year ago

0.14.9

12 months ago

0.14.3

1 year ago

0.18.0

11 months ago

0.14.4

1 year ago

0.15.0

12 months ago

0.15.1

12 months ago

0.15.2

12 months ago

0.15.3

12 months ago

0.16.3

11 months ago

0.16.4

11 months ago

0.16.1

12 months ago

0.16.2

11 months ago

0.13.41

1 year ago

0.13.40

1 year ago

0.13.23

1 year ago

0.13.22

1 year ago

0.13.21

1 year ago

0.13.20

1 year ago

0.13.26

1 year ago

0.13.25

1 year ago

0.14.0

1 year ago

0.13.24

1 year ago

0.14.1

1 year ago

0.14.2

1 year ago

0.13.29

1 year ago

0.13.28

1 year ago

0.13.30

1 year ago

0.13.34

1 year ago

0.13.33

1 year ago

0.13.32

1 year ago

0.13.31

1 year ago

0.13.37

1 year ago

0.13.36

1 year ago

0.13.35

1 year ago

0.13.39

1 year ago

0.12.10

1 year ago

0.12.11

1 year ago

0.12.7

1 year ago

0.12.8

1 year ago

0.12.9

1 year ago

0.12.16

1 year ago

0.12.17

1 year ago

0.12.18

1 year ago

0.12.12

1 year ago

0.12.13

1 year ago

0.12.14

1 year ago

0.12.15

1 year ago

0.13.19

1 year ago

0.13.18

1 year ago

0.9.4

2 years ago

0.9.5

2 years ago

0.11.0

2 years ago

0.12.0

2 years ago

0.12.1

2 years ago

0.12.3

1 year ago

0.12.4

1 year ago

0.12.5

1 year ago

0.12.6

1 year ago

0.10.0

2 years ago

0.9.3

2 years ago

0.9.0

2 years ago

0.7.2

2 years ago

0.8.0

2 years ago

0.7.1

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.5.0

2 years ago

0.7.0

2 years ago

0.6.0

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.4.3

2 years ago

0.4.2

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago