BaaS

ServisBOT BaaS is the home for mappings between the ServisBOT platform and external services such as APIs and SDKs. We currently have four kinds:

  • AWS SDK Connectors: Provides a mapping to AWS services available in their SDK. Just set your keys, and power your bots with AWS.
  • JSON API Connector: Provides a system mapping to an outside API. We’ve got blueprints to get started, or you can build custom ones.
  • Private API Connectors: Provides a system mapping to an outside API through a set of fixed IPs. Configuration for these are identical, but allows service teams to whitelist specific IPs to talk to their service.
  • SOAP API Connector: Provides a system mapping to an outside API through a set of fixed IPs. Allows the use of XML based APIs, typical use case is SOAP.

BaaS API connectors work best for RESTfull APIs, but with the full power of AWS available in the platform, providing custom integrations other services should still be possible.

Getting started with the BaaS

We have created a mock API and examples for creating your first series of API connectors.

Get Started

Certificate Support

We also support the passing of certificates in BaaS request for both private API connectors, and JSON API connectors. For this type of request, you need to add the Credentials field to the config of your API connector.

This Credentials field will contain the SRN of a secret. You can create the secret using the cli and the sb-cli secret ci command. For example:

{
  "Method": "POST",
  "Endpoint": "https://httpbin.org/post",
  "Credentials": "srn:vault::youOrg:certificate:secretName",
  "Headers": {},
  "Alias": "apiRequestWithCert",
  "RequestMapping": {},
  "ResponseMapping": {},
  "Type": "api-connector",
  "Body": {}
}

Storing Certificates in secrets using the CLI

Encoding for special characters

This is used to encode special characters being used in a BaaS Endpoint. This ensures the eventual request takes the format expected by the receiver.

{
  "Method": "POST",
  "Endpoint": "https://httpbin.org/post?emoji=😊",
  "EncodeEndpoint": true,
  "Headers": {},
  "Alias": "apiRequest",
  "RequestMapping": {},
  "ResponseMapping": {},
  "Type": "api-connector",
  "Body": {}
}

Restriction groups

Restriction groups can be created to prevent the BaaS from being repeatedly hit within a certain timeframe by the same actor. They offer a level a customization in the backoff strategy used. To configure them, see Restriction Groups