{
  "manifestVersion": 1,
  "name": "Imperva CWAF",
  "slug": "imperva-cwaf",
  "version": "0.1.0",
  "description": "Imperva Cloud WAF plugin for the Engage platform",
  "author": "Platform",
  "category": "security",
  "entry": {
    "ui": "/ui/index.js",
    "backend": "/backend/index.php"
  },
  "platformPermissions": [
    "imperva.view",
    "imperva.account.view",
    "imperva.site.view",
    "imperva.waf.view",
    "imperva.api_security.view",
    "imperva.bot_protection.view",
    "imperva.client_side_protection.view"
  ],
  "nav": [
    {
      "id": "imperva-root",
      "label": "Imperva",
      "icon": "shield",
      "scope": "global",
      "children": [
        {
          "id": "imperva-overview",
          "label": "Overview",
          "route": "/plugins/imperva-cwaf",
          "scope": "account",
          "permission": "imperva.view"
        },
        {
          "id": "imperva-sites",
          "label": "Sites",
          "route": "/plugins/imperva-cwaf/sites",
          "scope": "account",
          "permission": "imperva.account.view"
        },
        {
          "id": "imperva-waf",
          "label": "WAF",
          "icon": "shield",
          "scope": "account",
          "permission": "imperva.waf.view",
          "children": [
            {
              "id": "imperva-waf-dashboards",
              "label": "Dashboards",
              "route": "/plugins/imperva-cwaf/waf",
              "scope": "account",
              "permission": "imperva.waf.view"
            },
            {
              "id": "imperva-waf-policies",
              "label": "Policies",
              "route": "/plugins/imperva-cwaf/waf/policies",
              "scope": "account",
              "permission": "imperva.waf.view"
            }
          ]
        },
        {
          "id": "imperva-api-security",
          "label": "API Security",
          "icon": "api",
          "scope": "account",
          "permission": "imperva.api_security.view",
          "children": [
            {
              "id": "imperva-api-security-dashboards",
              "label": "Dashboards",
              "route": "/plugins/imperva-cwaf/api-security",
              "scope": "account",
              "permission": "imperva.api_security.view"
            },
            {
              "id": "imperva-api-security-inventory",
              "label": "Inventory",
              "route": "/plugins/imperva-cwaf/api-security/inventory",
              "scope": "account",
              "permission": "imperva.api_security.view"
            },
            {
              "id": "imperva-api-security-policies",
              "label": "Policies",
              "route": "/plugins/imperva-cwaf/api-security/policies",
              "scope": "account",
              "permission": "imperva.api_security.view"
            },
            {
              "id": "imperva-api-security-settings",
              "label": "Settings",
              "route": "/plugins/imperva-cwaf/api-security/settings",
              "scope": "account",
              "permission": "imperva.api_security.view"
            },
            {
              "id": "imperva-api-security-verification",
              "label": "Verification",
              "route": "/plugins/imperva-cwaf/api-security/verification",
              "scope": "account",
              "permission": "imperva.api_security.view"
            },
            {
              "id": "imperva-api-security-reports",
              "label": "Reports",
              "route": "/plugins/imperva-cwaf/api-security/reports",
              "scope": "account",
              "permission": "imperva.api_security.view"
            },
            {
              "id": "imperva-api-security-deployments",
              "label": "Deployments",
              "route": "/plugins/imperva-cwaf/api-security/deployments",
              "scope": "account",
              "permission": "imperva.api_security.view"
            }
          ]
        },
        {
          "id": "imperva-bot-protection",
          "label": "Advanced Bot Protection",
          "icon": "bot",
          "scope": "account",
          "permission": "imperva.bot_protection.view",
          "children": [
            {
              "id": "imperva-bot-protection-dashboard",
              "label": "Dashboard",
              "route": "/plugins/imperva-cwaf/bot-protection",
              "scope": "account",
              "permission": "imperva.bot_protection.view"
            },
            {
              "id": "imperva-bot-protection-settings",
              "label": "Settings",
              "route": "/plugins/imperva-cwaf/bot-protection/settings",
              "scope": "account",
              "permission": "imperva.bot_protection.view"
            },
            {
              "id": "imperva-bot-protection-ato",
              "label": "Account Takeover",
              "route": "/plugins/imperva-cwaf/bot-protection/account-takeover",
              "scope": "account",
              "permission": "imperva.bot_protection.view"
            }
          ]
        },
        {
          "id": "imperva-client-side-protection",
          "label": "Client-Side Protection",
          "route": "/plugins/imperva-cwaf/client-side-protection",
          "scope": "account",
          "permission": "imperva.client_side_protection.view"
        }
      ]
    },
    {
      "id": "imperva-site-root",
      "label": "Website",
      "icon": "globe",
      "scope": "site",
      "requiresSiteContext": true,
      "children": [
        {
          "id": "imperva-site-dashboard",
          "label": "Dashboards",
          "route": "/plugins/imperva-cwaf/sites/:siteId",
          "scope": "site",
          "requiresSiteContext": true,
          "permission": "imperva.site.view"
        },
        {
          "id": "imperva-site-settings",
          "label": "Website Settings",
          "route": "/plugins/imperva-cwaf/sites/:siteId/settings",
          "scope": "site",
          "requiresSiteContext": true,
          "permission": "imperva.site.view"
        },
        {
          "id": "imperva-site-origin-network",
          "label": "Origin and Network",
          "icon": "network",
          "scope": "site",
          "requiresSiteContext": true,
          "permission": "imperva.site.view",
          "children": [
            {
              "id": "imperva-site-origin-network-general",
              "label": "General",
              "route": "/plugins/imperva-cwaf/sites/:siteId/origin-network/general",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            },
            {
              "id": "imperva-site-origin-network-monitoring",
              "label": "Monitoring",
              "route": "/plugins/imperva-cwaf/sites/:siteId/origin-network/monitoring",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            }
          ]
        },
        {
          "id": "imperva-site-security",
          "label": "Security",
          "icon": "shield",
          "scope": "site",
          "requiresSiteContext": true,
          "permission": "imperva.site.view",
          "children": [
            {
              "id": "imperva-site-security-policies",
              "label": "Policies",
              "route": "/plugins/imperva-cwaf/sites/:siteId/security/policies",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            },
            {
              "id": "imperva-site-security-rules",
              "label": "Rules",
              "route": "/plugins/imperva-cwaf/sites/:siteId/security/rules",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            }
          ]
        },
        {
          "id": "imperva-site-cdn",
          "label": "CDN",
          "icon": "cloud",
          "scope": "site",
          "requiresSiteContext": true,
          "permission": "imperva.site.view",
          "children": [
            {
              "id": "imperva-site-cdn-waiting-rooms",
              "label": "Waiting Rooms",
              "route": "/plugins/imperva-cwaf/sites/:siteId/cdn/waiting-rooms",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            },
            {
              "id": "imperva-site-cdn-delivery",
              "label": "Delivery",
              "route": "/plugins/imperva-cwaf/sites/:siteId/cdn/delivery",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            },
            {
              "id": "imperva-site-cdn-cache",
              "label": "Cache",
              "route": "/plugins/imperva-cwaf/sites/:siteId/cdn/cache",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            }
          ]
        },
        {
          "id": "imperva-site-ssl",
          "label": "SSL/TLS",
          "icon": "certificate",
          "scope": "site",
          "requiresSiteContext": true,
          "permission": "imperva.site.view",
          "children": [
            {
              "id": "imperva-site-ssl-certificates",
              "label": "SSL Certificates",
              "route": "/plugins/imperva-cwaf/sites/:siteId/ssl/certificates",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            },
            {
              "id": "imperva-site-ssl-mtls",
              "label": "Client to Imperva (mTLS)",
              "route": "/plugins/imperva-cwaf/sites/:siteId/ssl/mtls",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            },
            {
              "id": "imperva-site-ssl-settings",
              "label": "Settings",
              "route": "/plugins/imperva-cwaf/sites/:siteId/ssl/settings",
              "scope": "site",
              "requiresSiteContext": true,
              "permission": "imperva.site.view"
            }
          ]
        },
        {
          "id": "imperva-site-domains",
          "label": "Domains",
          "route": "/plugins/imperva-cwaf/sites/:siteId/domains",
          "scope": "site",
          "requiresSiteContext": true,
          "permission": "imperva.site.view"
        },
        {
          "id": "imperva-site-activity-log",
          "label": "Activity Log",
          "route": "/plugins/imperva-cwaf/sites/:siteId/activity-log",
          "scope": "site",
          "requiresSiteContext": true,
          "permission": "imperva.site.view"
        }
      ]
    }
  ],
  "routes": [
    {
      "path": "/plugins/imperva-cwaf",
      "page": "ImpervaOverviewPage",
      "scope": "account",
      "permission": "imperva.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites",
      "page": "ImpervaSitesPage",
      "scope": "account",
      "permission": "imperva.account.view"
    },
    {
      "path": "/plugins/imperva-cwaf/waf",
      "page": "ImpervaWafDashboardPage",
      "scope": "account",
      "permission": "imperva.waf.view"
    },
    {
      "path": "/plugins/imperva-cwaf/waf/policies",
      "page": "ImpervaWafPoliciesPage",
      "scope": "account",
      "permission": "imperva.waf.view"
    },
    {
      "path": "/plugins/imperva-cwaf/api-security",
      "page": "ImpervaApiSecurityDashboardPage",
      "scope": "account",
      "permission": "imperva.api_security.view"
    },
    {
      "path": "/plugins/imperva-cwaf/api-security/inventory",
      "page": "ImpervaApiSecurityInventoryPage",
      "scope": "account",
      "permission": "imperva.api_security.view"
    },
    {
      "path": "/plugins/imperva-cwaf/api-security/policies",
      "page": "ImpervaApiSecurityPoliciesPage",
      "scope": "account",
      "permission": "imperva.api_security.view"
    },
    {
      "path": "/plugins/imperva-cwaf/api-security/settings",
      "page": "ImpervaApiSecuritySettingsPage",
      "scope": "account",
      "permission": "imperva.api_security.view"
    },
    {
      "path": "/plugins/imperva-cwaf/api-security/verification",
      "page": "ImpervaApiSecurityVerificationPage",
      "scope": "account",
      "permission": "imperva.api_security.view"
    },
    {
      "path": "/plugins/imperva-cwaf/api-security/reports",
      "page": "ImpervaApiSecurityReportsPage",
      "scope": "account",
      "permission": "imperva.api_security.view"
    },
    {
      "path": "/plugins/imperva-cwaf/api-security/deployments",
      "page": "ImpervaApiSecurityDeploymentsPage",
      "scope": "account",
      "permission": "imperva.api_security.view"
    },
    {
      "path": "/plugins/imperva-cwaf/bot-protection",
      "page": "ImpervaBotProtectionDashboardPage",
      "scope": "account",
      "permission": "imperva.bot_protection.view"
    },
    {
      "path": "/plugins/imperva-cwaf/bot-protection/settings",
      "page": "ImpervaBotProtectionSettingsPage",
      "scope": "account",
      "permission": "imperva.bot_protection.view"
    },
    {
      "path": "/plugins/imperva-cwaf/bot-protection/account-takeover",
      "page": "ImpervaBotProtectionAtoPage",
      "scope": "account",
      "permission": "imperva.bot_protection.view"
    },
    {
      "path": "/plugins/imperva-cwaf/client-side-protection",
      "page": "ImpervaClientSideProtectionPage",
      "scope": "account",
      "permission": "imperva.client_side_protection.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId",
      "page": "ImpervaSiteDashboardPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/settings",
      "page": "ImpervaSiteSettingsPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/origin-network/general",
      "page": "ImpervaSiteOriginGeneralPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/origin-network/monitoring",
      "page": "ImpervaSiteOriginMonitoringPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/security/policies",
      "page": "ImpervaSitePoliciesPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/security/rules",
      "page": "ImpervaSiteRulesPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/cdn/waiting-rooms",
      "page": "ImpervaSiteWaitingRoomsPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/cdn/delivery",
      "page": "ImpervaSiteDeliveryPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/cdn/cache",
      "page": "ImpervaSiteCachePage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/ssl/certificates",
      "page": "ImpervaSiteCertificatesPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/ssl/mtls",
      "page": "ImpervaSiteMtlsPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/ssl/settings",
      "page": "ImpervaSiteSslSettingsPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/domains",
      "page": "ImpervaSiteDomainsPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    },
    {
      "path": "/plugins/imperva-cwaf/sites/:siteId/activity-log",
      "page": "ImpervaSiteActivityLogPage",
      "scope": "site",
      "requiresSiteContext": true,
      "permission": "imperva.site.view"
    }
  ],
  "toastMappings": {
    "auth.invalid_credentials": {
      "level": "error",
      "title": "Invalid Imperva credentials"
    },
    "auth.permission_denied": {
      "level": "error",
      "title": "Insufficient Imperva permissions"
    },
    "vendor.unavailable": {
      "level": "error",
      "title": "Imperva service unavailable"
    },
    "request.invalid": {
      "level": "error",
      "title": "Invalid request"
    },
    "resource.not_found": {
      "level": "error",
      "title": "Requested Imperva resource not found"
    }
  },
  "widgets": [
    {
      "id": "imperva-account-summary",
      "page": "ImpervaOverviewPage"
    },
    {
      "id": "imperva-site-summary",
      "page": "ImpervaSiteDashboardPage"
    }
  ]
}