@graftland/plugin-remote 0.3.3 → 0.4.0
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 +18 -54
- package/README.zh-CN.md +17 -51
- package/README.zh-TW.md +17 -51
- package/dist/Auth.d.ts.map +1 -1
- package/dist/Auth.js.map +1 -1
- package/dist/Config.d.ts +1151 -0
- package/dist/Config.d.ts.map +1 -0
- package/dist/Config.js +183 -0
- package/dist/Config.js.map +1 -0
- package/dist/Contract.d.ts +1 -1
- package/dist/Contract.d.ts.map +1 -1
- package/dist/Contract.js +32 -1
- package/dist/Contract.js.map +1 -1
- package/dist/Instance.d.ts.map +1 -1
- package/dist/Instance.js.map +1 -1
- package/dist/Testing.d.ts +1 -1
- package/dist/Testing.d.ts.map +1 -1
- package/dist/Testing.js.map +1 -1
- package/dist/Transport.d.ts +1 -1
- package/dist/Transport.d.ts.map +1 -1
- package/dist/Transport.js.map +1 -1
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +25 -0
- package/dist/cli.js.map +1 -0
- package/dist/host/auth/bearer.d.ts.map +1 -1
- package/dist/host/auth/bearer.js +4 -2
- package/dist/host/auth/bearer.js.map +1 -1
- package/dist/host/auth/jwt.d.ts.map +1 -1
- package/dist/host/auth/jwt.js +4 -2
- package/dist/host/auth/jwt.js.map +1 -1
- package/dist/host/auth/mtls.d.ts +3 -7
- package/dist/host/auth/mtls.d.ts.map +1 -1
- package/dist/host/auth/mtls.js +13 -14
- package/dist/host/auth/mtls.js.map +1 -1
- package/dist/host/auth/none.d.ts +1 -1
- package/dist/host/auth/none.js +7 -5
- package/dist/host/auth/none.js.map +1 -1
- package/dist/host/command.d.ts +1 -1
- package/dist/host/command.d.ts.map +1 -1
- package/dist/host/command.js +11 -9
- package/dist/host/command.js.map +1 -1
- package/dist/host/local.d.ts.map +1 -1
- package/dist/host/local.js +9 -30
- package/dist/host/local.js.map +1 -1
- package/dist/host/unix.d.ts +1 -1
- package/dist/host/unix.d.ts.map +1 -1
- package/dist/host/unix.js +13 -9
- package/dist/host/unix.js.map +1 -1
- package/dist/host/websocket.d.ts +1 -1
- package/dist/host/websocket.d.ts.map +1 -1
- package/dist/host/websocket.js +11 -8
- package/dist/host/websocket.js.map +1 -1
- package/dist/host/worker.d.ts +1 -1
- package/dist/host/worker.d.ts.map +1 -1
- package/dist/host/worker.js +13 -9
- package/dist/host/worker.js.map +1 -1
- package/dist/index.d.ts +6 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -64
- package/dist/index.js.map +1 -1
- package/dist/internal/Certificates.js.map +1 -1
- package/dist/internal/FailureGroup.js +6 -6
- package/dist/internal/FailureGroup.js.map +1 -1
- package/dist/internal/Peer.js.map +1 -1
- package/dist/internal/{ServeLifecycle.js → RunnerLifecycle.js} +6 -6
- package/dist/internal/RunnerLifecycle.js.map +1 -0
- package/dist/internal/Supervisor.js.map +1 -1
- package/dist/internal/assembly.d.ts +3 -3
- package/dist/internal/assembly.js +8 -8
- package/dist/internal/assembly.js.map +1 -1
- package/dist/internal/auth/config.d.ts +27 -0
- package/dist/internal/auth/config.d.ts.map +1 -0
- package/dist/internal/auth/config.js +29 -0
- package/dist/internal/auth/config.js.map +1 -0
- package/dist/internal/auth/mtls.js.map +1 -1
- package/dist/internal/auth/token.js.map +1 -1
- package/dist/internal/auth/tokenCredentials.d.ts +1 -1
- package/dist/internal/auth/tokenCredentials.d.ts.map +1 -1
- package/dist/internal/auth/tokenCredentials.js +1 -1
- package/dist/internal/auth/tokenCredentials.js.map +1 -1
- package/dist/internal/child.js +3 -3
- package/dist/internal/child.js.map +1 -1
- package/dist/internal/childMain.js +47 -0
- package/dist/internal/childMain.js.map +1 -0
- package/dist/internal/childRuntime.js +8 -8
- package/dist/internal/childRuntime.js.map +1 -1
- package/dist/internal/cleanup.js +3 -3
- package/dist/internal/cleanup.js.map +1 -1
- package/dist/internal/contract.js.map +1 -1
- package/dist/internal/credentials.d.ts +3 -2
- package/dist/internal/credentials.d.ts.map +1 -1
- package/dist/internal/credentials.js +1 -1
- package/dist/internal/credentials.js.map +1 -1
- package/dist/internal/directTransport.js.map +1 -1
- package/dist/internal/entry.d.ts +104 -26
- package/dist/internal/entry.d.ts.map +1 -1
- package/dist/internal/entry.js +22 -9
- package/dist/internal/entry.js.map +1 -1
- package/dist/internal/entryConfig.d.ts +2 -202
- package/dist/internal/entryConfig.js +2 -136
- package/dist/internal/entryConfig.js.map +1 -1
- package/dist/internal/execution.d.ts +4 -4
- package/dist/internal/execution.js +11 -11
- package/dist/internal/execution.js.map +1 -1
- package/dist/internal/follow.js +1 -1
- package/dist/internal/follow.js.map +1 -1
- package/dist/internal/forkTree.js.map +1 -1
- package/dist/internal/host/local.js.map +1 -1
- package/dist/internal/host/runner.js +4 -4
- package/dist/internal/host/runner.js.map +1 -1
- package/dist/internal/host.js +2 -2
- package/dist/internal/host.js.map +1 -1
- package/dist/internal/importer.js +1 -1
- package/dist/internal/importer.js.map +1 -1
- package/dist/internal/listenerStartup.js +1 -1
- package/dist/internal/listenerStartup.js.map +1 -1
- package/dist/internal/loadModule.js.map +1 -1
- package/dist/internal/platform.js +1 -9
- package/dist/internal/port.d.ts +1 -1
- package/dist/internal/port.js +2 -2
- package/dist/internal/port.js.map +1 -1
- package/dist/internal/runner/Bootstrap.js.map +1 -1
- package/dist/internal/runner/Connection.d.ts +3 -2
- package/dist/internal/runner/Connection.js +6 -6
- package/dist/internal/runner/Connection.js.map +1 -1
- package/dist/internal/runner/Execution.js +6 -6
- package/dist/internal/runner/Execution.js.map +1 -1
- package/dist/internal/runner/Local.js +1 -1
- package/dist/internal/runner/Local.js.map +1 -1
- package/dist/internal/runner/Lock.js.map +1 -1
- package/dist/internal/runner/Multiplex.js.map +1 -1
- package/dist/internal/runner/Packages.js.map +1 -1
- package/dist/internal/runner/ProcessObservation.js.map +1 -1
- package/dist/internal/runner/Processes.js.map +1 -1
- package/dist/internal/runner/Retention.js.map +1 -1
- package/dist/internal/runner/Store.js.map +1 -1
- package/dist/internal/runner/Supervisor.js +5 -5
- package/dist/internal/runner/Supervisor.js.map +1 -1
- package/dist/internal/runner/Watchdog.js.map +1 -1
- package/dist/internal/runner/Wire.d.ts +1 -1
- package/dist/internal/runner/Wire.js.map +1 -1
- package/dist/internal/runner/accept.js +2 -2
- package/dist/internal/runner/accept.js.map +1 -1
- package/dist/internal/runner/command.js +1 -1
- package/dist/internal/runner/command.js.map +1 -1
- package/dist/internal/runner/connectionEnded.js +1 -1
- package/dist/internal/runner/connectionEnded.js.map +1 -1
- package/dist/internal/runner/model.d.ts.map +1 -1
- package/dist/internal/runner/model.js.map +1 -1
- package/dist/internal/services.d.ts.map +1 -1
- package/dist/internal/services.js +1 -1
- package/dist/internal/services.js.map +1 -1
- package/dist/internal/socketChannel.js.map +1 -1
- package/dist/internal/stdioChannel.js.map +1 -1
- package/dist/internal/supervisorPlugin.js +48 -1
- package/dist/internal/supervisorPlugin.js.map +1 -1
- package/dist/internal/transportOptions.d.ts.map +1 -1
- package/dist/internal/watchdogMain.js +5 -3
- package/dist/internal/watchdogMain.js.map +1 -1
- package/dist/internal/websocket.js.map +1 -1
- package/dist/internal/websocketServer.js +1 -1
- package/dist/internal/websocketServer.js.map +1 -1
- package/dist/internal/workerChannel.js.map +1 -1
- package/dist/internal/workerMain.js +13 -6
- package/dist/internal/workerMain.js.map +1 -1
- package/dist/runner/auth/bearer.d.ts +3 -5
- package/dist/runner/auth/bearer.d.ts.map +1 -1
- package/dist/runner/auth/bearer.js +13 -11
- package/dist/runner/auth/bearer.js.map +1 -1
- package/dist/runner/auth/jwt.d.ts +4 -18
- package/dist/runner/auth/jwt.d.ts.map +1 -1
- package/dist/runner/auth/jwt.js +16 -28
- package/dist/runner/auth/jwt.js.map +1 -1
- package/dist/runner/auth/mtls.d.ts +3 -6
- package/dist/runner/auth/mtls.d.ts.map +1 -1
- package/dist/runner/auth/mtls.js +13 -29
- package/dist/runner/auth/mtls.js.map +1 -1
- package/dist/runner/auth/none.d.ts +1 -1
- package/dist/runner/auth/none.js +7 -5
- package/dist/runner/auth/none.js.map +1 -1
- package/dist/runner/index.d.ts +3 -308
- package/dist/runner/index.d.ts.map +1 -1
- package/dist/runner/index.js +62 -30
- package/dist/runner/index.js.map +1 -1
- package/dist/runner/stdio.d.ts +1 -1
- package/dist/runner/stdio.d.ts.map +1 -1
- package/dist/runner/stdio.js +11 -9
- package/dist/runner/stdio.js.map +1 -1
- package/dist/runner/unix.d.ts +1 -1
- package/dist/runner/unix.d.ts.map +1 -1
- package/dist/runner/unix.js +10 -8
- package/dist/runner/unix.js.map +1 -1
- package/dist/runner/websocket.d.ts +1 -1
- package/dist/runner/websocket.d.ts.map +1 -1
- package/dist/runner/websocket.js +12 -10
- package/dist/runner/websocket.js.map +1 -1
- package/package.json +14 -12
- package/schema.json +2269 -0
- package/src/Auth.ts +8 -2
- package/src/Config.ts +196 -0
- package/src/Contract.ts +12 -3
- package/src/Instance.ts +1 -0
- package/src/Testing.ts +6 -4
- package/src/Transport.ts +12 -3
- package/src/cli.ts +60 -0
- package/src/host/auth/bearer.ts +1 -0
- package/src/host/auth/jwt.ts +1 -0
- package/src/host/auth/mtls.ts +7 -12
- package/src/host/auth/none.ts +3 -1
- package/src/host/command.ts +8 -5
- package/src/host/local.ts +4 -2
- package/src/host/unix.ts +11 -7
- package/src/host/websocket.ts +10 -7
- package/src/host/worker.ts +8 -5
- package/src/index.ts +36 -23
- package/src/internal/Certificates.ts +1 -0
- package/src/internal/FailureGroup.ts +5 -3
- package/src/internal/Peer.ts +1 -0
- package/src/internal/{ServeLifecycle.ts → RunnerLifecycle.ts} +7 -5
- package/src/internal/Supervisor.ts +5 -4
- package/src/internal/assembly.ts +11 -9
- package/src/internal/auth/config.ts +44 -0
- package/src/internal/auth/mtls.ts +1 -0
- package/src/internal/auth/token.ts +1 -0
- package/src/internal/auth/tokenCredentials.ts +4 -2
- package/src/internal/child.ts +8 -6
- package/src/{bin.ts → internal/childMain.ts} +16 -61
- package/src/internal/childRuntime.ts +12 -10
- package/src/internal/cleanup.ts +3 -2
- package/src/internal/contract.ts +1 -0
- package/src/internal/credentials.ts +3 -1
- package/src/internal/directTransport.ts +9 -2
- package/src/internal/entry.ts +53 -16
- package/src/internal/entryConfig.ts +10 -132
- package/src/internal/execution.ts +17 -15
- package/src/internal/follow.ts +2 -1
- package/src/internal/forkTree.ts +2 -1
- package/src/internal/host/local.ts +1 -0
- package/src/internal/host/runner.ts +7 -5
- package/src/internal/host.ts +9 -8
- package/src/internal/importer.ts +3 -2
- package/src/internal/listenerStartup.ts +4 -2
- package/src/internal/loadModule.ts +1 -0
- package/src/internal/platform.ts +1 -12
- package/src/internal/port.ts +11 -6
- package/src/internal/runner/Bootstrap.ts +1 -0
- package/src/internal/runner/Connection.ts +13 -11
- package/src/internal/runner/Execution.ts +14 -13
- package/src/internal/runner/Local.ts +3 -2
- package/src/internal/runner/Lock.ts +1 -0
- package/src/internal/runner/Multiplex.ts +2 -1
- package/src/internal/runner/Packages.ts +7 -5
- package/src/internal/runner/ProcessObservation.ts +2 -1
- package/src/internal/runner/Processes.ts +3 -1
- package/src/internal/runner/Retention.ts +1 -0
- package/src/internal/runner/Store.ts +3 -2
- package/src/internal/runner/Supervisor.ts +22 -20
- package/src/internal/runner/Watchdog.ts +3 -1
- package/src/internal/runner/Wire.ts +13 -12
- package/src/internal/runner/accept.ts +6 -5
- package/src/internal/runner/command.ts +3 -2
- package/src/internal/runner/connectionEnded.ts +2 -1
- package/src/internal/runner/model.ts +5 -3
- package/src/internal/services.ts +9 -2
- package/src/internal/socketChannel.ts +2 -1
- package/src/internal/stdioChannel.ts +4 -2
- package/src/internal/supervisorPlugin.ts +10 -8
- package/src/internal/transportOptions.ts +1 -0
- package/src/internal/watchdogMain.ts +5 -3
- package/src/internal/websocket.ts +5 -2
- package/src/internal/websocketServer.ts +6 -4
- package/src/internal/workerChannel.ts +1 -0
- package/src/internal/workerMain.ts +21 -5
- package/src/runner/auth/bearer.ts +10 -6
- package/src/runner/auth/jwt.ts +10 -41
- package/src/runner/auth/mtls.ts +6 -3
- package/src/runner/auth/none.ts +3 -1
- package/src/runner/index.ts +102 -11
- package/src/runner/stdio.ts +15 -10
- package/src/runner/unix.ts +7 -4
- package/src/runner/websocket.ts +9 -7
- package/dist/Auth-BElTC9_X.js +0 -6
- package/dist/Bootstrap-H9gDsgsC.js +0 -9
- package/dist/ConfigDirectory-BCC6q2R4.js +0 -5
- package/dist/Contract-DsJtisvL.js +0 -83
- package/dist/Errors-DYhsGZcZ.js +0 -58
- package/dist/FailureGroup-BgT73AaR.js +0 -63
- package/dist/Framing-G9eSaeLb.js +0 -61
- package/dist/Graft-B71CPA2Y.js +0 -996
- package/dist/Packages-AgoCGotL.js +0 -108
- package/dist/Peer-DXeVrGBh.js +0 -342
- package/dist/ProcessObservation-gLgGirYv.js +0 -38
- package/dist/ServeLifecycle-Bd1FPJ6e.js +0 -24
- package/dist/Transport-DULzpsgR.js +0 -6
- package/dist/WatchdogProtocol-BZmVxrBP.js +0 -17
- package/dist/bin.js +0 -28276
- package/dist/bin.js.map +0 -1
- package/dist/childRuntime-Bm3iSg_N.js +0 -192
- package/dist/command-9zrHdbwT.js +0 -7
- package/dist/connectionEnded-BwcxQ7W8.js +0 -54
- package/dist/directTransport-DrexuPSm.js +0 -5
- package/dist/entry-psOpX3Bj.js +0 -736
- package/dist/importer-Cvf88eAY.js +0 -344
- package/dist/internal/ServeLifecycle.js.map +0 -1
- package/dist/internal/entryConfig.d.ts.map +0 -1
- package/dist/internal/platform.js.map +0 -1
- package/dist/internal/release.js +0 -25
- package/dist/internal/release.js.map +0 -1
- package/dist/internal/serve.js +0 -60
- package/dist/internal/serve.js.map +0 -1
- package/dist/port--3x2zJ4D.js +0 -285
- package/dist/release-DfZPuIcK.js +0 -23
- package/dist/rolldown-runtime-DYf_mQCB.js +0 -34
- package/dist/socketChannel-CJvL2DiB.js +0 -3658
- package/dist/supervisorPlugin-t6Z6PrhD.js +0 -733
- package/dist/token-CYBNNlhS.js +0 -17
- package/dist/tokenCredentials-CbCuk-Rt.js +0 -31
- package/dist/websocketServer-NQhODlEt.js +0 -60
- package/dist/workerChannel-C8hhBJzA.js +0 -27
- package/src/internal/release.ts +0 -72
- package/src/internal/serve.ts +0 -119
- /package/dist/{bin.d.ts → internal/childMain.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
English | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md)
|
|
4
4
|
|
|
5
|
-
Run a Graft plugin in a child process, a Node worker, or on
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
Run a Graft plugin somewhere else: in a child process, in a Node worker, or on
|
|
6
|
+
another machine through a runner. The plugins that use it keep injecting its
|
|
7
|
+
[services](https://graftland.github.io/graft/services/) as usual; only its
|
|
8
|
+
[config entry](https://graftland.github.io/graft/config-file/) changes.
|
|
9
9
|
|
|
10
10
|
```yaml
|
|
11
11
|
- id: greeter
|
|
@@ -16,62 +16,26 @@ Build both to JavaScript.
|
|
|
16
16
|
config: { greeting: Hello }
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Remote isolates execution, not permissions. For a permission boundary, run the
|
|
20
|
+
runner in a container or a VM.
|
|
20
21
|
|
|
21
|
-
|
|
22
|
-
import * as Remote from "@graftland/plugin-remote"
|
|
23
|
-
import { contract } from "./contract.js"
|
|
22
|
+
## Documentation
|
|
24
23
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
can also be Effects or `{ inject, read }`. A custom host supplies
|
|
36
|
-
`NodeServices.layer` and `SecureRandom.layerWebCrypto` to Graft.
|
|
37
|
-
|
|
38
|
-
A runner configuration:
|
|
39
|
-
|
|
40
|
-
```yaml
|
|
41
|
-
- name: remote/runner
|
|
42
|
-
config:
|
|
43
|
-
root: ./installation
|
|
44
|
-
state: ./state
|
|
45
|
-
listen:
|
|
46
|
-
- url: wss://0.0.0.0:7443
|
|
47
|
-
cert: ./certs/server.crt
|
|
48
|
-
key: ./certs/server.key
|
|
49
|
-
auth: { mtls: { ca: ./certs/ca.crt } }
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Run `graft-remote serve --config runner.yml`. Install its plugin packages in
|
|
53
|
-
advance, preserve the state directory, and supervise the runner and descendants.
|
|
54
|
-
`graft-remote certificates` can issue certificates. A saved host entry id names
|
|
55
|
-
the instance by default; the runner confirms old-process exit before replacement
|
|
56
|
-
and advances generation. Read the guide for leases and three stopping outcomes.
|
|
24
|
+
- [Remote](https://graftland.github.io/graft/remote/overview/): what Remote does
|
|
25
|
+
and its limits.
|
|
26
|
+
- [Host entries](https://graftland.github.io/graft/remote/hosts/): contracts,
|
|
27
|
+
`remote` entries, services and errors.
|
|
28
|
+
- [Runners](https://graftland.github.io/graft/remote/runners/): run plugins on
|
|
29
|
+
another machine with `graft start runner.yml`.
|
|
30
|
+
- [Transport and authentication](https://graftland.github.io/graft/remote/transport-auth/)
|
|
31
|
+
- [Replacement and stopping](https://graftland.github.io/graft/remote/lifecycle/)
|
|
32
|
+
- [Capability plugins](https://graftland.github.io/graft/remote/capabilities/)
|
|
33
|
+
- [API reference](https://graftland.github.io/graft/reference/plugin-remote/readme/)
|
|
57
34
|
|
|
58
|
-
|
|
59
|
-
relies on SSH or another external mechanism. Use wss for tokens; stolen tokens
|
|
60
|
-
can be replayed while valid. JWT is checked once at upgrade. Restart the host
|
|
61
|
-
after changing a contract; contract imports do not participate in HMR.
|
|
35
|
+
## Samples
|
|
62
36
|
|
|
63
|
-
Public APIs: root default, `plugin`, `Contract`, `Instance`, public errors;
|
|
64
|
-
`/runner`; `/Auth`, `/Transport`, `/Errors`, `/Contract`, `/Testing`; and
|
|
65
|
-
capability modules under `host/*` and `runner/*`. The executable paths
|
|
66
|
-
`/internal/bin`, `/internal/worker`, `/internal/watchdog` are **not public
|
|
67
|
-
APIs**.
|
|
68
|
-
|
|
69
|
-
- [Remote](https://graftland.github.io/graft/remote/overview/)
|
|
70
|
-
- [Capabilities](https://graftland.github.io/graft/remote/capabilities/)
|
|
71
37
|
- [06 · Remote](../../samples/06-remote/)
|
|
72
38
|
- [Chat bot](../../samples/chat-bot/)
|
|
73
39
|
|
|
74
|
-
This workspace package remains private.
|
|
75
|
-
|
|
76
40
|
Part of [Graft](https://github.com/graftland/graft). Licensed under
|
|
77
41
|
[Apache 2.0](https://github.com/graftland/graft/blob/main/LICENSE).
|
package/README.zh-CN.md
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# @graftland/plugin-remote
|
|
2
2
|
|
|
3
|
-
English
|
|
3
|
+
[English](README.md) | 简体中文 | [繁體中文](README.zh-TW.md)
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
worker
|
|
7
|
-
`module` 指向实现;先把两者构建成 JavaScript。
|
|
5
|
+
把 Graft 插件放到别处运行:子进程、Node
|
|
6
|
+
worker,或通过 runner 放到另一台机器上。使用它的插件照常注入它的[服务](https://graftland.github.io/graft/zh-cn/services/),要改的只有它的[配置条目](https://graftland.github.io/graft/zh-cn/config-file/)。
|
|
8
7
|
|
|
9
8
|
```yaml
|
|
10
9
|
- id: greeter
|
|
@@ -15,57 +14,24 @@ worker 或 runner 上运行 Graft 插件。契约声明跨边界的服务,消
|
|
|
15
14
|
config: { greeting: Hello }
|
|
16
15
|
```
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
Remote 隔离的是执行,不是权限。需要权限边界时,请把 runner 放进容器或虚拟机。
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
import * as Remote from "@graftland/plugin-remote"
|
|
22
|
-
import { contract } from "./contract.js"
|
|
19
|
+
## 文档
|
|
23
20
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
`{ name, config }`
|
|
34
|
-
引用。不必另写能力 entry 或服务键字符串。TS 凭证还允许 Effect 或
|
|
35
|
-
`{ inject, read }`。自定义宿主需为 Graft 提供 `NodeServices.layer` 和
|
|
36
|
-
`SecureRandom.layerWebCrypto`。
|
|
37
|
-
|
|
38
|
-
runner 配置:
|
|
39
|
-
|
|
40
|
-
```yaml
|
|
41
|
-
- name: remote/runner
|
|
42
|
-
config:
|
|
43
|
-
root: ./installation
|
|
44
|
-
state: ./state
|
|
45
|
-
listen:
|
|
46
|
-
- url: wss://0.0.0.0:7443
|
|
47
|
-
cert: ./certs/server.crt
|
|
48
|
-
key: ./certs/server.key
|
|
49
|
-
auth: { mtls: { ca: ./certs/ca.crt } }
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
运行
|
|
53
|
-
`graft-remote serve --config runner.yml`。提前安装插件包,保留状态目录,并由外部 supervisor 管理 runner 及后代进程。`graft-remote certificates`
|
|
54
|
-
可生成证书。宿主保存的条目 id 默认就是实例名;runner 确认旧进程退出后才接纳替换,并递增 generation。租约和三种停止结果见指南。
|
|
55
|
-
|
|
56
|
-
worker 不隔离权限;unix 依赖文件权限;stdio 依赖 SSH 等外部机制。token 建议走 wss,被盗后在有效期内可以重放。JWT 只在 upgrade 验证一次。修改契约后须重启宿主,契约导入不参与 HMR。
|
|
57
|
-
|
|
58
|
-
公开 API:包根 default、`plugin`、`Contract`、`Instance`、公开错误;`/runner`;`/Auth`、`/Transport`、`/Errors`、`/Contract`、`/Testing`;以及
|
|
59
|
-
`host/*`、`runner/*`
|
|
60
|
-
能力模块。`/internal/bin`、`/internal/worker`、`/internal/watchdog`
|
|
61
|
-
只是可执行文件路径,**不是公开 API**。
|
|
21
|
+
- [Remote](https://graftland.github.io/graft/zh-cn/remote/overview/):Remote 做什么,有哪些局限。
|
|
22
|
+
- [宿主条目](https://graftland.github.io/graft/zh-cn/remote/hosts/):契约、`remote`
|
|
23
|
+
条目、服务与错误。
|
|
24
|
+
- [Runner](https://graftland.github.io/graft/zh-cn/remote/runners/):用
|
|
25
|
+
`graft start runner.yml` 在另一台机器上运行插件。
|
|
26
|
+
- [传输与认证](https://graftland.github.io/graft/zh-cn/remote/transport-auth/)
|
|
27
|
+
- [替换与停止](https://graftland.github.io/graft/zh-cn/remote/lifecycle/)
|
|
28
|
+
- [能力插件](https://graftland.github.io/graft/zh-cn/remote/capabilities/)
|
|
29
|
+
- [API 参考](https://graftland.github.io/graft/reference/plugin-remote/readme/)
|
|
62
30
|
|
|
63
|
-
|
|
64
|
-
- [Capabilities](https://graftland.github.io/graft/zh-cn/remote/capabilities/)
|
|
65
|
-
- [06 · Remote](../../samples/06-remote/)
|
|
66
|
-
- [Chat bot](../../samples/chat-bot/)
|
|
31
|
+
## 示例
|
|
67
32
|
|
|
68
|
-
|
|
33
|
+
- [06 · 远程插件](../../samples/06-remote/README.zh-CN.md)
|
|
34
|
+
- [聊天机器人](../../samples/chat-bot/README.zh-CN.md)
|
|
69
35
|
|
|
70
36
|
Part of [Graft](https://github.com/graftland/graft). Licensed under
|
|
71
37
|
[Apache 2.0](https://github.com/graftland/graft/blob/main/LICENSE).
|
package/README.zh-TW.md
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
# @graftland/plugin-remote
|
|
2
2
|
|
|
3
|
-
English | [简体中文](README.zh-CN.md) |
|
|
3
|
+
[English](README.md) | [简体中文](README.zh-CN.md) | 繁體中文
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
worker
|
|
7
|
-
`module` 指向實作;先將兩者建置為 JavaScript。
|
|
5
|
+
把 Graft 外掛放到別處執行:子行程、Node
|
|
6
|
+
worker,或透過 runner 放到另一台機器上。使用它的外掛照常注入它的[服務](https://graftland.github.io/graft/zh-tw/services/),需要改的只有它的[設定項目](https://graftland.github.io/graft/zh-tw/config-file/)。
|
|
8
7
|
|
|
9
8
|
```yaml
|
|
10
9
|
- id: greeter
|
|
@@ -15,57 +14,24 @@ worker 或 runner 執行 Graft 外掛。契約宣告跨邊界的服務,消費
|
|
|
15
14
|
config: { greeting: Hello }
|
|
16
15
|
```
|
|
17
16
|
|
|
18
|
-
|
|
17
|
+
Remote 隔離的是執行,不是權限。需要權限邊界時,請把 runner 放進容器或虛擬機器。
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
import * as Remote from "@graftland/plugin-remote"
|
|
22
|
-
import { contract } from "./contract.js"
|
|
19
|
+
## 文件
|
|
23
20
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
`{ name, config }`
|
|
34
|
-
引用。不必另寫能力 entry 或服務鍵字串。TS 憑證也允許 Effect 或
|
|
35
|
-
`{ inject, read }`。自訂宿主須為 Graft 提供 `NodeServices.layer` 與
|
|
36
|
-
`SecureRandom.layerWebCrypto`。
|
|
37
|
-
|
|
38
|
-
runner 設定:
|
|
39
|
-
|
|
40
|
-
```yaml
|
|
41
|
-
- name: remote/runner
|
|
42
|
-
config:
|
|
43
|
-
root: ./installation
|
|
44
|
-
state: ./state
|
|
45
|
-
listen:
|
|
46
|
-
- url: wss://0.0.0.0:7443
|
|
47
|
-
cert: ./certs/server.crt
|
|
48
|
-
key: ./certs/server.key
|
|
49
|
-
auth: { mtls: { ca: ./certs/ca.crt } }
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
執行
|
|
53
|
-
`graft-remote serve --config runner.yml`。預先安裝外掛套件,保留狀態目錄,並由外部 supervisor 管理 runner 及後代行程。`graft-remote certificates`
|
|
54
|
-
可產生憑證。宿主保存的條目 id 預設就是實例名稱;runner 確認舊行程退出後才接受替換,並遞增 generation。租約與三種停止結果見指南。
|
|
55
|
-
|
|
56
|
-
worker 不隔離權限;unix 依賴檔案權限;stdio 依賴 SSH 等外部機制。token 建議走 wss,被竊後在有效期內可以重放。JWT 只在 upgrade 驗證一次。修改契約後須重啟宿主,契約匯入不參與 HMR。
|
|
57
|
-
|
|
58
|
-
公開 API:套件根目錄 default、`plugin`、`Contract`、`Instance`、公開錯誤;`/runner`;`/Auth`、`/Transport`、`/Errors`、`/Contract`、`/Testing`;以及
|
|
59
|
-
`host/*`、`runner/*`
|
|
60
|
-
能力模組。`/internal/bin`、`/internal/worker`、`/internal/watchdog`
|
|
61
|
-
僅是執行檔路徑,**不是公開 API**。
|
|
21
|
+
- [Remote](https://graftland.github.io/graft/zh-tw/remote/overview/):Remote 做什麼,以及它的限制。
|
|
22
|
+
- [宿主設定項目](https://graftland.github.io/graft/zh-tw/remote/hosts/):契約、`remote`
|
|
23
|
+
設定項目、服務與錯誤。
|
|
24
|
+
- [Runner](https://graftland.github.io/graft/zh-tw/remote/runners/):用
|
|
25
|
+
`graft start runner.yml` 在另一台機器上執行外掛。
|
|
26
|
+
- [傳輸與驗證](https://graftland.github.io/graft/zh-tw/remote/transport-auth/)
|
|
27
|
+
- [替換與停止](https://graftland.github.io/graft/zh-tw/remote/lifecycle/)
|
|
28
|
+
- [能力外掛](https://graftland.github.io/graft/zh-tw/remote/capabilities/)
|
|
29
|
+
- [API 參考](https://graftland.github.io/graft/reference/plugin-remote/readme/)
|
|
62
30
|
|
|
63
|
-
|
|
64
|
-
- [Capabilities](https://graftland.github.io/graft/zh-tw/remote/capabilities/)
|
|
65
|
-
- [06 · Remote](../../samples/06-remote/)
|
|
66
|
-
- [Chat bot](../../samples/chat-bot/)
|
|
31
|
+
## 範例
|
|
67
32
|
|
|
68
|
-
|
|
33
|
+
- [06 · 遠端外掛](../../samples/06-remote/README.zh-TW.md)
|
|
34
|
+
- [聊天機器人](../../samples/chat-bot/README.zh-TW.md)
|
|
69
35
|
|
|
70
36
|
Part of [Graft](https://github.com/graftland/graft). Licensed under
|
|
71
37
|
[Apache 2.0](https://github.com/graftland/graft/blob/main/LICENSE).
|
package/dist/Auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.d.ts","names":[],"sources":["../src/Auth.ts"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Auth.d.ts","names":[],"sources":["../src/Auth.ts"],"mappings":";;iBAeiB;WACP;WACA,KAAK,SAAS;;iBAEP;WACP,KAAK;WACL,gBAAgB,OAAO;;iBAEhB;WACP,IAAI;WACJ;WACA;WACA;;YAEE;WAEA;WACA,OAAO,SAAS;;WAEd;WAA8B,OAAO;;WACrC;;YAEF,oBACV,KAAK;WACI,MAAM;WACN,MAAM,OAAO,OACrB,QAAQ;aAAqB,MAAM;MACnC,kBACA,MAAM;KAGP;YAEU;WAEA;WACA;WACA,eACR,QAAQ,OAAO,OAAO,SAAS,sBAC3B,OAAO,eAEX,uBAAuB;;WAIf;WACA,KAAK;WACL,eACR,MAAM,wBACF,OAAO,eAAe;;WAEhB;WAAuB;;;qBAExB,oBAAoB;;qBAGpB,sBAAsB"}
|
package/dist/Auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Auth.js","names":[],"sources":["../src/Auth.ts"],"sourcesContent":["/** Credentials and authenticated identities shared by transport plugins. */\nimport {
|
|
1
|
+
{"version":3,"file":"Auth.js","names":[],"sources":["../src/Auth.ts"],"sourcesContent":["/** Credentials and authenticated identities shared by transport plugins. */\nimport {\n\tContext,\n\ttype Effect,\n\ttype Option,\n\ttype Redacted,\n\ttype Scope,\n} from \"effect\"\n\nimport type {\n\tAuthenticationFailed,\n\tAuthenticatorUnavailable,\n\tCredentialsError,\n} from \"./Errors\"\n\nexport interface ClientCertificate {\n\treadonly cert: string\n\treadonly key: Redacted.Redacted<string>\n}\nexport interface VerifiedCertificate {\n\treadonly der: Uint8Array\n\treadonly subjectAltName: Option.Option<string>\n}\nexport interface TlsPolicy {\n\treadonly ca: ReadonlyArray<string>\n\treadonly minVersion: \"TLSv1.3\"\n\treadonly requestCert: true\n\treadonly rejectUnauthorized: true\n}\nexport type Prepared =\n\t| {\n\t\t\treadonly _tag: \"Authorization\"\n\t\t\treadonly value: Redacted.Redacted<string>\n\t }\n\t| { readonly _tag: \"Certificate\"; readonly value: ClientCertificate }\n\t| { readonly _tag: \"None\" }\n\nexport type CredentialsApi = {\n\t[K in Prepared[\"_tag\"]]: {\n\t\treadonly kind: K\n\t\treadonly read: Effect.Effect<\n\t\t\tExtract<Prepared, { readonly _tag: K }>,\n\t\t\tCredentialsError,\n\t\t\tScope.Scope\n\t\t>\n\t}\n}[Prepared[\"_tag\"]]\n\nexport type AuthenticatorApi =\n\t| {\n\t\t\treadonly _tag: \"Header\"\n\t\t\treadonly issuer?: string\n\t\t\treadonly authenticate: (\n\t\t\t\theader: Option.Option<Redacted.Redacted<string>>,\n\t\t\t) => Effect.Effect<\n\t\t\t\tstring,\n\t\t\t\tAuthenticationFailed | AuthenticatorUnavailable\n\t\t\t>\n\t }\n\t| {\n\t\t\treadonly _tag: \"Mtls\"\n\t\t\treadonly tls: TlsPolicy\n\t\t\treadonly authenticate: (\n\t\t\t\tpeer: VerifiedCertificate,\n\t\t\t) => Effect.Effect<string, AuthenticationFailed>\n\t }\n\t| { readonly _tag: \"None\"; readonly identity: string }\n\nexport class Credentials extends Context.Service<Credentials, CredentialsApi>()(\n\t\"@graftland/plugin-remote/Auth/Credentials\",\n) {}\nexport class Authenticator extends Context.Service<\n\tAuthenticator,\n\tAuthenticatorApi\n>()(\"@graftland/plugin-remote/Auth/Authenticator\") {}\n"],"mappings":";;;AAoEA,IAAa,cAAb,cAAiC,QAAQ,QAAqC,CAAC,CAC9E,2CACD,CAAC,CAAC,CAAC;AACH,IAAa,gBAAb,cAAmC,QAAQ,QAGzC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC"}
|