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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| abstract_door-0.1.0.tar.gz | 5.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.