Managed Package
While the GRAX application is hosted outside of the Salesforce platform, we provide our customers with multiple ways to integrate GRAX with Salesforce to best fit their needs. This guide walks you through installing and managing the optional Salesforce AppExchange Managed Package.
Installing the GRAX Salesforce Managed Package
Pre-requisites
-
A copy of the GRAX application connected to a storage bucket running on cloud infrastructure
Need help getting set up?
Contact Support or the Trial Team for assistance.
-
A Salesforce account
- You can use your existing Salesforce account or register here for a Salesforce Developer Edition account
Security/Access Settings
Before installing GRAX into a Salesforce environment, you should understand which users you are providing access and what that means.
Install for Admins Only
Specifies the following settings on the installing administrator’s profile and any profile with the Customize Application
permission:
- Object permissions —
Read,
Create,
Edit,
Delete,
View All,
andModify All
enabled - Field-level security — set to visible and editable for all fields
- Apex classes — enabled
- Visualforce pages — enabled
- App settings — enabled
- Tab settings — enabled for GRAX app
- Page layout settings — read only
- Record Type settings — read only
- After installation, if you have Enterprise, Performance, Unlimited, or Developer Edition, set the appropriate user and object permissions on custom profiles as needed
Install for All Users
Specifies the following settings on all internal custom profiles:
- Object permissions —
Read,
Create,
Edit,
andDelete
enabled - Field-level security — set to visible and editable for all fields
- Apex classes — enabled
- Visualforce pages — enabled
- App settings — enabled
- Tab settings — enabled for GRAX app
- Page layout settings — read only
- Record Type settings — copied from administrator profile
Install for Specific Profiles
Enables you to choose the usage access for all custom profiles in your organization. You can set each profile to have full access or no access for the new package and all its components.
- Full Access — Specifies the following settings for each profile.
- Object permissions —
Read,
Create,
Edit,
Delete,
View All,
andModify All
enabled - Field-level security — set to visible and editable for all fields
- Apex classes — enabled
- Visualforce pages — enabled
- App settings — enabled
- Tab settings — enabled for GRAX app
- Page layout settings — read only
- Record Type settings — read only
Installation Steps
- Install GRAX in Production or Install GRAX in Sandbox
- Enter Salesforce login details
- Select the user type (
Admin Users
,All Users
, orSpecific Profiles
) you'd like to install the managed package for and clickInstall
- Before the installation begins, you'll be prompted to grant third-party access. Check the box granting access to third-party websites and click
Continue.
Assign Permission Sets
- Using Quick Find in Salesforce Setup, search for
Users
and navigate to the user that you're granting permissions to - Click
Edit Assignments
- Select from the permission sets included in the GRAX Salesforce Managed Package and click
Add
- Click
Save
Configure GRAX in Salesforce
- Launch the GRAX App in Salesforce from the App Launcher icon and click
Unlock
in the bottom right corner - In a separate tab, login to GRAX and navigate to
Settings
>GRAX API Tokens
>Reveal GRAX Tokens
- Copy and paste the Application URL and API Token information from GRAX into Salesforce and click
Save
NOTE:
The GRAX Configuration tab will need to be reconfigured each time the application URL or the API tokens change
Configure Remote Site Setting
- Click
Add Remote Site Setting
- The necessary information will auto-populate
- Click
Save
Configure Trusted URLs
- Copy your GRAX app URL
- Using Quick Find in Salesforce Setup, search for
Trusted URLs
and clickNew Trusted URL
- Enter
GRAX
as the API Name and paste the URL in the URL box
Configure Custom Settings
To enable a custom setting, follow the steps below:
- Using Quick Find in Salesforce Setup, search for
Custom Settings
- Click
Manage
next to GRAX Settings - Click
Edit
- Click the checkbox next to the custom setting you wish to enable
- Click
Save
Enable Auto Backup Custom Setting
The Enable Auto Backup custom setting, when set to TRUE, does the following:
Redirects the Schedule tab to GRAX web app, which removes the ability to see legacy backup and archive jobs
BEFORE enabling this custom setting, you need to ensure that ALL of the following are true:
- All legacy backup jobs have been deactivated
- All legacy archive jobs have been deactivated
- All archive jobs, that you want to continue to run, have been moved over to the webapp
Enable GRAX Next Generation Custom Setting
The Enable GRAX Next Generation custom setting, when set to TRUE, does the following:
- Redirects the
Search
tab to GRAX Global Search - Redirects the
Summary
tab to GRAX Auto Backup - Hides the
Summary History
dropdown on an individual GSP action dropdown - Hides
Datalake Delete
tab - Hides
Logs
tab - Hides
Setup
sub-tab (GRAX>Configuration>Setup) - Hides
Time Machine Trigger Template Code
on GRAX>Configuration>Miscellaneous
Uninstalling the Managed Package
Using the GRAX Salesforce Managed Package is now optional. All GRAX features can be accessed directly via the application's web interface.
What does it mean to uninstall a Managed Package?
Uninstalling a managed package removes its components and data from the org. During the uninstall process, any customizations, including custom fields or links, that you’ve made to the package are removed.
Don't I need the Managed Package to manage and utilize GRAX?
No - Using the GRAX Salesforce Managed Package is now optional. All GRAX features can be accessed directly via the application's web interface.
Do I need special permissions to uninstall the Managed Package?
To uninstall managed packages, you will need the Download AppExchange Packages
user permission.
Displaying GRAX Data within SFDC without the Managed Package
Instead of using the GRAX Salesforce Managed Package Lightning Web Components (LWC), GRAX data can now be displayed on SFDC page layouts, without the GRAX Salesforce Managed Package, via the Embedded LWC Data Viewer.
Managing Permission Sets without the Managed Package
User permission sets can be created via the Auto Config
flow during initial configuration, or by manually creating the Console permission sets by using the Salesforce Developer Console.
Migrating Permission Sets from the Managed Package to the Console permission sets
Before starting the migration, run Auto Config
(or create the Console permission sets manually) to ensure the destination permission sets exist. The script below will map the managed package permission sets to the Console permission sets:
- GRAX Configuration Admin -> GRAX Console Admin Permission
- GRAX Advanced User -> GRAX Console Power Permission
- GRAX User -> GRAX Console Standard Permission
To run the script in the Salesforce Developer Console:
- Open the Salesforce Developer Console
- Open the
Debug
menu - Select
Open Execute Anonymous Window
(or pressCTRL + E
) - Copy the script below into the
Enter Apex Code
dialog - Select the
Open Log
checkbox - Click
Execute
private class GRAXLegacyPerm {
Map<String, Id> psIDs;
Map<String, Set<Id>> existingConsole;
public GRAXLegacyPerm() {
List<PermissionSet>lps=[
SELECT Id, Name
FROM PermissionSet
WHERE name in ('GRAX_Configuration_Admin', 'GRAX_Advanced_User', 'GRAX_User', 'GRAX_Console_Admin_User', 'GRAX_Console_Power_User', 'GRAX_Console_Standard_User')
];
psIDs = new Map<String, Id>();
for(PermissionSet ps : lps){
System.debug('PermissionSet '+ps.Name +' Id: ' + ps.Id);
psIDs.put(ps.Name, ps.Id);
}
existingConsole = new Map<String, Set<Id>>();
for (String name : new String[]{'GRAX_Console_Admin_User', 'GRAX_Console_Power_User', 'GRAX_Console_Standard_User'}) {
List<PermissionSetAssignment> ecpsa = [
SELECT AssigneeId
FROM PermissionSetAssignment
WHERE IsActive=true
AND PermissionSetId = :psIDs.get(name)
];
Set<Id> ecpsuID = new Set<Id>();
for (PermissionSetAssignment a : ecpsa) {
ecpsuID.add(a.AssigneeId);
}
existingConsole.put(name, ecpsuID);
System.debug('Existing '+name +' User Ids: ' + ecpsa);
}
}
public String migratePermSet(String oldPS, String newPS) {
List<PermissionSetAssignment> migratePS = new List<PermissionSetAssignment>();
List<PermissionSetAssignment> lpsuID = [
SELECT AssigneeId
FROM PermissionSetAssignment
WHERE IsActive=true
AND PermissionSetId = :psIDs.get(oldPS)
AND AssigneeId NOT IN :existingConsole.get(newPS)
];
for(PermissionSetAssignment a : lpsuID){
System.debug('Migrate '+oldPS+' User: ' + a.AssigneeId + ' to '+newPS);
migratePS.add( new PermissionSetAssignment (
PermissionSetId = psIDs.get(newPS),
AssigneeId = a.AssigneeId
));
if( migratePS.size() > 200) {
upsert migratePS;
migratePS.clear();
}
}
if( migratePS.size() > 0) {
try {
insert migratePS;
} catch(DmlException e) {
System.debug('error: ' + e);
}
migratePS.clear();
}
return 'done';
}
}
GRAXLegacyPerm glp = new GRAXLegacyPerm();
glp.migratePermSet('GRAX_Configuration_Admin', 'GRAX_Console_Admin_User');
glp.migratePermSet('GRAX_Advanced_User', 'GRAX_Console_Power_User');
glp.migratePermSet('GRAX_User', 'GRAX_Console_Standard_User');
How do I uninstall the Managed Package?
Log in to the Salesforce org where you want to uninstall the GRAX Salesforce Managed Package and follow the steps here.
NOTE:
It is not necessary to save any of the GRAX Salesforce Managed Package data. This will only contain configuration and helper job information which is now maintained on the web application.
After uninstalling the GRAX Salesforce Managed Package it will appear under the Uninstalled Packages
section. Once the uninstall status is complete you can delete the GRAX Salesforce Managed Package by clicking Del
under Action
. Click OK
when prompted to permanently delete it.
NOTE:
All referenced components will need to be removed prior to the uninstalling and deleting the GRAX Salesforce Managed Package. The most common components that will need to be removed are Permission sets and the Lightning Web Component Bundle. If the managed package user permission sets are being used then these will need to be replaced by first manually creating the Console permission sets and assigning them to the users. If the LWC included in the managed package are being used, then these will also need to be replaced by the Embedded LWC Data Viewer option.
Additional Information
Click here for additional resources on removing a SFDC managed package.
Updated 9 days ago