> For the complete documentation index, see [llms.txt](https://developer.eagle.cool/plugin-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.eagle.cool/plugin-api/plugin-review/criteria/security-and-privacy.md).

# Security and Privacy

A plugin must not perform dangerous operations, transmit data, or alter system state without the user's knowledge. Review examines high-risk source behavior and external connections, then evaluates whether each behavior is justified by the plugin's stated purpose.

The presence of system commands, file deletion, or network requests does not automatically cause rejection. A submission is blocked when behavior lacks a legitimate purpose, exceeds user expectations, omits a required disclosure, or creates an unacceptable risk to users, data, or the software supply chain.

## Dangerous Execution and System Operations

Review pays particular attention to:

* dynamic execution of code represented as strings;
* system commands, child processes, or external applications;
* deletion, overwriting, moving, or bulk modification of files;
* changes to Eagle or operating-system settings;
* executable code downloaded after installation;
* privileged behavior unrelated to core functionality.

When such behavior is required, keep its scope as narrow as possible and clearly explain its impact in the store introduction or before execution. Destructive or irreversible changes should require clear user confirmation and, when practical, provide preview, cancellation, or recovery options.

## External Connections and Data Flows

Plugins may use networks and third-party services, but every destination and transmitted value must match the plugin's purpose. Confirm that:

* users can reasonably expect the connection;
* the external service is necessary for the stated functionality;
* only the minimum required data is transmitted;
* material external processing or privacy implications are disclosed in the store introduction;
* sensitive data is protected and is not placed in URLs, logs, or packages.

Ordinary documentation, support pages, and trusted resources do not automatically create risk. Loading web fonts as intended, for example, is generally acceptable. However, even a common service is unsafe when used to exfiltrate unnecessary private data.

## Connections Requiring Special Care

The following signals require a clear purpose and appropriate protection:

* unencrypted `HTTP` data transfer;
* connections to `localhost`, loopback, private-network, or link-local addresses without a disclosed local-integration purpose;
* credentials, passwords, or tokens embedded in URLs;
* deceptive Punycode domains or unusual ports;
* executable scripts, dynamic modules, or workers loaded remotely;
* unknown analytics endpoints, third-party SDKs, or unexplained hosts.

An unfamiliar host does not automatically prove malicious intent. An unexplained, high-impact data flow, remote code dependency, or abnormal destination may nevertheless block a submission.

## User Awareness, Consent, and Data Minimization

Request only permissions required by the plugin and operate only as described. When handling user data:

* explain the data type, destination, and purpose before transmission;
* obtain explicit user consent when appropriate;
* do not collect data unrelated to core functionality;
* do not transmit additional private content when processing can remain local;
* disclose retention, payment, or third-party processing conditions that affect user decisions;
* provide cancellation, disabling, or deletion controls appropriate to the risk.

## Common Reasons a Submission Does Not Pass

* Eagle item names, local paths, or file contents are sent to an undisclosed service.
* The plugin loads and executes remote code without necessity or supply-chain protection.
* Sensitive data is sent over an unencrypted connection.
* Files are deleted or overwritten, or system settings are changed, without user awareness.
* The plugin requests unrelated privileges or collects excessive data.
* Real credentials, tokens, or private endpoint keys are included in code or the package.

Remove unnecessary behavior first. If the behavior is essential, reduce its permissions and data scope, add appropriate protection, and make its impact clear before installation and at the time of use.
