Skip to content

Security: hasna/machines

Security

SECURITY.md

Security Policy

Supported Versions

Version Supported
0.0.x Yes

Reporting a Vulnerability

If you discover a security vulnerability, please report it responsibly:

  1. Do not open a public GitHub issue.
  2. Email hasna@hasna.com with details.
  3. Include steps to reproduce if possible.
  4. Allow reasonable time for a fix before public disclosure.

Security Model

Local-first fleet data

@hasna/machines stores runtime fleet data locally in SQLite under the Hasna machines data directory. It makes no telemetry calls by default. Optional PostgreSQL storage, S3 backups, webhook notifications, HTTP dashboard access, and remote machine commands are only used when explicitly configured or invoked by the operator.

Public-safe output by default

Default CLI, MCP, and HTTP output redacts machine identifiers, local paths, route targets, private network addresses, database URLs, and secret-like values where those values could expose private fleet details. Private fleet metadata is only returned when the operator explicitly opts in with private-output flags or environment gates documented in the README.

Remote commands and mutations

Provisioning, daemon lifecycle, hosts-file updates, notifications, runtime events, and other mutating operations are dry-run or approval-gated unless the command explicitly requires --apply, --yes, or a scoped mutation approval token. Treat generated commands as local operator actions and review them before running in production environments.

Sensitive local files

Protect local machine state, manifests, SQLite databases, notification configuration, and any private manifest adapters with normal workstation secret hygiene. Do not include private manifests, .env files, database files, or tool-local state directories in public issues, release artifacts, or npm package contents.

Best Practices

  • Keep the Hasna machines data directory on a filesystem with restricted permissions.
  • Use loopback-only HTTP dashboard defaults unless exposing the service on a trusted network.
  • Require API keys or explicit unauthenticated loopback mode for Streamable HTTP MCP connections.
  • Keep private fleet metadata out of public bug reports and open-source manifests.
  • Run bun run verify:release before publishing a release.

There aren't any published security advisories