{
  "version": "policy-2.9.8.0-2026-07-21-001",
  "policySchemaVersion": "6",
  "extensionTargetVersion": "2.9.8.0",
  "updatedAt": "2026-07-21T09:57:23Z",
  "syncIntervalMinutes": 15,
  "globalWhitelist": [
    "your-domain.example",
    "your-domain.example/crx/web-blocker-policy.json",
    "your-domain.example/crx/category-catalog.json",
    "your-domain.example/crx/api/logs.php",
    "localhost",
    "127.0.0.1",
    "0.0.0.0",
    "::1",
    "host.docker.internal",
    "localtest.me",
    "lvh.me",
    "nip.io",
    "sslip.io",
    "your-domain.example/crx/api/settings-sync.php",
    "your-domain.example/crx/api/password-reset.php"
  ],
  "globalBlacklist": [],
  "globalWhitelistKeywords": [],
  "globalBlacklistKeywords": [],
  "logging": {
    "enabled": true,
    "endpoint": "https://your-domain.example/crx/api/logs.php",
    "includeFullUrl": false,
    "includeMatches": true,
    "sendBlockedEvents": true,
    "sendSearchBlockedEvents": true,
    "sendContentScanEvents": true,
    "sendBypassEvents": true,
    "sendSyncEvents": true,
    "maxLocalQueue": 500,
    "flushIntervalMinutes": 5,
    "dashboardUrl": ""
  },
  "device": {
    "deviceName": "",
    "deviceGroup": "Developers"
  },
  "forceGoogleSafeSearch": true,
  "lockGoogleSafeSearch": false,
  "blockGoogleSafeSearchSettings": true,
  "lockGoogleSafeSearchSettings": false,
  "checkingOverlay": {
    "enabled": true,
    "hidePageUntilScanComplete": true,
    "showOverlayMessage": true,
    "skipWhitelistedDomains": true,
    "skipSearchEngines": false,
    "maxCheckingTimeMs": 3000,
    "fastReleaseMs": 450,
    "minimumDisplayMs": 250,
    "lock": false
  },
  "enforcement": {
    "mode": "normal",
    "locked": false
  },
  "description": "Optional central policy extension layer. The extension remains fully standalone when this file is unavailable. ageRestrictedProtection can be locked centrally when required.",
  "ageRestrictedProtection": {
    "enabled": true,
    "locked": false
  }
}
