cortex

Chronote Security

Threat Model

Chronote operates inside an Obsidian vault with access to note contents, frontmatter, and the network. The primary concerns are:

OAuth Flow & Token Storage

Flow

  1. The user clicks Connect Google Calendar in the Dashboard.
  2. Obsidian opens a browser tab to https://cortex-proxy.vercel.app/api/auth.
  3. The user authenticates with Google and authorizes calendar access.
  4. The proxy redirects to the Obsidian protocol chronote-auth://?access_token=...&refresh_token=...&expires_in=....
  5. main.ts registers an Obsidian protocol handler (chronote-auth) that captures these parameters and persists them.

Token Storage

Transmission

Scope & Data Handling

AI Provider Credentials

Files: src/services/ai/*, src/settings.ts

Embedding Provider Credentials

File: src/agent/vectorIndex/embeddings.ts

Credential Transmission Summary

Credential Destination Method Location in Request
Google refresh token cortex-proxy.vercel.app POST JSON body ({ refresh_token })
Google access token www.googleapis.com GET/POST/PATCH/DELETE Authorization: Bearer header
Chat / embedding API key The user-selected AI provider per the provider’s API spec per the provider’s API spec

Mitigations & Hardening

Known Limitations