@landstrip/landstrip 0.18.26 → 0.18.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -94
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- SPDX-License-Identifier:
|
|
1
|
+
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
|
2
2
|
<!-- Copyright (C) Jarkko Sakkinen 2026 -->
|
|
3
3
|
|
|
4
4
|
# landstrip
|
|
@@ -17,38 +17,21 @@ npx landstrip run -p policy.json -- cargo test
|
|
|
17
17
|
The npm package installs a Node.js wrapper and a native binary for the current
|
|
18
18
|
platform.
|
|
19
19
|
|
|
20
|
-
##
|
|
20
|
+
## Quick start
|
|
21
21
|
|
|
22
|
-
```
|
|
23
|
-
landstrip run
|
|
24
|
-
landstrip policy validate
|
|
25
|
-
landstrip policy resolve
|
|
22
|
+
```sh
|
|
23
|
+
landstrip run -p policy.json -- cargo test
|
|
24
|
+
landstrip policy validate -p policy.json
|
|
25
|
+
landstrip policy resolve -p policy.json
|
|
26
26
|
landstrip doctor
|
|
27
|
-
landstrip windows install [OPTIONS]
|
|
28
|
-
landstrip windows status
|
|
29
|
-
landstrip windows uninstall
|
|
30
27
|
```
|
|
31
28
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
merge recursively, later scalar values replace earlier ones, and arrays combine.
|
|
36
|
-
JSON is the default. Use `--policy-format yaml` for YAML and always specify the
|
|
37
|
-
format with `-p -`.
|
|
38
|
-
|
|
39
|
-
`run` also merges policy attached to the program executable. `policy validate`
|
|
40
|
-
checks parsing, resolution, and platform support. `policy resolve` prints the
|
|
41
|
-
normalized policy; add `--tool <PROGRAM>` to include executable policy.
|
|
42
|
-
`doctor` checks that the platform sandbox is usable.
|
|
43
|
-
|
|
44
|
-
Inspection and management commands print one JSON document. `run` returns the
|
|
45
|
-
program's exit status. Usage errors return 2; other Landstrip failures return 1.
|
|
29
|
+
Windows builds also provide `windows install`, `windows status`, and
|
|
30
|
+
`windows uninstall`. Full command reference: `landstrip --help` and the
|
|
31
|
+
[manual page](man/man1/landstrip.1).
|
|
46
32
|
|
|
47
33
|
### Agent extensions
|
|
48
34
|
|
|
49
|
-
Companion extensions integrate Landstrip with Pi and OpenCode. The Pi extension
|
|
50
|
-
also provides primary agents and process-backed subagents.
|
|
51
|
-
|
|
52
35
|
```sh
|
|
53
36
|
pi install npm:pi-landstrip
|
|
54
37
|
opencode plugin install opencode-landstrip
|
|
@@ -57,7 +40,7 @@ opencode plugin install opencode-landstrip
|
|
|
57
40
|
See [pi-landstrip](packages/pi-landstrip/README.md) and
|
|
58
41
|
[opencode-landstrip](packages/opencode-landstrip/README.md).
|
|
59
42
|
|
|
60
|
-
## Policy
|
|
43
|
+
## Policy sketch
|
|
61
44
|
|
|
62
45
|
```json
|
|
63
46
|
{
|
|
@@ -76,70 +59,14 @@ See [pi-landstrip](packages/pi-landstrip/README.md) and
|
|
|
76
59
|
}
|
|
77
60
|
```
|
|
78
61
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
`
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
Direct TCP and new Unix sockets are denied by default. Proxy ports allow
|
|
91
|
-
loopback connections only to those ports; Landstrip does not start a proxy or
|
|
92
|
-
filter domains. `allowLocalBinding` permits local TCP binding and loopback
|
|
93
|
-
connections. `allowUnixSockets` grants pathname sockets, and
|
|
94
|
-
`allowAllUnixSockets` allows all Unix sockets. Set `allowNetwork` to `true` to
|
|
95
|
-
disable network enforcement while keeping filesystem restrictions.
|
|
96
|
-
|
|
97
|
-
On Unix, supplementary executable policy is read from the
|
|
98
|
-
`user.landstrip.policy` extended attribute. On Windows it is read from the
|
|
99
|
-
`landstrip.policy` NTFS alternate data stream. Executable policy is merged
|
|
100
|
-
after `--policy` files.
|
|
101
|
-
|
|
102
|
-
## Platforms
|
|
103
|
-
|
|
104
|
-
| Platform | Filesystem | Network |
|
|
105
|
-
| --- | --- | --- |
|
|
106
|
-
| Linux | Landlock and seccomp | TCP and Unix socket rules |
|
|
107
|
-
| macOS | Seatbelt | TCP and Unix socket rules |
|
|
108
|
-
| Windows | AppContainer or restricted user | AppContainer capabilities or account-scoped WFP |
|
|
109
|
-
|
|
110
|
-
Windows requires an explicit read allowlist. AppContainer is used without
|
|
111
|
-
installation; core Landstrip defaults to LPAC. `windows.appContainerMode` may
|
|
112
|
-
select `standard`, which is weaker because it can see resources granted to
|
|
113
|
-
`ALL APPLICATION PACKAGES`. In AppContainer, `windows.allowLoopback` exposes
|
|
114
|
-
every local loopback service; without it, proxy ports are blocked.
|
|
115
|
-
|
|
116
|
-
Use `landstrip windows install` when software such as Git Bash cannot start in
|
|
117
|
-
AppContainer. It provisions restricted local users and activates that mode.
|
|
118
|
-
`windows uninstall` removes it and returns to AppContainer. An unhealthy
|
|
119
|
-
installation fails closed; inspect it with `windows status`.
|
|
120
|
-
|
|
121
|
-
Windows does not support `allowLocalBinding` or Unix socket policy.
|
|
122
|
-
Restricted-user mode permits proxy ports only from the range chosen at install
|
|
123
|
-
time and does not support `windows.allowLoopback`.
|
|
124
|
-
|
|
125
|
-
## Traps
|
|
126
|
-
|
|
127
|
-
Landstrip failures and broker-reported denials are JSON objects with a stable
|
|
128
|
-
`kind` and `code`. Failures and completed denials go to standard error. The
|
|
129
|
-
sandboxed program may also write to standard error.
|
|
130
|
-
|
|
131
|
-
On Unix, `--trap-fd FD` sends structured events to an already-open descriptor
|
|
132
|
-
numbered 3 or higher. On Linux, a socket trap descriptor can carry a
|
|
133
|
-
`state: "query"` filesystem or network event that pauses an operation for the
|
|
134
|
-
integrating host to answer. Query events go only to that socket. Kernel-only
|
|
135
|
-
and static-profile denials do not always produce a per-access event.
|
|
136
|
-
|
|
137
|
-
Trap kinds are `filesystem`, `network`, `launch`, `usage`, and `internal`.
|
|
138
|
-
Filesystem and network records describe denied operations; the other kinds
|
|
139
|
-
report failures in Landstrip itself.
|
|
140
|
-
|
|
141
|
-
## Licensing
|
|
142
|
-
|
|
143
|
-
The JavaScript npm wrapper is licensed under `Apache-2.0`. The Rust source and
|
|
144
|
-
native binaries are licensed under `LGPL-2.1-or-later`. Corresponding source for
|
|
145
|
-
each native package is available from the matching repository tag.
|
|
62
|
+
Pass policies with `-p, --policy <FILE>` (repeatable). Semantics, platform
|
|
63
|
+
limits, traps, and exit status are in the manual page.
|
|
64
|
+
|
|
65
|
+
## License
|
|
66
|
+
|
|
67
|
+
`landstrip` is free software under the GNU Lesser General Public License
|
|
68
|
+
version 2.1 or later (LGPL-2.1+). See [LICENSE-LGPL-2.1](LICENSE-LGPL-2.1).
|
|
69
|
+
|
|
70
|
+
The JavaScript npm wrapper is under the Apache License 2.0. See
|
|
71
|
+
[LICENSE-APACHE-2.0](LICENSE-APACHE-2.0). Corresponding source for each native
|
|
72
|
+
package is available from the matching repository tag.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@landstrip/landstrip",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.28",
|
|
4
4
|
"description": "Sandbox runner using Landlock, Seatbelt, and AppContainer",
|
|
5
5
|
"license": "Apache-2.0 AND LGPL-2.1-or-later",
|
|
6
6
|
"homepage": "https://github.com/landstrip/landstrip#readme",
|
|
@@ -30,12 +30,12 @@
|
|
|
30
30
|
"LICENSE-LGPL-2.1"
|
|
31
31
|
],
|
|
32
32
|
"optionalDependencies": {
|
|
33
|
-
"@landstrip/landstrip-darwin-arm64": "0.18.
|
|
34
|
-
"@landstrip/landstrip-darwin-x64": "0.18.
|
|
35
|
-
"@landstrip/landstrip-linux-x64": "0.18.
|
|
36
|
-
"@landstrip/landstrip-linux-arm64": "0.18.
|
|
37
|
-
"@landstrip/landstrip-win32-x64": "0.18.
|
|
38
|
-
"@landstrip/landstrip-win32-arm64": "0.18.
|
|
33
|
+
"@landstrip/landstrip-darwin-arm64": "0.18.28",
|
|
34
|
+
"@landstrip/landstrip-darwin-x64": "0.18.28",
|
|
35
|
+
"@landstrip/landstrip-linux-x64": "0.18.28",
|
|
36
|
+
"@landstrip/landstrip-linux-arm64": "0.18.28",
|
|
37
|
+
"@landstrip/landstrip-win32-x64": "0.18.28",
|
|
38
|
+
"@landstrip/landstrip-win32-arm64": "0.18.28"
|
|
39
39
|
},
|
|
40
40
|
"publishConfig": {
|
|
41
41
|
"access": "public"
|