Privacy Policy - Campus Assistant Extension

Last Updated: January 11, 2025

Version: 1.0.0

Overview

Campus Assistant is an internal browser extension developed by Tether Education for the CRM team. This extension is designed to facilitate secure integration between educational services and Tether's internal CRM platform.

Important: This is an internal tool for authorized Tether Education employees only. It is not intended for public use and is only available in the Chrome Web Store for distribution purposes.

Purpose

Campus Assistant automates the following workflows for authorized CRM team members:

Data Collection

What Data We Collect

The extension collects and processes the following data types:

  1. Authentication Tokens (JWT)
    • Purpose: Captured from educational services to enable automated integrations
    • Storage: Temporarily stored in memory (in-memory map), automatically cleared when browser tab closes
    • Encryption: Tokens are never persisted to disk
    • Transmission: Sent securely to Tether's internal API endpoints via HTTPS
  2. User Context Information
    • Service ID (e.g., "rpd-mineduc")
    • Campus ID (internal identifier)
    • Tenant Code (institution identifier)
    • Metadata (non-sensitive configuration data)
    • Purpose: Required to route captured tokens to the correct campus/tenant
    • Storage: Encrypted locally using AES-256-GCM
    • Retention: Stored until manually cleared or extension is uninstalled
  3. Capture State
    • Current capture phase (initializing, waiting-credentials, waiting-token, completed)
    • Site identifier (e.g., "rpd-mineduc")
    • Timestamp
    • Purpose: Tracks the status of ongoing capture operations
    • Storage: Session storage and in-memory (5-minute TTL)
    • Transmission: None (local only)
  4. Technical Data
    • Browser type and version
    • Extension version
    • Purpose: Debugging and compatibility checks
    • Storage: Logs only (not transmitted)

What We Do NOT Collect

How We Use Your Data

All collected data is used exclusively for the following purposes:

  1. Service Integration: Enable automated capture and provisioning of educational service tokens
  2. Internal Operations: Route captured tokens to Tether's internal CRM systems
  3. Debugging: Troubleshoot integration issues (logs are stored locally only)
  4. Security: Ensure secure token handling and prevent unauthorized access

We do NOT:

Data Sharing

No data is shared with external third parties. All data flows between:

  1. The extension (your browser)
  2. Tether's internal microservices:
    • Credential Manager API (https://api.v2.tether.education/crm-integrations/credentials)
    • Integration Core API (https://api.v2.tether.education/crm-integrations/core)
    • Campus Integration Web App (https://app.tether.education/crm/campus-integration)

All communication uses HTTPS with TLS 1.2+ encryption.

Permissions Justification

The extension requests the following browser permissions. Each permission is strictly necessary for the stated purpose:

Permission Purpose Justification
storage Store encrypted user context and capture state Required to persist configuration across browser sessions. Uses chrome.storage.local and chrome.storage.session.
notifications Display success/error notifications Alerts users when token capture succeeds or fails. Uses chrome.notifications.create().
tabs Manage capture tabs and send messages Required to open educational service sites, detect URLs, and communicate with content scripts. Uses chrome.tabs.query(), chrome.tabs.create(), chrome.tabs.sendMessage().
scripting Inject content scripts dynamically Required to inject token interceptors on educational service pages. Uses chrome.scripting.executeScript() and chrome.scripting.registerContentScripts().

Host Permissions

Host Purpose
https://registropublicodigital.mineduc.gob.cl/* Capture tokens from RPD MINEDUC (Chilean government educational service)
https://apirpd.mineduc.cl/* Access RPD API endpoints
https://app.tether.education/* Communicate with Campus Integration webapp (Tether's internal application)

Removed Permissions

As of version 1.0.0, the following permissions were removed to comply with the principle of least privilege:

Security Measures

We implement industry-standard security practices:

  1. Encryption
    • All stored credentials use AES-256-GCM encryption
    • Unique Initialization Vector (IV) per encryption operation
    • Key derivation via PBKDF2 (100,000 iterations)
    • Extension ID used as key material
  2. In-Memory Token Storage (Keycloak-style)
    • Authentication tokens stored only in memory (authTokenMap)
    • Automatically cleared when browser tab closes
    • Never persisted to disk or localStorage
  3. Origin Validation
    • Content scripts only run on explicitly declared host permissions
    • window.postMessage communication validates origin via manifest
    • No cross-origin requests outside declared permissions
  4. HTTPS Only
    • All API communication uses HTTPS (TLS 1.2+)
    • No unencrypted data transmission
  5. Code Minification
    • Production builds are minified to prevent reverse engineering
    • Source maps only included in development builds

Data Retention

Data Type Retention Period Deletion Method
Authentication Tokens Until browser tab closes Automatic (in-memory only)
User Context Until extension is uninstalled or manually cleared User-initiated or uninstall
Capture State 5 minutes (TTL) Automatic expiration
Logs Until browser restart Automatic (console logs only)

Your Rights

As a user of this internal extension, you have the right to:

  1. Access: View all data stored by the extension (via browser DevTools → Application → Storage)
  2. Deletion: Clear all stored data by uninstalling the extension
  3. Transparency: Request information about how your data is used (contact us below)

To exercise these rights, contact the CRM development team at the email below.

Children's Privacy

This extension is intended for internal enterprise use only by authorized employees of Tether Education. It is not directed at children under 13 years of age, and we do not knowingly collect data from children.

Changes to This Policy

We may update this Privacy Policy periodically. Changes will be reflected in:

Demo Mode

This extension includes a Demo Mode for Chrome Web Store reviewers. When demo mode is enabled:

Demo mode is only available in builds submitted to the Chrome Web Store and is not present in production builds distributed to Tether employees.

Compliance

This extension complies with:

Contact Us

Tether Education - CRM Development Team

Email: crm-dev@tether.education

Website: https://tether.education