d7x can now integrate with Google Drive in all operational aspects, including Reports storage, Custom Apps file storage for user-created apps, config/definitions storage through Config Mgmt Portal, and the d7x Remote Deployment Tool (d7xRDT.)
Expand a section below to learn about specific integrations, and scroll below the sections for more info affecting all areas of Google Drive integration.
Google Drive integration can be used in place of an FTP server for d7x reports storage, as this can be more convenient than retrieving your reports from an FTP server. While a self-hosted FTP server configuration is essential if you are using PC Repair Tracker (and are uploading reports to be attached to a ticket), otherwise you probably either don’t have an FTP server or it isn’t convenient to use for reports storage (or at least, retrieval of reports), so Google Drive may be preferred for most techs.
Simply visit the d7x Config > Reports > Google Drive Integration tab, then observe (and optionally change) the path where reports will be stored (this path will appear in your Google Drive root), and then make sure you have authorized your Google account by clicking the “Sign in with Google” button. Once this authorization has been completed, it does not need to be performed again. Note the path by default is “d7x Files\Reports” because the parent “d7x Files” is also a default parent for Custom Apps file storage, more on that below.
Uploading your reports to Google Drive can be done in several different areas:
- On the End Session tab in the main d7x interface (under the “Reports” section select “Upload Reports to Google Drive” on the top right.) You can optionally click the Save Settings button to save this option for future d7x usage.
- On any tab you assign the d7x function “Upload Reports to Google Drive” to one of your custom list boxes where other apps/functions are located. This can be a convenient function to add on your Audit/Diagnose tab right after your selected reports are gathered, so that reports are automatically uploaded immediately after they are generated. To add the function to a custom list, right-click anywhere in a custom list box and select “Add App/Function…” at the bottom of the context menu. Next search All d7x Functions for “reports” or “google drive” and you can’t miss it. Right-click to drag/drop that function onto a custom list in the main d7x interface, then close the floating window to save.
- During d7x session startup (the first time it is run on a PC.) Visit the d7x Config > Session > Start Session tab and find the option to “Upload Reports to Google Drive…” below the “Automatically Generate System Info Report” checkbox.
Learn more with this video on managing d7x Reports through Google Drive.
Google Drive integration can be used for both user-created “Custom Apps” as well as the few “Integrated Apps” in d7x, and it is possible to use a mix of settings in different custom apps with one pointing to Google Drive and another to a self-hosted FTP server, or even to use your FTP server as a fallback option within the same app should Google Drive ever be inaccessible for some reason.
Both Custom Apps and Integrated Apps functionality share the same file path on your Google Drive account, and that is defined on the Config > Apps/Functions tab > Google Drive Integration tab. Visit this tab to observe (and optionally change) the path where the app files will be stored, which is by default “d7x Files\3rd Party Tools“. Also make sure you have authorized your Google account by clicking the “Sign in with Google” button (since Google Drive authentication is shared between features, you only need to “Sign in” if you haven’t done so already in another area of d7x’s Google Drive specific integration.)
All files on Google Drive as used in d7x config for Custom Apps and Integrated apps should be configured as a FILENAME ONLY, because they all share the same parent path as noted on this tab.
Integrated Apps configuration is found on the Config > Apps/Functions tab > Integrated Apps tab. On this tab you can upload the file to Google Drive for the respective integrated app (the same can be found on the “Other d7xTech Apps” tab.) Do not simply specify the filename but be sure to use the “Upload” button to put the file on Google Drive initially (see below for an explanation.)
Custom App configuration is found in the custom app config under the “Main Download Settings” section, you will now see “Google Drive Filename” as the very first option. Unless you have uploaded the file previously, do not simply specify the filename but be sure to use the “Upload File” button to put the file on Google Drive initially (see below for an explanation.)
All files configured for Custom Apps or Integrated Apps MUST BE INITIALLY UPLOADED BY d7x. Otherwise d7x can NOT access these files. This is because the only Google authorization scopes that d7x requests during your login/authorization are for accessing files that d7x creates on your Google Drive account. d7x can in no way access files that it does not create (upload) so if you upload a file to Google Drive, d7x cannot even “see” it to download it. This is by design, to avoid any liability of d7x having access to files it did not create.
Once a file is uploaded by d7x to Google Drive, it may be modified by any user with access to Google Drive (by uploading a new “version” according to Drive terminology.) You MUST NOT delete the file and upload a new one of the same filename, because in this case d7x will lose access to the file. Google Drive uses a file identifier to determine which file d7x can access, and this made at initial creation of a file or folder; the file ID is not changed when you upload a new “version” of a file (even though it is a completely new file) however it will generate a different file ID if you deleted and then re-uploaded the file, even if it is the same filename and location. This is why d7x must upload the initial file, so d7x is granted access to that particular file ID.
Google Drive integration can also be used for config/definitions storage with Config Mgmt Portal (and subsequently it is used for the d7x Remote Deployment Tool aka d7xRDT, see the next major heading below.)
This is the first integration to require you to enable it in d7x Config, beyond the Google Drive authorization. First, visit the d7x Config > Servers/Email > Google Drive Integration tab, then check the box to “Use Google Drive (instead of dCloud or self-hosted FTP)“, and then make sure you have authorized your Google account by clicking the “Sign in with Google” button. Again, since Google Drive authentication is shared between features, you only need to “Sign in” if you haven’t done so already in another area of d7x’s Google Drive specific integration.
Once enabled, you can open Config Mgmt Portal (from the d7x > Servers dropdown menu) and you will see near the top “Config Browser [Google Drive]” where “[Google Drive]” is the server type that you are connected to. This would alternately be “[Self-Hosted FTP]” if using your own FTP server, or “[dCloud]” if using our own server for config/definition storage (the default option, of course.)
Migrating Existing Configs to Google Drive: Your existing configs from a self-hosted FTP server, or from our own dCloud server, will NOT automatically be transferred over to your Google Drive account, this will need to be done manually and one-by-one. Therefore, if you are using multiple configs on dCloud or your self-hosted FTP server, you will have to transfer them by configuring d7x to use dCloud or your self-hosted FTP first if it isn’t already, download the config you wish to transfer, then reconfigure to use Google Drive, upload config to Google Drive, and reconfigured back to dCloud/self-hosted FTP to transfer another separate config from there. Wash, rinse, and repeat for each additional config to migrate.
Location on Google Drive: Both d7x configs and definitions are stored in the “appDataFolder” space of Google Drive, meaning you won’t see any files actually appear visibly in your Google Drive. The only way you can interact with this data outside of d7x Config Mgmt Portal is in Google Drive Settings > Manage Apps. Find the “d7x” app and it will show you the “Hidden app data” size used by your d7x files (config and defs combined) but be warned: the “Delete Hidden App Data” option will delete all of that (your d7x config and defs) stored on Google Drive! Should you need to delete a single config from this area you may do so through Config Mgmt Portal in d7x.
The d7xRDT is designed for deployment to a remote system (typically over remote support software) by sending a tiny executable to the remote system to download your d7x config and definitions as well as the latest d7x files from our webserver. This process is much faster than attempting to transfer large files (e.g. a fully functional and zipped d7x\ folder) to a remote system.
As such, if you are switching an existing d7x config to Google Drive you will need to recreate any d7xRDT you have previously created through Config Mgmt Portal again, in order to use the new Google Drive with d7xRDT.
First you must enable the setting to “Use Google Drive…” (and authorize your Google account) as noted directly above under the major subheading for Config Mgmt Portal with Google Drive. You will confirm you are using Google Drive by visiting the d7x Servers dropdown menu > Config Mgmt Portal as noted above, and this is where you can create the d7xRDT.
Creating a new d7xRDT for use with Google Drive follows the exact same process it would if you were using self-hosted FTP or dCloud, with one small change. When creating a new d7xRDT, rather than a password prompt (for your “Technician Password”) instead you have the option to require login from your Google account, which of course allows you to use multi-factor authentication with your d7xRDT (you just need to enable that on your Google account if you haven’t already.)
How it works: when the d7xRDT executes on the remote system it instantly launches a web browser prompting you to sign into Google (including going through multi-factor authentication if enabled) and upon successful login it continues to download your config/defs from Google Drive, then the d7x files from our webserver. Keep in mind the login requirement is optional, and configured when you create the d7xRDT.
You don’t need to visit d7x Config to “Sign in with Google“
Simply use the functionality in d7x, and as long as you are not currently running an “Auto Mode” then as the functionality executes d7x will automatically open the system default web browser to complete the Google sign-in process. Of course, if an “Auto Mode” is active, the functionality will silently fail (assuming you are afk) so d7x can move on to the next automated function or custom app.
What happens if I fail to sign-in on time, or at all?
If you fail to complete the Google sign-in process, the d7x functionality will fail as well, but not before waiting up to 90 seconds for the Google sign-in to complete. During that time, d7x will appear to freeze, even if you close the web browser prematurely. After the allotted time has expired without successful authorization, d7x will “unfreeze” and resume normal functionality.
If you suspect there is a technical issue preventing sign-in, you may have a 3rd party firewall blocking the authentication process. Google OAuth2 requires an open port for the app to listen for the authorization, and this is independent of the web browser (the application itself must have access to that port.) d7x will add itself as an exception to the Windows Firewall, but of course it cannot add itself or open ports on any 3rd party or external firewalls. In such an event that a 3rd party software firewall or an external server/hardware firewall is in use, you want to make sure that the machine d7x is located on, and of course d7x itself, can access port 53665. Note this port access is only required for the initial Google sign-in/authorization. Subsequent connections to Google Drive by d7x are handled without the open port requirement.
Only one sign-in required for all Google Drive functionality.
All areas of Google Drive integration share the same Google Account and authorization, so the “Sign in with Google” process only needs to be completed once for Google Drive integration.
Note this can be a different Google Account than you are using for GMail integration with d7x, and so there is a separate authorization required for GMail integrations.
The current design is so that techs with a multi-tech license can share the same Google Drive account for all aspects of d7x, as sharing of config/definitions would be desired. At the same time different techs can use their own individual GMail (or other email) accounts for email functionality rather than a shared email account, since that will likely be the preference of most techs (note that even by using individual email accounts with d7x, different techs can still configure the same TO: fields in d7x emails in order to send the email to a common/shared email account, such as one connected to a ticket system.)
You don’t need to sign in every time you use the same functionality.
Once you sign in, an access token is saved to your d7x config folder and reused for future connections to Google Drive. More info on the access token below.
Copying your access token to avoid multiple sign-ins.
Once authorized for Google Drive, d7x will create the file .\d7x Resources\Config\GoogleDrive_LastAccessToken_v2.json which will be used for subsequent connections to Google Drive.
This token file (if it does not exist) will persist when you switch d7x Configs through Config Mgmt Portal, so even though it was created in the first config, it will remain in the new config you’ve switched to. This can save you time by only needing to authorize Google Drive once for your first config, then you can switch to new configs in Config Mgmt Portal (and once you’ve switched to a new config without the authorization token, it will remain in the Config directory, so you simply need to re-upload that new config back to Config Mgmt Portal to save the token to the new config as well, so it can persist to your other copies of d7x now and in the future.)
You can also manually copy this file between different d7x Config folders (for example, to the .\d7x Resources\Config folder on different flash drives) in order to bypass having to authenticate on each device.
Obviously if you want to use a different Google Drive account for a different config, you only have to use the “Sign in with Google” button again to re-create a new token for a different Google Account.
Disconnecting your Google Drive account from d7x.
If for any reason you wish to disallow d7x access to Google Drive for all of your copies of d7x at once, you can do so by disconnecting d7x from Google Drive. You may wish to deactivate d7x access after terminating your d7x subscription, or you may be using a multi-tech license and an employee left your company, likely also taking d7x as more than a souvenir, so you will probably want to ensure that former employee cannot use Google Drive with their now stolen copy of d7x. (Of course, you will probably want to contact us to change your d7x subscriber account password, in order to lock them out of d7x entirely! That will negate the need to disconnect your Google Drive account as mentioned here, but that is entirely up to you.)
You can disconnect d7x through Google Drive Settings > Manage Apps, then find the “d7x” app, click the Options button to the right of it, and select “Disconnect from Drive” option. After this all of your existing d7x access tokens will be invalidated, and they must be recreated through the “Sign in with Google” button in d7x again in order to restore functionality.
Note that after disconnecting, should you sign in again through one copy of d7x, that action will NOT restore functionality to any other previously obtained access tokens in other copies of d7x elsewhere, as they were permanently invalidated by the disconnect action, so they will remain invalid until a new/valid access token is copied over to that config, or created through a new sign-in from that particular instance of d7x.
A word about privacy and data collection with Google Drive integration.
Your pre-existing Google Drive data can NOT be accessed in any way by d7x. If you review the authentication scopes you authorize d7x for when you “Sign in with Google” you will see that they only allow d7x to access (read, download, or delete) data that d7x creates, but any existing data (put on Google Drive by anyone/anything except d7x itself) cannot be accessed by d7x in any way. This was very intentional, because we don’t want access to your Google Drive files, and I can think of no reason for an integration with such access.
Specifically, when you authorize d7x by the “Sign in with Google” button, d7x requests these Google authentication scopes from Drive API v3 as defined here:
|https://www.googleapis.com/auth/drive.appdata||View and manage its own configuration data in your Google Drive|
|https://www.googleapis.com/auth/drive.file||View and manage Google Drive files and folders that you have opened or created with this app|
To confirm, observe that the scope definitions above appear on your Google Drive login prompt after you click “Sign in with Google”, they will appear just under the d7x logo, and they describe what you are giving d7x access to.
Note that neither scope will allow d7x access to any files or folders not created by d7x. This is why you must upload any files used for Custom Apps through d7x itself (although they can later be modified/replaced by anyone.) See the section above on Custom Apps for more info on that.