Skip to content
← Privacy in plain language

Pathlight IT and deployment guide

For district IT and instructional-technology staff deploying Pathlight through the Google Admin console or Chrome Enterprise policy. The permission rationale below matches the Chrome Web Store justifications.

Extension

ItemValue
NamePathlight
Extension ID<published Chrome Web Store ID>. It is assigned at listing time; the unpacked dev build gets a different, path-derived ID
ManifestV3, minimum Chrome 116 (ChromeOS, Windows, macOS, Linux)
BackendNone. There is no account, no vendor server, and no telemetry

Permissions and why each is needed

Required (permissions)

PermissionWhy
storageSaves settings in chrome.storage.local and reads admin policy from chrome.storage.managed
unlimitedStorageKeeps guides and screenshots locally in IndexedDB without quota eviction
activeTabCaptures the tab the teacher chooses to record, when they click Record or press the shortcut
scriptingInjects the recorder into that tab only while recording, so content scripts never run on every site
sidePanelShows the Pathlight side panel (library and record controls)
contextMenusAdds "Start a guide here" and "Blur this" to the right-click menu
tabsFollows steps that switch tabs or navigate during a recording, and opens the editor and print pages

Optional (requested at the moment of use, never at install)

PermissionWhen it is requested
<all_urls> (optional host)When a teacher records on a site for the first time, so the recorder can follow cross-origin iframes. Teachers who skip it still record with activeTab
webNavigationOnly when a teacher turns on Settings → Capture → Better navigation steps. Lets steps say how a page was reached (typed address, link, bookmark), catches in-app navigations and finds a page's frames. Used only while recording; nothing leaves the device
identityOnly when a teacher chooses Publish to Google Drive
offscreenVoice narration (P1), recorded locally

Host permissions

HostWhy
https://api.anthropic.com/*Optional AI using the teacher's own key. No call is made unless a key is added and AI is allowed

Network destinations

Pathlight makes no network requests unless a teacher uses one of these features:

DestinationFeatureData sent
api.anthropic.comAI step text, translation, reading levels, quizzes, alt textScrubbed step text. Redacted crops only when "Send blurred screenshots" is on
www.googleapis.com, accounts.google.comPublish to Drive (drive.file scope)The exported PDF or HTML file
classroom.google.com/share"Share to Classroom" opens Google's share page in a new windowGuide link and title

Fonts and scripts are bundled, so there are no CDNs. Chrome's built-in on-device Translator may download language packs through Chrome itself. An automated network-egress test (WP14) asserts zero requests other than the destinations above.

Allowlisting: if your web filter blocks the destinations above, AI or Drive features show a friendly "not available" state. Recording, editing, and every file export work fully offline.

Managed policy (chrome.storage.managed)

Schema: managed_schema.json in the extension package. Policy always wins over user settings, and locked settings show "Set by your school".

KeyTypeEffect
disableAIbooleanHides all AI features and the API-key settings
disableDrivebooleanHides Publish to Drive and Drive-based Classroom sharing
forceStudentModebooleanForces student-author mode: no AI, no Drive, no typed text, all blur categories, PDF/print/HTML/Word exports only. Users cannot turn it off, and no PIN overrides it
forcedBlurCategoriesstring[]Blur categories that are always on: email, phone, id-number, roster-name, common-name, avatar, form-field, table-cell, credit-card, custom, manual, credential, ocr
blockedDomainsstring[]Hostnames where recording is blocked, for example sis.example.org or *.example.org
allowedDomainsstring[]When set, recording works only on these hostnames (blockedDomains still wins)
disableTypedTextbooleanNever records typed example text
suppressOnboardingbooleanSkips the welcome page on install
orgNamestringShown in guide footers and settings
orgLogoDataUrlstringOrganization logo as a data: URL
googleOAuthClientIdstringGoogle OAuth client ID (type Web application, redirect URI https://<extension-id>.chromiumapp.org/, scope drive.file) for Publish to Drive in builds without a built-in client. See docs/GOOGLE-DRIVE-SETUP.md

Example: teachers (AI allowed, SIS protected)

{
  "disableDrive": false,
  "forcedBlurCategories": ["email", "phone", "id-number", "roster-name", "credit-card", "credential"],
  "blockedDomains": ["sis.example.org", "*.powerschool.com"],
  "disableTypedText": true,
  "suppressOnboarding": false,
  "orgName": "Example Unified School District"
}

Example: student devices (OU for students)

{
  "forceStudentMode": true,
  "disableAI": true,
  "disableDrive": true,
  "disableTypedText": true,
  "suppressOnboarding": true,
  "orgName": "Example Unified School District"
}

In the Google Admin console, go to Devices → Chrome → Apps & extensions → Users & browsers, select the OU, add Pathlight by ID, and paste the JSON into Policy for extensions. On Windows and macOS, use the 3rdparty.extensions.<id>.policy registry or plist keys with the same JSON.

Data storage

All data lives in the user's Chrome profile: IndexedDB database pathlight (guides, screenshots, rosters, version history) and chrome.storage.local (settings, plus the AI key if the teacher adds one). Removing the extension deletes all of it. Class rosters are never exported or synced.

Verifying the policy

Open chrome://policy and confirm the extension policy loaded. In Pathlight's settings, locked options show "Set by your school". The unit test tests/unit/educator/student-mode.test.tsx covers the path from managed storage to merged settings to hidden AI and Drive controls.

Pathlight 0.1.1 is an early preview and is not yet listed in the Chrome Web Store, so it has no store ID yet. Until it is, force-install by policy isn’t available; teachers load it unpacked.