Skip Navigation
Show nav
Heroku Dev Center
  • Get Started
  • Documentation
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
  • Documentation
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View categories

Categories

  • Heroku Architecture
    • Dynos (app containers)
    • Stacks (operating system images)
    • Networking & DNS
    • Platform Policies
    • Platform Principles
  • Command Line
  • Deployment
    • Deploying with Git
    • Deploying with Docker
    • Deployment Integrations
  • Continuous Delivery
    • Continuous Integration
  • Language Support
    • Node.js
    • Ruby
      • Working with Bundler
      • Rails Support
    • Python
      • Background Jobs in Python
      • Working with Django
    • Java
      • Working with Maven
      • Java Database Operations
      • Working with the Play Framework
      • Working with Spring Boot
      • Java Advanced Topics
    • PHP
    • Go
      • Go Dependency Management
    • Scala
    • Clojure
  • Databases & Data Management
    • Heroku Postgres
      • Postgres Basics
      • Postgres Getting Started
      • Postgres Performance
      • Postgres Data Transfer & Preservation
      • Postgres Availability
      • Postgres Special Topics
    • Heroku Data For Redis
    • Apache Kafka on Heroku
    • Other Data Stores
  • Monitoring & Metrics
    • Logging
  • App Performance
  • Add-ons
    • All Add-ons
  • Collaboration
  • Security
    • App Security
    • Identities & Authentication
    • Compliance
  • Heroku Enterprise
    • Private Spaces
      • Infrastructure Networking
    • Enterprise Accounts
    • Enterprise Teams
    • Heroku Connect (Salesforce sync)
      • Heroku Connect Administration
      • Heroku Connect Reference
      • Heroku Connect Troubleshooting
    • Single Sign-on (SSO)
  • Patterns & Best Practices
  • Extending Heroku
    • Platform API
    • App Webhooks
    • Heroku Labs
    • Building Add-ons
      • Add-on Development Tasks
      • Add-on APIs
      • Add-on Guidelines & Requirements
    • Building CLI Plugins
    • Developing Buildpacks
    • Dev Center
  • Accounts & Billing
  • Troubleshooting & Support
  • Integrating with Salesforce
  • Add-ons
  • All Add-ons
  • GRAX
GRAX

This add-on is operated by GRAX

GRAX allows you to build a DATA LAKE on Heroku with your SFDC org data.

GRAX

Last updated February 17, 2020

Table of Contents

  • GRAX Solution High Level Overview
  • Installation Roles Overview
  • Connecting Salesforce to Heroku
  • Support
  • Contact Us

GRAX Solution High Level Overview

The GRAX solution is a Data Value platform that provides replicate & preserve (backup & archive) functionality as well as advanced audit trail features to your data scenarios. GRAX is built with a core focus on Salesforce.com based data and data structures, allowing the offsite storage, management, and use of your valuable Salesforce.com data, as well as use with other non SalesForce.com platforms and services. Due to the nature of today’s cloud platforms, GRAX was designed to take advantage of 4 major technologies to achieve its value to any enterprise: Salesforce.com, Heroku, Elastic, and AWS (with an option for Azure in place of AWS).

Below is an overview of the GRAX ‘stack’, essentially, the 4 technologies that GRAX is built upon to achieve one, cohesive data value solution. It is essential to understand how GRAX utilizes these 4 core technologies, as the major areas of planning, installation, and enablement involve the configuration and management of each of these essential tiers of the GRAX solution (the ‘stack’).

Let’s get into the core platforms and related components configured as part of the GRAX installation…

Salesforce.com

This serves as the user interface tier of GRAX, and is the tier where the GRAX managed application is installed and is your main point of interaction with GRAX (user interface, job scheduling, archive, restore, etc.). Items for consideration and configuration consist of:

  • GRAX managed package installation
  • Permission sets, roles, and security
  • Remote site settings
  • Connectivity to the GRAX Heroku layer of the GRAX ‘stack’
  • Validate availability of SF Connect (external data sources and connections) if using GRAX for advanced reporting and visualization (Einstein, standard reporting, etc.)

Heroku

This tier serves as the core GRAX application or middle tier, and supports and manages the proxying of data bi-directionally between the GRAX data lake and Salesforce.com, ability to scale elastically, manage dynos and resources, privacy, etc. Most of the configuration is managed at the Heroku layer of the GRAX app, as this essential middle -tier bridges the gap between Salesforce.com (the GRAX managed application\UI) and the GRAX data lake. Items for consideration and configuration consist of:

  • SFDC user name, password, login URL and token for Heroku to Salesforce.com connectivity
  • AWS S3 or Azure Blob Storage credentials: key, secret key, region, bucket name
  • Geographic regions for ‘where’ data can run and legally needs to reside
  • Private space setup: setup, custom domain, VPC peering
  • Does client need Private Space ‘Shield’?
  • Heroku resources to power GRAX: Dynos’ etc. Ensuring enough add-on credits to be able to performance tune GRAX effectively for the specific scenarios

Elasticsearch

This tier serves as the 1st part of the core data lake underlying technology for GRAX data lake storage. Elasticsearch indexes the most recent version of the SFDC data record for fast recall, search, and restore functions. GRAX uses this technology in cooperation with S3 or Blob Storage. You may choose to use the GRAX indexing or host your own Elastic Search. If hosting your own Elastic Search, additional consideration and configuration will need to be addressed, such as firewalls, proxies, etc. Items for consideration and configuration consist of:

  • Bonsai plan sizing required for your data sizing
  • Regions for plans are based on the geo-regions of your GRAX app (see above)
  • If self-hosting, additional considerations may need to be taken, such as:
    • IP restrictions
    • Proxies, networking restrictions, etc.
    • Any firewall rules (if hosting Elastic Search on premise)
    • Other security and access challenges or roadblocks

Installation Roles Overview

Due to the nature of the GRAX solution being a 4-tier architecture across 4 technologies, GRAX installation and enablement requires solid coordination between the GRAX team, the client’s team, the client’s SI, and the client’s Salesforce.com\Heroku AE’s and reps. Below is an outline of pre-requisites for a GRAX installation, as well as roles, responsibilities, and deliverables for a successful, complete GRAX install and enablement.

Salesforce.com and Heroku AE’s (account reps)

  • Ensure that all environments have availability of purchased items, add-on credits, etc.
    • Heroku add-on credits to support purchase of GRAX components
    • GRAX core Heroku application
    • Bonsai Elastic Search add -on (if purchased)
    • Quantity of add-on credits to support purchased throughput and sizing of Heroku dyno’s and dyno units
    • Private Space available
    • Private Space ‘Shield’ available (if applicable)
    • Salesforce.com add-ons
    • Salesforce.com Connect (if using standard reports and Einstein to visualize GRAX data lake data)
    • A dedicated Salesforce license for GRAX usage within Salesforce. Although this is not required, it is recommended best practice. Any enterprise user license can be used for GRAX.

Client

  • Provide access to your provisioned Heroku account. support@grax.io is the GRAX install team that requires Heroku access to be able to perform the install. This user can always be removed in the future.
  • Provide access to your desired Salesforce.com environment in order to perform the GRAX managed package installation
  • Creation of an AWS S3 or Azure Blob Storage ‘bucket’ – parameters associated with this storage bucket are used in the GRAX Heroku layer as ‘configuration variables’ for connecting the GRAX Heroku layer to your S3 or Azure storage bucket. For AWS S3, client to provide GRAX Team with Region, S3 Bucket Name, S3 Secret ID and S3 AccessKeyID. For Azure Blob, client to provide GRAX Team with Azure Storage Account Name, Azure Container Name, Azure Storage Account Access Key.
  • Provide access to S3 or access to Azure as needed
  • Set up your own instance of Elastic
  • Clearly defined use cases for GRAX use and setup – this enables the GRAX team to ensure the appropriate knowledge transfer for using GRAX, as well as identify special ‘edge’ cases for other areas of GRAX use and management
  • Read through data best practices to ensure and confirm that all data-related recommendations are clearly understood.

GRAX Team

  • Conduct planning and install meetings and sessions
  • Gather necessary intake:
    • System credentials & access
    • Solution parameters
      • Scope of GRAX use (Single org, Multi Org, Custom etc)
      • AWS S3 credentials: region, key, secret key, bucket name
      • Azure Blob Storage credentials: account name, container name, keys
      • SFDC environment access: user, password, token
      • Regions for data storage (for example – US West)
      • Regions for data processing
  • Perform GRAX installation within client’s Heroku and Salesforce.com environments
  • Guide client through install if performing self-install
  • Validate completeness and execution of full GRAX installation for scoped environments (sandbox, production, multiple SFDC org scenarios)
  • Enable via knowledge transfer and guidance: using GRAX in Salesforce, creating jobs, managing environments, using GRAX API and various components as needed

Client or Client’s SI / Vendor

  • Create all the relevant scheduled processes (backup and/or archive jobs) within the GRAX Salesforce application after GRAX high level enablement session
  • Create all Salesforce reports that may be referenced by your scheduled backup/archive jobs
  • Create all relevant Salesforce triggers for each object you will want to use in object time machine (GRAX help site has full instructions)
  • Create any relevant Salesforce dashboards, Einstein Analytics dashboards to analyze GRAX Data
  • Create or edit process(es) to sync data to Einstein Analytics or Marketing Cloud
  • Create or change anything within your Salesforce instance to facilitate backup queries etc. For instance, many clients will want to create new formula fields or roll-up summaries across lookup relationships that aid in filtering records for backup

Connecting Salesforce to Heroku

If you are unable to see anything in the GRAX tab, be sure you have first reviewed and assigned a permission set to yourself. See the instructions here

Establishing Connection

  • Go to your Salesforce instance and click on the App GRAX
  • Click on the tab GRAX
  • Click on the link Authorize
    • You will need to sign in to your Heroku instance to “bind” your Heroku and Salesforce environments.
  • Click on the link New App to create a new Heroku app or select an existing App if you have already created one
    • Enter in your App Name (example: grax –hardingpointtest-datalake)
    • Under app owner select the correct team environment or owner
  • Click Deploy to deploy your app!

  • Now let’s go back to Salesforce and finish the setup there. In Salesforce, click on the Grax Settings tab

    • Make sure you have selected your newly created heroku app and click save.
    • Refresh the tab to confirm connection has been established, and proceed to the Remote Site Settings section below.

Remote Site Settings & Final Confirmation Steps

  • After following the above step, you should see an ‘Error’ message at the top of the page asking you to add a remote site. Copy the link for the Remote Site Setting which is shown at the top of the page
    • Go to Setup, and search for Remote Site Settings
    • Click on Remote Site Settings
    • Click New Remote Site
    • Remote Site Name: graxproxy
    • Remote Site URL: the link you copied from above
    • Click Save
  • Now Go back to the GRAX: Configuration tab, refresh the page, and the error message should no longer appear
  • You will still see an ‘Error’ message at the top of the page telling you that there are currently unscheduled jobs.
    • Click the ‘Unlock’ button
    • Expand the ‘Scheduled Jobs’ section
    • Click the ‘Activate Scheduled Jobs’

Support

GRAX provides customer support for our software solution. Standard support is included in the software licensing fees associated.

Support requests that fall outside the standard implementation provided by GRAX incur fees based on the time and materials involved. These fees may also be incurred during troubleshooting in situations where the issue/problem and resolution are not within the scope of a solution or service provided by GRAX. Typically, these fees are hourly labor charges related to the time a technician or engineer spends working on the request.

GRAX Standard Support Guidelines

  • US based support: Mon-Friday: Business Hours: 8am – 8pm Eastern
  • India based support: Mon-Friday: Business Hours : 11pm – 8am Eastern
  • Explore detailed documentation through the GRAX direct link or by conducting a google search for what you are looking for
  • Help Ticket: Create a help ticket through the Help tab within your GRAX application
  • Email – help@grax.com

Contact Us

Please contact us for your own demo environment.

GRAX Website

GRAX Developer Hub

Keep reading

  • All Add-ons

Feedback

Log in to submit feedback.

Ziggeo Guru301

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Podcasts
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing

Subscribe to our monthly newsletter

Your email address:

  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Heroku Podcasts
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Facebook
  • Instagram
  • Github
  • LinkedIn
  • YouTube
Heroku is acompany

 © Salesforce.com

  • heroku.com
  • Terms of Service
  • Privacy
  • Cookies
  • Cookie Preferences