<?xml version="1.0" encoding="utf-8"?>
<policyDefinitionResources revision="1.0" schemaVersion="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
  <displayName>Osprey: Browser Protection</displayName>
  <description>Administrative template for the Osprey: Browser Protection extension.</description>
  <resources>
    <stringTable>
      <string id="SUPPORTED_OspreyBrowser">Osprey 2.0.6 or later on Chrome, Edge, Chromium, Brave, or Vivaldi</string>
      <string id="CAT_Osprey">Osprey: Browser Protection</string>
      <string id="CAT_Chrome">Google Chrome / Chromium</string>
      <string id="CAT_Edge">Microsoft Edge</string>
      <string id="HideWarningProceedButton">Hide Warning Proceed Button</string>
      <string id="HideWarningProceedButton_Explain">If true, the warning page proceed button is hidden.</string>
      <string id="HideWarningReportButton">Hide Warning Report Button</string>
      <string id="HideWarningReportButton_Explain">If true, the warning page report button is hidden.</string>
      <string id="LockUserAllowlist">Lock User Allowlist</string>
      <string id="LockUserAllowlist_Explain">If true, the user cannot edit or clear the allowed websites list, but existing entries still apply.</string>
      <string id="LockProviderSettings">Lock Provider Settings</string>
      <string id="LockProviderSettings_Explain">If true, provider toggles and provider settings are locked in the options page.</string>
      <string id="DisableSettingsReset">Disable Settings Reset</string>
      <string id="DisableSettingsReset_Explain">If true, reset actions in the settings page are disabled.</string>
      <string id="DisableThirdPartyProviders">Disable Third-Party Providers</string>
      <string id="DisableThirdPartyProviders_Explain">If true, third-party providers are disabled and cannot be enabled from settings.</string>
      <string id="CacheExpirationSeconds">Cache Expiration Seconds</string>
      <string id="CacheExpirationSeconds_Explain">Cache entry lifetime in seconds. (minimum 60, maximum 2592000, default 604800)</string>
      <string id="MetaDefenderApiKey">MetaDefender API Key</string>
      <string id="MetaDefenderApiKey_Explain">Managed API key for the MetaDefender integrations.</string>
      <string id="HideProviderControls">Hide Provider Controls</string>
      <string id="HideProviderControls_Explain">If true, provider controls are hidden from the popup and options page.</string>
      <string id="ManagedAllowlist">Managed Allowlist</string>
      <string id="ManagedAllowlist_Explain">Host or URL patterns that are always treated as safe. The end user cannot remove these. Examples: "intranet.example.com", "*.corp.example.com", "https://apps.example.com/portal".</string>
      <string id="ManagedBlocklist">Managed Blocklist</string>
      <string id="ManagedBlocklist_Explain">Host or URL patterns that are always blocked, evaluated before the threat providers run. Examples: "bad.example.com", "*.malware.example", "https://phish.example/login".</string>
      <string id="ProxyBaseUrl">Proxy Base URL</string>
      <string id="ProxyBaseUrl_Explain">Overrides the backend origin the extension sends lookups to. Must be an http(s) origin, for example "https://osprey.msp.example". When empty, the default public backend is used.</string>
      <string id="DeviceTag">Device Tag</string>
      <string id="DeviceTag_Explain">Opaque identifier for this endpoint, attached to reported events by later features. Has no visible effect on its own.</string>
      <string id="SiteId">Site ID</string>
      <string id="SiteId_Explain">Opaque identifier for the client organization this endpoint belongs to, attached to reported events by later features. Has no visible effect on its own.</string>
      <string id="ProxyApiKey">Proxy API Key</string>
      <string id="ProxyApiKey_Explain">Per-tenant API key presented to a self-hosted proxy as the X-Osprey-Tenant-Key header on every lookup. Only sent when ProxyBaseUrl is set, so the key is never sent to the public backend. When empty, no key is sent.</string>
      <string id="ManagedConfigUrl">Managed Config URL</string>
      <string id="ManagedConfigUrl_Explain">An http(s) URL to a JSON configuration document the extension fetches on startup and every 60 minutes. Fetched values are merged UNDER managed storage: anything set here locally always wins, and the document fills in the rest. On a fetch failure the last successfully fetched document is kept. This key can only be set through managed storage; a fetched document cannot change it.</string>
      <string id="ReportingEndpoint">Reporting Endpoint</string>
      <string id="ReportingEndpoint_Explain">An http(s) URL the extension POSTs detection and override events and periodic health heartbeats to. When empty, no events or heartbeats are sent.</string>
      <string id="ReportingAuthToken">Reporting Auth Token</string>
      <string id="ReportingAuthToken_Explain">Optional bearer token sent as the Authorization header on every reporting request. When set, each POST carries "Authorization: Bearer &lt;token&gt;". When empty, no Authorization header is sent.</string>
      <string id="DisableUserAllowlist">Disable User Allowlist</string>
      <string id="DisableUserAllowlist_Explain">If true, the end user cannot add any allowlist entries or exclusions, and existing user allowlist entries are ignored.</string>
      <string id="ManagedProviderSettings">Managed Provider Settings</string>
      <string id="ManagedProviderSettings_Explain">Per-provider overrides keyed by provider id. Each value may set "enabled" (boolean, the managed enabled state for the provider), "bypassBlockingThreshold" (boolean), "requestTimeoutMs" (integer between 1000 and 60000), and "blockCategories" (an object mapping a category key to a boolean).</string>
      <string id="BrandLogoUrl">Brand Logo URL</string>
      <string id="BrandLogoUrl_Explain">Image URL or data: image string used for the logo on the warning page and popup. When empty, the default Osprey logo is shown.</string>
      <string id="BrandName">Brand Name</string>
      <string id="BrandName_Explain">Name shown in the warning page banner and popup, replacing the default Osprey product name. When empty, the default name is shown.</string>
      <string id="SupportUrl">Support URL</string>
      <string id="SupportUrl_Explain">Support or help-desk URL shown as a contact link on the warning page and popup. Must be an http(s) URL, for example "https://help.msp.example". When empty, no support link is shown.</string>
      <string id="SupportEmail">Support Email</string>
      <string id="SupportEmail_Explain">Support email address shown as a contact link on the warning page. When empty, no email link is shown.</string>
      <string id="CustomWarningMessage">Custom Warning Message</string>
      <string id="CustomWarningMessage_Explain">Optional override for the lead sentence on the warning page. When empty, the default warning message is shown.</string>
    </stringTable>
    <presentationTable>
      <presentation id="Chrome_CacheExpirationSeconds">
        <decimalTextBox refId="Chrome_CacheExpirationSeconds_val" defaultValue="604800">Cache Expiration Seconds</decimalTextBox>
      </presentation>
      <presentation id="Chrome_MetaDefenderApiKey">
        <textBox refId="Chrome_MetaDefenderApiKey_val"><label>MetaDefender API Key</label></textBox>
      </presentation>
      <presentation id="Chrome_ManagedAllowlist">
        <listBox refId="Chrome_ManagedAllowlist_val">Managed Allowlist</listBox>
      </presentation>
      <presentation id="Chrome_ManagedBlocklist">
        <listBox refId="Chrome_ManagedBlocklist_val">Managed Blocklist</listBox>
      </presentation>
      <presentation id="Chrome_ProxyBaseUrl">
        <textBox refId="Chrome_ProxyBaseUrl_val"><label>Proxy Base URL</label></textBox>
      </presentation>
      <presentation id="Chrome_DeviceTag">
        <textBox refId="Chrome_DeviceTag_val"><label>Device Tag</label></textBox>
      </presentation>
      <presentation id="Chrome_SiteId">
        <textBox refId="Chrome_SiteId_val"><label>Site ID</label></textBox>
      </presentation>
      <presentation id="Chrome_ProxyApiKey">
        <textBox refId="Chrome_ProxyApiKey_val"><label>Proxy API Key</label></textBox>
      </presentation>
      <presentation id="Chrome_ManagedConfigUrl">
        <textBox refId="Chrome_ManagedConfigUrl_val"><label>Managed Config URL</label></textBox>
      </presentation>
      <presentation id="Chrome_ReportingEndpoint">
        <textBox refId="Chrome_ReportingEndpoint_val"><label>Reporting Endpoint</label></textBox>
      </presentation>
      <presentation id="Chrome_ReportingAuthToken">
        <textBox refId="Chrome_ReportingAuthToken_val"><label>Reporting Auth Token</label></textBox>
      </presentation>
      <presentation id="Chrome_ManagedProviderSettings">
        <textBox refId="Chrome_ManagedProviderSettings_val"><label>Managed Provider Settings</label></textBox>
      </presentation>
      <presentation id="Chrome_BrandLogoUrl">
        <textBox refId="Chrome_BrandLogoUrl_val"><label>Brand Logo URL</label></textBox>
      </presentation>
      <presentation id="Chrome_BrandName">
        <textBox refId="Chrome_BrandName_val"><label>Brand Name</label></textBox>
      </presentation>
      <presentation id="Chrome_SupportUrl">
        <textBox refId="Chrome_SupportUrl_val"><label>Support URL</label></textBox>
      </presentation>
      <presentation id="Chrome_SupportEmail">
        <textBox refId="Chrome_SupportEmail_val"><label>Support Email</label></textBox>
      </presentation>
      <presentation id="Chrome_CustomWarningMessage">
        <textBox refId="Chrome_CustomWarningMessage_val"><label>Custom Warning Message</label></textBox>
      </presentation>
      <presentation id="Edge_CacheExpirationSeconds">
        <decimalTextBox refId="Edge_CacheExpirationSeconds_val" defaultValue="604800">Cache Expiration Seconds</decimalTextBox>
      </presentation>
      <presentation id="Edge_MetaDefenderApiKey">
        <textBox refId="Edge_MetaDefenderApiKey_val"><label>MetaDefender API Key</label></textBox>
      </presentation>
      <presentation id="Edge_ManagedAllowlist">
        <listBox refId="Edge_ManagedAllowlist_val">Managed Allowlist</listBox>
      </presentation>
      <presentation id="Edge_ManagedBlocklist">
        <listBox refId="Edge_ManagedBlocklist_val">Managed Blocklist</listBox>
      </presentation>
      <presentation id="Edge_ProxyBaseUrl">
        <textBox refId="Edge_ProxyBaseUrl_val"><label>Proxy Base URL</label></textBox>
      </presentation>
      <presentation id="Edge_DeviceTag">
        <textBox refId="Edge_DeviceTag_val"><label>Device Tag</label></textBox>
      </presentation>
      <presentation id="Edge_SiteId">
        <textBox refId="Edge_SiteId_val"><label>Site ID</label></textBox>
      </presentation>
      <presentation id="Edge_ProxyApiKey">
        <textBox refId="Edge_ProxyApiKey_val"><label>Proxy API Key</label></textBox>
      </presentation>
      <presentation id="Edge_ManagedConfigUrl">
        <textBox refId="Edge_ManagedConfigUrl_val"><label>Managed Config URL</label></textBox>
      </presentation>
      <presentation id="Edge_ReportingEndpoint">
        <textBox refId="Edge_ReportingEndpoint_val"><label>Reporting Endpoint</label></textBox>
      </presentation>
      <presentation id="Edge_ReportingAuthToken">
        <textBox refId="Edge_ReportingAuthToken_val"><label>Reporting Auth Token</label></textBox>
      </presentation>
      <presentation id="Edge_ManagedProviderSettings">
        <textBox refId="Edge_ManagedProviderSettings_val"><label>Managed Provider Settings</label></textBox>
      </presentation>
      <presentation id="Edge_BrandLogoUrl">
        <textBox refId="Edge_BrandLogoUrl_val"><label>Brand Logo URL</label></textBox>
      </presentation>
      <presentation id="Edge_BrandName">
        <textBox refId="Edge_BrandName_val"><label>Brand Name</label></textBox>
      </presentation>
      <presentation id="Edge_SupportUrl">
        <textBox refId="Edge_SupportUrl_val"><label>Support URL</label></textBox>
      </presentation>
      <presentation id="Edge_SupportEmail">
        <textBox refId="Edge_SupportEmail_val"><label>Support Email</label></textBox>
      </presentation>
      <presentation id="Edge_CustomWarningMessage">
        <textBox refId="Edge_CustomWarningMessage_val"><label>Custom Warning Message</label></textBox>
      </presentation>
    </presentationTable>
  </resources>
</policyDefinitionResources>
