Skip to content

Seatbelt: support native name and Unix-socket path exclusions without filesystem scans #1277

Description

@0xmmo

Description of the new feature / enhancement

Add opt-in macOS Seatbelt exclusions for names at any depth and Unix sockets at configured paths, so callers can enforce these rules without enumerating a directory tree to populate literal filesystem.deniedPaths.

A per-access name rule should cover entries created after launch and remain effective when a directory containing a match moves between writable roots; existing configurations should retain their behavior.

Proposed technical implementation details

Add seatbelt.deniedPathNames and seatbelt.deniedUnixSocketPaths to the mutable development contract, with native Seatbelt deny rules, the existing experimental authorization, and the corresponding SDK, schema, documentation and tests.

Keep name syntax narrow: literal relative name sequences such as .ssh and .config/gh, matched at any depth, with rename protection for leading components; document resolved-path/alias behavior and that socket restrictions follow current paths rather than moved socket identities.

This targets the macOS Seatbelt backend; I am preparing a draft implementation with native macOS validation.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area-SchemaVersioned configuration contracts, JSON schemas, compatibility, or generated wire types.Backend-SeatbeltmacOS process isolation implemented with Seatbelt.In-PRThe issue has an associated pull request in progress.Issue-FeatureA request for new or expanded product functionality.OS-MacOSApplies specifically to macOS hosts or macOS behavior.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions