{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Hosted Portal Config",
  "type": "object",
  "required": [
    "enabled"
  ],
  "additionalProperties": false,
  "properties": {
    "enabled": {
      "title": "Enabled",
      "description": "Enable the hosted portal",
      "default": false,
      "type": "boolean"
    },
    "domain": {
      "title": "Domain",
      "description": "The domain the hosted portal is hosted on",
      "type": "string"
    },
    "headHtml": {
      "title": "Head HTML",
      "description": "The HTML to be injected into the <head> element of the hosted portal",
      "type": "string"
    },
    "brandingConfig": {
      "type": "object",
      "title": "Branding Config"
    },
    "widgetKey": {
      "title": "Widget Key",
      "description": "The widget key of the hosted portal",
      "type": "string"
    },
    "dependencies": {
      "type": "array",
      "title": "Dependencies",
      "description": "A list of NPM resources to load into the widget",
      "items": {
        "type": "object",
        "properties": {
          "package": {
            "type": "string",
            "description": "An NPM package name or scoped package"
          },
          "version": {
            "type": "string",
            "description": "An NPM version string, such as Patch releases: 1.0 or 1.0.x or ~1.0.4 Minor releases: 1 or 1.x or ^1.0.4 Major releases: * or x"
          },
          "filePath": {
            "type": "string",
            "description": "The path to a resource in the specified package"
          }
        },
        "required": [
          "version",
          "package"
        ],
        "additionalProperties": false
      }
    },
    "notFoundUrlPath": {
      "type": "string",
      "title": "Not Found URL Path",
      "description": "The URL path for the 404 Not Found page"
    },
    "googleOAuthSdkClientId": {
      "type": "string",
      "title": "Google OAuth SDK Client ID",
      "description": "The Google OAuth SDK Client ID configured for the client"
    }
  }
}