How to publish a Chrome Extension that only users on your Google Apps Domain can see and use

So recently I've developed a Chrome Extension that was required to be used only within a specific domain (i.e. not available / visible in the Chrome Web Store to the public). After building out the extension, which interacted with a Google App Script, shared documents on Google Drive, a Google Site, the users Gmail account, a Google App Engine app and an external API, I came to the realisation that there was a lot going on and its likely that regular updates to the extension would be required.


Rather than sharing the Chrome Extension via Google Drive and getting users to manually add the extension using 'Developer mode' as I had been doing during testing, I hoped there was a better way to distribute the extension automatically. Luckily I found it, and Google call it:
'Force-installed apps'

Ok now to the how to, below I have listed out the steps required to upload your Chrome Extension to the Chrome Web Store for a specified Google Apps Domain.
  1. Prepare your extension code to be published (eg. Minify code etc) and then Zip up the extension folder. 
  2. Sign in to the Chrome Developer Dashboard https://chrome.google.com/webstore/developer/dashboard using your Google Admin account. 
  3. Click 'Add new item', you do not need to pay the developer fee if you are only deploying the extension to your domain.
  4. Upload the ZIP file, confirm details and select the Visibility option 'Private -> Everyone at <your-domain.com>, then click publish (if you don't see this option you might not be logged in with your Google Admin account). It can take up to 60 minutes to publish. 
  5. You will be able to confirm when the extension has been published by returning to the Chrome Developer Dashboard. It lists its current status (Draft, Publishing in progress or Published).
  6. Once its published, if you want to force install this extension to all users in your domain, log in to your Google Admin account https://admin.google.com
  7. Goto Apps -> Additional Google services -> Chrome Management -> Apps and Extensions -> then under Force-installed Apps and Extensions click Manage force-installed apps. Click Domain Apps, and once the app has been published it will show in the list. Click Add. 
  8. That's all you have to do! If you wait long enough, the policy settings will update on all users accounts after a few hours and the extension will automatically install and appear in their Chrome browser. However, if you're like me and want to see it happen instantly, browse to chrome://policy and click Reload policies. If the user in the status box is an email that is not your domain, they are not signed into chrome using your domain. After the policy has been refreshed it will take another few minutes for the extension to automatically install, which you can check has installed by going to chrome://extensions.
  9. If you need to make updates to the extension, just simply rezip it and go back into the Chrome Developer Dashboard, click edit on the extension, then upload updated package, then publish. It may take up to a day for all users to receive the update. However, they can manually force an update in their browser by going to chrome://extensions and clicking update extensions.

Comments