1.0.27 • Published 8 days ago

@sipgate/integration-bridge v1.0.27

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
8 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
1.0.19

4 months ago

1.0.18

4 months ago

1.0.17

4 months ago

1.0.16

4 months ago

1.0.22

1 month ago

1.0.21

1 month ago

1.0.26

29 days ago

1.0.25

30 days ago

1.0.24

1 month ago

1.0.23

1 month ago

1.0.27

8 days ago

1.0.11

7 months ago

1.0.15

4 months ago

1.0.14

4 months ago

1.0.13

4 months ago

1.0.9

8 months ago

1.0.8

8 months ago

1.0.6

8 months ago

1.0.5

8 months ago

1.0.4

8 months ago

0.30.5

10 months ago

0.30.4

11 months ago

0.30.3

11 months ago

0.30.2

11 months ago

0.30.1

11 months ago

0.30.0

11 months ago

0.29.21

1 year ago

0.29.22

1 year ago

1.0.2

9 months ago

1.0.1

9 months ago

1.0.0

9 months ago

1.0.3

9 months ago

0.29.18

1 year ago

0.29.20

1 year ago

0.29.17

1 year ago

0.29.16

1 year ago

0.29.12

1 year ago

0.29.13

1 year ago

0.29.14

1 year ago

0.29.15

1 year ago

0.29.10

1 year ago

0.29.11

1 year ago

0.29.9

1 year ago

0.29.8

1 year ago

0.29.7

1 year ago

0.29.6

1 year ago

0.29.5

1 year ago

0.29.4

1 year ago

0.29.3

1 year ago

0.29.2

1 year ago

0.29.0

1 year ago

0.29.1

1 year ago

0.27.24

1 year ago

0.28.0

1 year ago

0.27.22

1 year ago

0.27.23

1 year ago

0.27.21

1 year ago

0.27.20

1 year ago

0.27.19

1 year ago

0.27.18

1 year ago

0.27.17

1 year ago

0.27.14

1 year ago

0.27.13

2 years ago

0.27.11

2 years ago

0.27.10

2 years ago

0.27.9

2 years ago

0.20.0

2 years ago

0.22.22

2 years ago

0.22.21

2 years ago

0.22.20

2 years ago

0.22.19

2 years ago

0.22.16

2 years ago

0.22.15

2 years ago

0.22.18

2 years ago

0.22.17

2 years ago

0.22.12

2 years ago

0.22.11

2 years ago

0.22.14

2 years ago

0.22.13

2 years ago

0.25.3

2 years ago

0.25.2

2 years ago

0.22.10

2 years ago

0.25.1

2 years ago

0.25.0

2 years ago

0.21.1

2 years ago

0.21.0

2 years ago

0.26.3

2 years ago

0.22.7

2 years ago

0.26.2

2 years ago

0.22.6

2 years ago

0.26.1

2 years ago

0.22.5

2 years ago

0.22.4

2 years ago

0.26.0

2 years ago

0.22.3

2 years ago

0.22.2

2 years ago

0.22.1

2 years ago

0.22.0

2 years ago

0.26.7

2 years ago

0.26.6

2 years ago

0.26.5

2 years ago

0.22.9

2 years ago

0.26.4

2 years ago

0.22.8

2 years ago

0.19.8

2 years ago

0.19.9

2 years ago

0.19.4

2 years ago

0.19.5

2 years ago

0.19.6

2 years ago

0.19.7

2 years ago

0.27.2

2 years ago

0.27.1

2 years ago

0.27.0

2 years ago

0.23.0

2 years ago

0.27.8

2 years ago

0.27.7

2 years ago

0.27.6

2 years ago

0.27.5

2 years ago

0.27.4

2 years ago

0.27.3

2 years ago

0.19.11

2 years ago

0.19.12

2 years ago

0.19.13

2 years ago

0.19.10

2 years ago

0.24.1

2 years ago

0.24.0

2 years ago

0.17.7

2 years ago

0.18.1

2 years ago

0.18.2

2 years ago

0.18.3

2 years ago

0.19.0

2 years ago

0.19.1

2 years ago

0.19.2

2 years ago

0.19.3

2 years ago

0.14.13

2 years ago

0.14.12

2 years ago

0.14.11

2 years ago

0.14.10

2 years ago

0.17.2

2 years ago

0.17.5

2 years ago

0.17.6

2 years ago

0.14.17

2 years ago

0.14.16

2 years ago

0.14.14

2 years ago

0.17.0

2 years ago

0.14.19

2 years ago

0.17.1

2 years ago

0.14.18

2 years ago

0.14.24

2 years ago

0.14.23

2 years ago

0.14.22

2 years ago

0.14.21

2 years ago

0.14.26

2 years ago

0.14.25

2 years ago

0.14.5

2 years ago

0.14.6

2 years ago

0.14.7

2 years ago

0.14.8

2 years ago

0.14.9

2 years ago

0.14.3

2 years ago

0.18.0

2 years ago

0.14.4

2 years ago

0.15.0

2 years ago

0.15.1

2 years ago

0.15.2

2 years ago

0.15.3

2 years ago

0.16.3

2 years ago

0.16.4

2 years ago

0.16.1

2 years ago

0.16.2

2 years ago

0.13.41

2 years ago

0.13.40

2 years ago

0.13.23

2 years ago

0.13.22

2 years ago

0.13.21

2 years ago

0.13.20

2 years ago

0.13.26

2 years ago

0.13.25

2 years ago

0.14.0

2 years ago

0.13.24

2 years ago

0.14.1

2 years ago

0.14.2

2 years ago

0.13.29

2 years ago

0.13.28

2 years ago

0.13.30

2 years ago

0.13.34

2 years ago

0.13.33

2 years ago

0.13.32

2 years ago

0.13.31

2 years ago

0.13.37

2 years ago

0.13.36

2 years ago

0.13.35

2 years ago

0.13.39

2 years ago

0.12.10

2 years ago

0.12.11

2 years ago

0.12.7

3 years ago

0.12.8

2 years ago

0.12.9

2 years ago

0.12.16

2 years ago

0.12.17

2 years ago

0.12.18

2 years ago

0.12.12

2 years ago

0.12.13

2 years ago

0.12.14

2 years ago

0.12.15

2 years ago

0.13.19

2 years ago

0.13.18

2 years ago

0.9.4

3 years ago

0.9.5

3 years ago

0.11.0

3 years ago

0.12.0

3 years ago

0.12.1

3 years ago

0.12.3

3 years ago

0.12.4

3 years ago

0.12.5

3 years ago

0.12.6

3 years ago

0.10.0

3 years ago

0.9.3

3 years ago

0.9.0

3 years ago

0.7.2

3 years ago

0.8.0

3 years ago

0.7.1

3 years ago

0.9.2

3 years ago

0.9.1

3 years ago

0.5.0

3 years ago

0.7.0

3 years ago

0.6.0

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago