Replicate Bitbucket Data in Heroku for Use in Salesforce Connect

Stanley Liu
Stanley Liu
Associate Technical Product Marketer
Replicate Bitbucket data to a PostgreSQL database on Heroku and connect it to Salesforce using Salesforce Connect.

CData Sync is a standalone application that supports a wide range of replication scenarios, including replicating both sandbox and production instances into your database. By replicating Bitbucket data to a PostgreSQL database in Heroku, you can access Bitbucket external objects (via Salesforce Connect) alongside standard Salesforce objects.

Requirements

For this replication example, you need the following:

  1. CData Sync (trial or licensed), along with a license (full or trial) for Bitbucket replication.
  2. A Heroku app with the Heroku Postgres and Heroku Connect add-ons provisioned.
  3. A Salesforce account.

Configure the Replication Destination

Using CData Sync, you can easily replicate data from Bitbucket data to a PostgreSQL database on Heroku. For this article, you will need an existing PostgreSQL database on Heroku. To add your PostgreSQL database as a replication destination, navigate to the Connections tab.

  1. Click Add Connection.
  2. Select the Destinations tab and locate the PostgreSQL connector.
  3. Click the Configure Connection icon at the end of that row to open the New Connection page. If the Configure Connection icon is not available, click the Download Connector icon to install the PostgreSQL connector. For more information about installing new connectors, see Connections in the Help documentation.
  4. To connect to PostgreSQL, set the following connection properties:
    • Connection Name: Enter a connection name of your choice for the PostgreSQL connection.
    • Server: Enter the host name or IP of the server that hosts the PostgreSQL database. The default server value is localhost.
    • Auth Scheme: Select the authentication scheme. The default auth scheme is Password.
    • Port: Enter the port number of the server that hosts the PostgreSQL database. The default port value is 5432.
    • User: Enter the user ID provided for authentication with the PostgreSQL database.
    • Password: Enter the password provided for authentication with the PostgreSQL database.
    • Database: Enter the name of the database. If not specified, use the default database.
  5. Once connected, click Create & Test to create, test and save the connection.

You are now connected to PostgreSQL and can use it as both a source and a destination.

NOTE: You can use the Label feature to add a label for a source or a destination.

Configure the Bitbucket Connection

You can configure a connection to Bitbucket from the Connections tab. To add a connection to your Bitbucket account, navigate to the Connections tab.

  1. Click Add Connection.
  2. Select a source (Bitbucket).
  3. Configure the connection properties.

    For most queries, you must set the Workspace. The only exception to this is the Workspaces table, which does not require this property to be set, as querying it provides a list of workspace slugs that can be used to set Workspace. To query this table, you must set Schema to 'Information' and execute the query SELECT * FROM Workspaces>.

    Setting Schema to 'Information' displays general information. To connect to Bitbucket, set these parameters:

    • Schema: To show general information about a workspace, such as its users, repositories, and projects, set this to Information. Otherwise, set this to the schema of the repository or project you are querying. To get a full set of available schemas, query the sys_schemas table.
    • Workspace: Required if you are not querying the Workspaces table. This property is not required for querying the Workspaces table, as that query only returns a list of workspace slugs that can be used to set Workspace.

    Authenticating to Bitbucket

    Bitbucket supports OAuth authentication only. To enable this authentication from all OAuth flows, you must create a custom OAuth application, and set AuthScheme to OAuth.

    Be sure to review the Help documentation for the required connection properties for you specific authentication needs (desktop applications, web applications, and headless machines).

    Creating a custom OAuth application

    From your Bitbucket account:

    1. Go to Settings (the gear icon) and select Workspace Settings.
    2. In the Apps and Features section, select OAuth Consumers.
    3. Click Add Consumer.
    4. Enter a name and description for your custom application.
    5. Set the callback URL:
      • For desktop applications and headless machines, use http://localhost:33333 or another port number of your choice. The URI you set here becomes the CallbackURL property.
      • For web applications, set the callback URL to a trusted redirect URL. This URL is the web location the user returns to with the token that verifies that your application has been granted access.
    6. If you plan to use client credentials to authenticate, you must select This is a private consumer. In the driver, you must set AuthScheme to client.
    7. Select which permissions to give your OAuth application. These determine what data you can read and write with it.
    8. To save the new custom application, click Save.
    9. After the application has been saved, you can select it to view its settings. The application's Key and Secret are displayed. Record these for future use. You will use the Key to set the OAuthClientId and the Secret to set the OAuthClientSecret.
  4. Click Connect to Bitbucket to ensure that the connection is configured properly.
  5. Click Save & Test to save the changes.

Configure Queries for Each Bitbucket Instance

CData Sync enables you to control replication with a point-and-click interface and with SQL queries. For each replication you wish to configure, navigate to the Jobs tab and click Add Job. Select the Source and Destination for your replication.

Replicate Entire Tables

To replicate an entire table, navigate to the Task tab in the Job, click Add Tasks, choose the table(s) from the list of Bitbucket tables you wish to replicate into PostgreSQL, and click Add Tasks again.

Customize Your Replication

You can use the Columns and Query tabs of a task to customize your replication. The Columns tab allows you to specify which columns to replicate, rename the columns at the destination, and even perform operations on the source data before replicating. The Query tab allows you to add filters, grouping, and sorting to the replication with the help of SQL queries.

As you make changes using the interface, the SQL query used for the replication changes, going from something simple, like this:

REPLICATE [Issues]

to something customized and more complex, like this:

REPLICATE [Issues] SELECT [Title], [ContentRaw] FROM [Issues] WHERE [Id] = 1

Schedule Your Replication

Select the Overview tab in the Job, and click Configure under Schedule. You can schedule a job to run automatically by configuring it to run at specified intervals, ranging from once every 10 minutes to once every month.

Once you have configured the replication job, click Save Changes. You can configure any number of jobs to manage the replication of your Bitbucket data to PostgreSQL.

Run the Replication Job

Once all the required configurations are made for the job, select the Bitbucket table you wish to replicate and click Run. After the replication completes successfully, a notification appears, showing the time taken to run the job and the number of rows replicated.

The Bitbucket data tables are now replicated in Heroku PostgreSQL database.

Connect to Your Replicated Bitbucket Data as an External Data Source

Once your Bitbucket data is replicated to the PostgreSQL database on Heroku, configure the OData interface for Heroku and connect to the database as an external data source via Salesforce Connect.

Configure the OData Service for Heroku

The first part of connecting to Bitbucket data replicated to a PostgreSQL database on Heroku is configuring the Heroku External Objects for the database.

  1. In your Heroku dashboard, click the Heroku Connect Add-On.
  2. Select External Objects. (If this is the first time using Heroku External Object, you will be prompted to create the OData service's login credentials)
  3. View the OData service URL and credentials (noting the URL and credentials to be used later from Salesforce Connect).
  4. In Data Sources, select which replicated tables to share.

Refer to the Heroku documentation for more detailed instructions.

Configure an External Data Source in Salesforce

After the OData service for Heroku is configured, we can connect to the replicated Bitbucket data as an external data source from Salesforce Connect.

  1. In Salesforce, click Setup
  2. In the Administration section, click Data -> External Data Sources
  3. Set the data source parameter properties:
    • External Data Source: the name you wish to display in the Salesforce user interface
    • Name: a unique identifier for the API
    • Type: Salesforce Connect: OData 4.0
    • URL: Enter the OData endpoint from Heroku Connect (above)
    • Format: JSON
  4. Set Authentication:
    • Identity Type: Named Principal
    • Authentication Protocol: Password Authentication
    • Username: the Heroku Connect username
    • Password: the Heroku Connect password
  5. Click Save.

Synchronize Bitbucket Objects

After you have created the external data source in Salesforce, follow the steps below to create Bitbucket external objects that reflect any changes in the data source. You will synchronize the definitions for the Bitbucket external objects with the definitions for Bitbucket tables.

  1. Click the link for the external data source you created.
  2. Click Validate and Sync.
  3. Select the Bitbucket tables you want to work with as external objects and click Sync.

Access Bitbucket Data as Salesforce Objects

At this point, you will be able to connect to and work with your replicated Bitbucket entities as external objects just as you would with standard Salesforce objects, whether you are simply viewing the data or building related lists of external Bitbucket data alongside standard Salesforce objects.

Download a 30-day free trial of CData Sync and replicate your Bitbucket data for use with Salesforce Connect today!

Ready to get started?

Learn more or sign up for a free trial:

CData Sync