Version: eXtendFiles 1.8.8 and above
Audience: NetSuite Administrator, Google Cloud Administrator

Overview

To use eXtendFiles with Google Cloud Storage, part of Google Cloud Platform, you must configure settings in both NetSuite and Google Cloud. This configuration requires a user with Administrator privileges in both NetSuite and Google Cloud.

Configuration

Google Cloud Configuration

To use Google Cloud Storage buckets with eXtendFiles, follow the instructions below. 

Google Cloud Prerequisites

  • Before beginning configuration, ensure you have:
    • A Google Cloud account with Administrative access
    • Access to create service accounts and manage permissions
    • One or more buckets created for file storage

1. Create Service Account

  1. In Google Cloud console, navigate to Service Accounts for your project or use the search.

  2. Click Create Service Account.
    Image Placeholder
  3. Specify the following details
    1. Service Account Name - Enter a name for your service account.
    2. Service Account ID - This ID is automatically generated from the service account name, but you can customize it. The ID will be used to create the email address.
    3. Service Account Description - Enter a description of the service account's purpose (e.g., "eXtendFiles GCP Production Account").
      Image Placeholder
  4. Click Create And Continue, and then click Done.
  5. Once the service account is created, it will be shown in the service accounts list.
    Image Placeholder
  6. Click the service account's email address to open it.
  7. Navigate to Keys and click Add Key.
    Image Placeholder
  8. Select the JSON key type.
    Image Placeholder
  9. When you click "Create," a key file will be downloaded.
  10. You'll need to upload this key file in the eXtendFiles setup screen, which we'll cover in the NetSuite configuration steps.

Configure Buckets

  1. Navigate to Buckets for your project or use the search.
  2. If needed, create a bucket to use with eXtendFiles. Otherwise, select an existing bucket.
    1. Supported Location Type: Multi-region
    2. Support Storage Class: Standard
    3. Access Control Options:
      1. Uniform: All files share the same public/private status (unchangeable after setup)
      2. Fine-grained: Individual file permissions via ACL
      3. Files inherit bucket's default access settings
      4. Signed URLs are required to access private files (7-day maximum)
  3. Navigate to the Permissions, and click Grant Access.
    Image Placeholder
  4. Enter the service account email address you created earlier in the New Principals field.
    Image Placeholder
  5. Select Storage Admin for the role. Note: Storage Admin permission is required because eXtendFiles needs to modify file ACLs, generate signed URLs, and set CORS configurations for the buckets.
    Image Placeholder
  6. Click Save.
  7. Repeat these steps for all buckets you want to use with eXtendFiles.

2. NetSuite Configuration

The configuration steps below are performed in your NetSuite account.

  1. Go to eXtendTech → eXtendFiles → eXtendFiles Configuration.
  2. In Storage Settings → General, set Storage Type to Google Cloud.
  3. In Storage Information, enter the Google Cloud bucket values:
    1. Enter the primary bucket name in Bucket.
    2. Enter any additional bucket names in Additional Buckets. Separate each bucket name with a comma.
    1. In Authentication, upload the service account JSON key file in Google Cloud Credentials.
    2. Click Enable CORS.
      • After CORS is enabled, review the CORS Status table and confirm each configured bucket shows Yes.
    3. Optional: In Versioning & Additional Settings, enable the settings you want to use:
      1. Versioning: Turns on file versioning for uploaded files.
      2. Delete Files From Storage: Deletes files from Google Cloud Storage when all related eXtendFiles records are deleted in NetSuite.
    4. Click Save.
    Image Placeholder

    Field definitions

    Field
    Description
    Enable CORS
    Click Enable CORS after entering your bucket values and uploading the JSON key file from Google Cloud. CORS must be enabled for each configured bucket.
    Bucket
    Enter the primary Google Cloud Storage bucket name used for file storage.
    Additional Buckets
    Optional. Enter any additional Google Cloud Storage bucket names eXtendFiles should use. Separate each bucket name with a comma. Note: All configured buckets must use the same service account as the uploaded key file.
    CORS Status
    Shows whether CORS is enabled for each configured bucket. Each bucket should show Yes before you save the configuration.
    Google Cloud Credentials
    Upload the service account JSON key file downloaded from Google Cloud.
    Versioning
    Optional. Turn on this preference to enable file versioning.
    Delete Files From Storage
    Optional. Turn on this preference to delete files from Google Cloud Storage when all related eXtendFiles records are deleted in NetSuite.

    Common Configuration Errors

    • If CORS is not enabled on the bucket, file uploads will fail with the following error:
      Image Placeholder