Security

Security model

Demo subscription access

The app uses one database-backed demo user. Free, Premium and Pro plan changes are stored in the production database and are clearly labeled as a course demo flow, not real payment processing.

Server-side entitlement checks

Skill manifest APIs check the current demo user plan on the server. Frontend lock labels are not trusted for access.

MCP risk labels

MCP entries show risk level, permissions, status and risk notes. Unknown MCP servers can read files, run tools or expose private data if permissions are too broad.

Secrets handling

The repository includes `.env.example` only. Tokens and private `.env` files must stay out of git.

Future production improvements

Replace demo user with real auth, use Postgres, add real billing webhooks, audit logs, rate limits and scoped MCP sandbox enforcement.