Skip to main content

abstract-door

Expose named capabilities on a host through one locked-down SSH key.

A door is an SSH key whose forced command is door-serve. The key can run nothing else: no shell, no forwarding, only the capabilities installed packages register and the key's allow-list permits. Every call is logged.

Server (the host that owns the capability)

pip install abstract-door <package-that-registers-capabilities>

~/.ssh/authorized_keys of the account the capabilities must run as:

restrict,command="/path/to/venv/bin/door-serve --client claude@ae --allow 'vault.*'" ssh-ed25519 AAAA… claude@ae door

Calls are logged as JSON lines to /var/log/abstract-door/door.log (or ~/.local/state/abstract-door/door.log) and to syslog (journalctl -t abstract-door).

Registering capabilities

A package adds capabilities through an entry point:

[project.entry-points."abstract_door.capabilities"]
"vault.export" = "pypit.door_caps:export"

A capability is fn(args, stdin, stdout, ctx) -> int: args are the request's arguments, stdin/stdout the binary data channel, ctx holds client, capability and log(msg) (notes added to the call's log line).

Client

door <target> <capability> [args…]   # stdin/stdout pass through
door <target>                        # capabilities this key may run

<target> is an SSH alias door-<target> in ~/.ssh/config (key, user, ProxyJump).

Metadata

Release files for abstract-door 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for abstract-door 0.1.0
File Size Uploaded Provenance
abstract_door-0.1.0.tar.gz 5.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for abstract-door 0.1.0
File Interpreter ABI Platform
abstract_door-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.9 kB

Release files / abstract_door-0.1.0.tar.gz

Download URL abstract_door-0.1.0.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
affb689518fbae8262990037cadf82ed78b542512c09da2b63bcc450f98e6d68
BLAKE2b-256 checksum
How to use checksums
8b4abf42f26bca549c374c9ab31113a64fd2d4cbbb8824306381ad32e90b8ef7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / abstract_door-0.1.0-py3-none-any.whl

Download URL abstract_door-0.1.0-py3-none-any.whl
Size 6.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b39a40a8897b630a17876e9b1e70ae5f03bd9e5871792e8a36673a6cef051e1
BLAKE2b-256 checksum
How to use checksums
9f8a8182e7347f917ea4d1106250a3f41c537722b61140bb5ff8fa2b6fe21e2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for abstract-door 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page