Instant Bloomberg
Overview
The Instant Bloomberg Adapter is a Node.js service that bridges Instant Bloomberg (IB) and the io.Connect ecosystem via the IB Connect API. It handles all networking, authentication, and stream consumption logic, allowing any interop-enabled app to easily access IB data without having to deal with the low-level API complexity.
The Instant Bloomberg Adapter is configurable via app definition and environment variables, and provides default functionalities via Interop methods for discovering streams, subscribing to chat events, initiating chats, replying with trade ideas, and retrieving cached messages.
⚠️ Note that the Instant Bloomberg Adapter is still in beta phase. While the described functionalities are available, they may be subject to change in future releases.
Prerequisites
- A licensed io.Connect Desktop platform with the Instant Bloomberg Adapter deployed.
- Active entitlements for the Instant Bloomberg API add-ons provisioned by Bloomberg.
- API credentials (client ID and client secret issued by Bloomberg) for authenticating with the Bloomberg IB Connect API.
Deployment
The Instant Bloomberg Adapter is available as a platform component that can be installed via the io.Connect seed project and can also be delivered as a standalone bundle in the form of an archived (ZIP) file which you can add to your existing deployment. The Instant Bloomberg Adapter can be deployed locally or on a cloud server.
ℹ️ For details on how to configure the Instant Bloomberg Adapter as a local or remote Node.js app within the io.Connect framework, see the Configuration section.
9.0 Version Stream
If you are still using the io.Connect Desktop 9.0 version stream, the Instant Bloomberg Adapter can be delivered as part of the io.Connect Desktop installer or as a standalone bundle depending on your deployment approach.
Bundle Content
The Instant Bloomberg Adapter bundle contains the compiled Node.js service, OS-specific credential encryption utilities (standalone executables that don't require a Node.js installation), configuration file templates for the different deployment and configuration scenarios, types for the registered Interop methods, as well as a mock app and a demo app for development and testing purposes:
.
├── adapter/
│ └── server.cjs # Instant Bloomberg Adapter Node.js service entry point.
├── configurator/
│ ├── setup-encryptions.exe # Credential encryption standalone executable (Windows x64).
│ ├── setup-encryptions-linux # Credential encryption standalone executable (Linux x64).
│ └── setup-encryptions-mac # Credential encryption standalone executable (macOS arm64).
├── demo/ # Demo web app for testing the registered Interop methods.
├── mock/ # Instant Bloomberg mock app for local development and testing.
├── io-apps/
│ ├── app-config/
│ │ ├── ibchat-local.json # App definition template for using embedded encrypted credentials.
│ │ └── ibchat-remote.json # App definition template for using encrypted credentials fetched from a remote source.
│ └── gilding.json/
│ └── gilding.json # Gilding configuration for io.Connect Desktop (9.0 version stream).
├── types/
│ └── ib_adapter.d.ts # Type definitions of the registered Interop methods.
├── component.json # Post-install seed project configuration for deploying app definitions to io.Connect Desktop.
├── ibchat.json # App definition for the Instant Bloomberg Adapter configured to work with Instant Bloomberg mock.
├── ibchat.demo.json # App definition for the demo web app.
└── ibchat.mock.json # App definition for the Instant Bloomberg mock.ℹ️ For details on using the mock and demo apps, see the markdown files in the
mockanddemodirectories.
Local
- Extract the archive to a preferred location, open a command prompt in the
/configuratordirectory, and run the encryption tool to generate encrypted credentials and configuration files.
⚠️ Note that the encryption tool uses a decryption pattern to derive a passphrase with which to create encrypted credentials. The decryption pattern can reference environment variables. Before running the encryption tool, all environment variables referenced by the selected decryption pattern must be set to non-empty values. The encryption tool will exit with an error if any referenced variables are missing or empty.
⚠️ Note that, currently, the encryption tool supports only environment variables that don't contain underscores in their names. This will be addressed in a future release and may lead to changing the current
$<var-name>_format.
ℹ️ For more details on using a decryption pattern for encrypting and decrypting the Instant Bloomberg credentials, see the Configuration > Credentials section.
# Set each environment variable referenced by the selected decryption pattern to a non-empty value.
set MY-VAR=MY-VALUE
set MY-OTHER-VAR=MY-OTHER-VALUE
# Replace the arguments with the appropriate values.
setup-encryptions.exe <client-id> <client-secret> <decryption-pattern>The command generates and overwrites the following configuration files:
| File | Description |
|---|---|
.env |
Generated file with environment variables for configuring the Instant Bloomberg Adapter. |
ibChatCredentials.json |
Generated file with encrypted credentials to be fetched from a remote source. You can host this file on an HTTPS server and configure the Instant Bloomberg Adapter by using the ibchat-remote.json app definition template to point to it if you want to fetch the credentials from a remote source. |
io-apps/app-config/ibchat-local.json |
Overwritten app definition template that now contains embedded encrypted credentials. |
io-apps/gilding.json/gilding.json |
Overwritten gilding configuration for io.Connect Desktop that now contains embedded encrypted credentials. This file is necessary only if you are still using the io.Connect Desktop 9.0 version stream and environment variables for configuring the Instant Bloomberg Adapter. |
Copy the generated app definition file to the
<installation_location>/config/appsfolder of io.Connect Desktop.Start or restart io.Connect Desktop to load the Instant Bloomberg Adapter service.
Remote
To deploy the Instant Bloomberg Adapter on a cloud server:
Upload the
/adapterdirectory to the server.Configure the credentials via one of the available options - app definition, remote source, or environment variables.
Ensure that the Instant Bloomberg Adapter service is accessible via the URL specified in the
"url"property of the"remote"object under the"details"top-level key in the app definition of the Instant Bloomberg Adapter.
Troubleshooting
Credentials validation failure:
- Verify that
clientIdis exactly 32 characters. - Verify that
clientSecretis exactly 64 characters. - Ensure all environment variables referenced by the decryption pattern are set to non-empty values before running the encryption tool.
- Re-run the encryption command with the correct values.
Can't connect to io.Connect:
- Ensure that io.Connect Desktop is running.
- Verify that
IO_CD_WS_URLmatches your platform configuration.
Health check failures:
- Ensure that network connectivity to the Bloomberg API is available.
- Verify that the API credentials are valid.
- Check that the
"host"property of the"ibChat"object is correct (defaults to"https://api.bloomberg.com").
Cache not loading:
- Verify that the
storagePathdirectory exists and is writable. - Check that the JSON files in the cache directory are in a valid format.