@portal-hq/gdrive-storage

Portal Google Drive backup storage

The @portal-hq/gdrive-storage package contains a storage adapter intended for use with the @portal-hq/core package.

This storage adapter allows end users to save backup MPC shares to their Google Drive.

Basic usage

Install the package in your React Native project.

yarn add @portal-hq/gdrive-storage

Import the package into the component where you initialize the Portal class

import Portal from '@portal-hq/core'
import GoogleStorage from '@portal-hq/google-storage'

Register your storage adapter and initialize the Portal class

const storage = new GoogleStorage({
  // Required for Android
  androidClientId: 'YOUR_ANDROID_CLIENT_ID',
  // Required for iOS
  iosClientId: 'YOUR_IOS_CLIENT_ID',
  // Optional
  folder: 'YOUR_CUSTOM_STORAGE_LOCATION',
})
const portal = new Portal({
  // ...your other config options
  backup: {
    gdrive: storage,
  },
})

Create a Google App

To enable Google Drive backups you will need to create a Google Project within your organization that will act as the OAuth consumer.

  • Create a new Google project in the Google Cloud Console

  • On the APIs & Services page click ENABLE APIS AND SERVICES

  • Search for Google Drive API, select it, and click Enable

  • Click on OAuth consent screen

    • For user type select internal.

    • Fill out the relevant information.

    Skip scopes as we configure that within our sdk.

  • Click on Credentials in the left menu and select + Create Credentials

  • Select OAuth client ID and choose Android from the Application Type list

  • Fill in the form as instructed, with Name, Package name, and SHA-1 from your Keystore.

    • Note that when testing you'll want to use your debug.keystore at /android/app/debug.keystore; However, you'll need to switch this value when pushing it to the store.

    • Find the Sha-1 fingerprint with this command from the root project folder: keytool -keystore ./app/debug.keystore -list -v

  • Once you have successfully created your Android Client ID , download the JSON, and rename it to begoogle-service.json

  • Move the downloaded file into the /android/app directory.

  • Now, go back to the Credentials screen from the previous step and select Web Application.

  • Input the name. Then click create and copy the value from Your Client ID

  • This value is what you will pass into the PortalOptions config when instantiating your portal class.

  • Add emails for internal testing until you've published your app for external use.

Last updated