# Security Policy ## Supported Versions | Version | Supported | | ------- | ------------------ | | 0.1.x | :white_check_mark: | ## Reporting a Vulnerability If you discover a security vulnerability, please report it by: 1. **DO NOT** open a public GitHub issue 2. Email the maintainers directly (see `pyproject.toml` for contact info) 3. Include a detailed description of the vulnerability 4. Allow reasonable time for a fix before public disclosure ## Credential Security This library stores authentication credentials locally. Please understand these security considerations: ### Storage Locations Default location is `~/.notebooklm/` (can be changed via `NOTEBOOKLM_HOME` environment variable): | File | Contents | Permissions | |------|----------|-------------| | `storage_state.json` | Google session cookies | `0o600` (owner-only) | | `browser_profile/` | Chromium profile data | `0o700` (owner-only) | | `context.json` | Active notebook ID | Default | ### Security Best Practices 1. **Protect your credentials** - The `storage_state.json` file contains your Google session cookies - Anyone with access to this file can impersonate your Google account to NotebookLM - Never share, commit, or expose this file 2. **Add to .gitignore** ```gitignore .notebooklm/ ``` 3. **Credential rotation** - Re-run `notebooklm login` periodically to refresh credentials - Sessions typically last days to weeks before expiring 4. **If credentials are compromised** - Immediately revoke access at [Google Security Settings](https://myaccount.google.com/permissions) - Delete the `~/.notebooklm/` directory - Re-authenticate with `notebooklm login` 5. **CI/CD usage** - Do not commit credentials to repositories - Use `NOTEBOOKLM_AUTH_JSON` environment variable for secure, file-free authentication - Store the JSON value in GitHub Secrets or similar secure secret management - The env var approach keeps credentials in memory only, never written to disk ### What This Library Does NOT Do - Does not transmit credentials to any third party - Does not store passwords (uses browser-based OAuth) - Does not access data outside of NotebookLM - Does not modify Google account settings ## Dependency Security This library uses minimal dependencies: | Dependency | Purpose | Security Notes | |------------|---------|----------------| | `httpx` | HTTP client | Well-maintained, security-focused | | `click` | CLI framework | Stable, minimal attack surface | | `rich` | Terminal output | Cosmetic, no network access | | `playwright` | Browser automation (optional) | Used only for login | ### Auditing Dependencies ```bash # Install pip-audit pip install pip-audit # Run security audit pip-audit ``` ## Known Limitations ### Undocumented API This library uses Google's internal APIs, which means: - **No official security guarantees** from Google - **API changes without notice** may break functionality - **Rate limiting** may be applied by Google - **Account restrictions** are possible for unusual usage patterns ### Session Security - Sessions are cookie-based (standard web authentication) - CSRF tokens are required and automatically handled - No long-lived API keys or OAuth tokens ## Questions? For security questions that are not vulnerabilities, open a [GitHub Discussion](https://github.com/teng-lin/notebooklm-py/discussions).