> ## Documentation Index
> Fetch the complete documentation index at: https://catalyst.leifiyo.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Security model

> How Catalyst limits renderer access, file operations, imports, downloads, and assistant actions.

Catalyst is a local desktop app, but it still treats server folders, downloaded content, archives, and assistant actions as sensitive.

## Electron boundaries

<Columns cols={2}>
  <Card title="Context isolation" icon="shield">
    The renderer uses `contextIsolation: true` and talks through the preload bridge.
  </Card>

  <Card title="Sandboxed renderer" icon="box">
    The renderer runs with Electron sandboxing enabled and does not receive direct Node.js access.
  </Card>

  <Card title="IPC allowlist" icon="list-checks">
    App actions are exposed as explicit `window.context.*` methods.
  </Card>

  <Card title="External links" icon="external-link">
    External opens are limited to HTTP and HTTPS URLs.
  </Card>
</Columns>

## Filesystem controls

Catalyst resolves server file operations against the server root and rejects unsafe paths. It also sanitizes download filenames and refuses names that could escape the target directory.

## Archive import controls

Imported server archives are checked for:

* Required `manifest.json`.
* Maximum entry count.
* Maximum uncompressed size.
* Zip-slip paths.
* Safe target folder names.

## Download and content controls

* Modrinth downloads verify SHA-1 or SHA-512 hashes when available.
* Server downloads verify upstream hashes when metadata provides them.
* ngrok downloads are restricted to HTTPS URLs chosen by platform and architecture.
* The file editor uses a size limit for quick edits.

## AI assistant controls

The assistant can only apply supported action types, and user confirmation is required before Catalyst changes files, properties, or sends server commands.

<Warning>
  The security model protects Catalyst workflows. It does not replace Minecraft server hardening: use whitelists, permissions, backups, and careful plugin choices on public servers.
</Warning>
