@embassys/ambassador 0.2.9 → 0.2.10
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 +17 -7
- package/dist/agent-capabilities.d.ts +6 -0
- package/dist/agent-capabilities.js +61 -1
- package/dist/agent-capabilities.js.map +1 -1
- package/dist/ambassador-options.d.ts +4 -0
- package/dist/ambassador-options.js +7 -1
- package/dist/ambassador-options.js.map +1 -1
- package/dist/central-enrollment.js +1 -5
- package/dist/central-enrollment.js.map +1 -1
- package/dist/cli.js +17 -2
- package/dist/cli.js.map +1 -1
- package/dist/credential-store.d.ts +4 -4
- package/dist/credential-store.js +6 -98
- package/dist/credential-store.js.map +1 -1
- package/dist/delivery-profile.d.ts +10 -7
- package/dist/delivery-profile.js +62 -44
- package/dist/delivery-profile.js.map +1 -1
- package/dist/direct-delivery.d.ts +3 -1
- package/dist/direct-delivery.js +114 -12
- package/dist/direct-delivery.js.map +1 -1
- package/dist/gateway-application.d.ts +4 -0
- package/dist/gateway-application.js +14 -6
- package/dist/gateway-application.js.map +1 -1
- package/dist/gateway-paths.d.ts +2 -0
- package/dist/gateway-paths.js +2 -0
- package/dist/gateway-paths.js.map +1 -1
- package/dist/guided-registration.d.ts +2 -1
- package/dist/guided-registration.js +15 -7
- package/dist/guided-registration.js.map +1 -1
- package/dist/process-lock.js +1 -0
- package/dist/process-lock.js.map +1 -1
- package/dist/sqlite-artifact.d.ts +9 -1
- package/dist/sqlite-artifact.js +23 -8
- package/dist/sqlite-artifact.js.map +1 -1
- package/dist/webhook-secret-store.d.ts +16 -0
- package/dist/webhook-secret-store.js +49 -0
- package/dist/webhook-secret-store.js.map +1 -0
- package/dist/windows-access-control.d.ts +6 -0
- package/dist/windows-access-control.js +161 -0
- package/dist/windows-access-control.js.map +1 -0
- package/docs/development-reset.md +27 -0
- package/docs/getting-started-claude.md +3 -3
- package/docs/getting-started-codex.md +3 -3
- package/docs/getting-started-gemini.md +1 -1
- package/docs/getting-started-hermes.md +78 -26
- package/docs/getting-started-openclaw.md +92 -31
- package/docs/live-qualification.md +73 -2
- package/integrations/openclaw-ambassador/index.mjs +171 -0
- package/integrations/openclaw-ambassador/openclaw.plugin.json +73 -0
- package/integrations/openclaw-ambassador/package.json +11 -0
- package/integrations/openclaw-ambassador/receiver.d.mts +43 -0
- package/integrations/openclaw-ambassador/receiver.mjs +164 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -17,8 +17,9 @@ npx --yes @embassys/ambassador@latest start
|
|
|
17
17
|
- OpenClaw and Hermes users choose **direct** (the default) or **webhook**.
|
|
18
18
|
Codex, Claude Code, and Gemini CLI proceed directly without a delivery
|
|
19
19
|
question.
|
|
20
|
-
- Webhook users
|
|
21
|
-
|
|
20
|
+
- Webhook users run `ambassador webhook-secret`, copy the displayed value into
|
|
21
|
+
Hermes or OpenClaw's owner-only secret store, and give the agent only the
|
|
22
|
+
receiver URL during registration.
|
|
22
23
|
|
|
23
24
|
Direct delivery supports OpenClaw, Hermes, Codex, Claude Code, and Gemini CLI.
|
|
24
25
|
Webhook delivery supports OpenClaw and Hermes. Unknown or incomplete profiles
|
|
@@ -51,14 +52,22 @@ configuration or credentials.
|
|
|
51
52
|
|
|
52
53
|
## Implementation status
|
|
53
54
|
|
|
54
|
-
The REST, DPoP, delivery, and zero-configuration
|
|
55
|
-
Live-central qualification has passed with
|
|
56
|
-
0.20.5
|
|
57
|
-
|
|
58
|
-
|
|
55
|
+
The REST, DPoP, delivery, internal webhook-secret, and zero-configuration
|
|
56
|
+
startup paths are implemented. Live-central qualification has passed with
|
|
57
|
+
real Codex and with Hermes Agent 0.20.5 and OpenClaw 2026.8.2 in both delivery
|
|
58
|
+
modes. Ambassador matches exact known client and ACP agent names while treating
|
|
59
|
+
reported versions as observations. Claude Code direct and Gemini CLI direct
|
|
60
|
+
remain open under the disclosed release exception in
|
|
59
61
|
[ADR 0015](docs/adr/0015-npm-distribution.md); outstanding work remains in the
|
|
60
62
|
[implementation plan](docs/implementation-plan.md).
|
|
61
63
|
|
|
64
|
+
Published Ambassador releases through 0.2.9 have no Windows support claim.
|
|
65
|
+
Current repository code is qualified under
|
|
66
|
+
[ADR 0040](docs/adr/0040-windows-qualification.md): the
|
|
67
|
+
native state, packed-package, and mock delivery lanes pass, while individual
|
|
68
|
+
agent and mode claims still require exact real-agent Windows evidence and a
|
|
69
|
+
future package publication requires separate approval.
|
|
70
|
+
|
|
62
71
|
## Development
|
|
63
72
|
|
|
64
73
|
Use Node.js 24 and the pnpm version recorded in `package.json`.
|
|
@@ -85,6 +94,7 @@ agents and webhook delivery for OpenClaw and Hermes.
|
|
|
85
94
|
- [Gemini CLI setup](docs/getting-started-gemini.md)
|
|
86
95
|
- [Hermes setup](docs/getting-started-hermes.md)
|
|
87
96
|
- [OpenClaw setup](docs/getting-started-openclaw.md)
|
|
97
|
+
- [Reset local test state](docs/development-reset.md)
|
|
88
98
|
- [Central service follow-ups](docs/central-follow-ups.md)
|
|
89
99
|
|
|
90
100
|
## License
|
|
@@ -4,6 +4,11 @@ export interface AgentClientInfo {
|
|
|
4
4
|
readonly name: string;
|
|
5
5
|
readonly version: string;
|
|
6
6
|
}
|
|
7
|
+
export interface WindowsNodePackageEntrypoint {
|
|
8
|
+
readonly packageName: string;
|
|
9
|
+
readonly binName: string;
|
|
10
|
+
readonly entrypoint: string;
|
|
11
|
+
}
|
|
7
12
|
export interface DirectAgentCapability {
|
|
8
13
|
readonly command: string;
|
|
9
14
|
readonly args: readonly string[];
|
|
@@ -12,6 +17,7 @@ export interface DirectAgentCapability {
|
|
|
12
17
|
};
|
|
13
18
|
readonly mcp: McpConfigurationBehavior;
|
|
14
19
|
readonly environment: readonly string[];
|
|
20
|
+
readonly windowsNodePackage?: WindowsNodePackageEntrypoint;
|
|
15
21
|
}
|
|
16
22
|
export interface AgentCapability {
|
|
17
23
|
readonly kind: string;
|
|
@@ -14,19 +14,30 @@ export const PRODUCTION_AGENT_CAPABILITIES = [
|
|
|
14
14
|
agentInfo: { name: "openclaw-acp" },
|
|
15
15
|
mcp: "provider_config",
|
|
16
16
|
environment: [
|
|
17
|
+
"APPDATA",
|
|
17
18
|
"HOME",
|
|
18
19
|
"LANG",
|
|
19
20
|
"LC_ALL",
|
|
21
|
+
"LOCALAPPDATA",
|
|
20
22
|
"NODE_EXTRA_CA_CERTS",
|
|
21
23
|
"PATH",
|
|
22
24
|
"SSL_CERT_DIR",
|
|
23
25
|
"SSL_CERT_FILE",
|
|
26
|
+
"SystemRoot",
|
|
27
|
+
"TEMP",
|
|
28
|
+
"TMP",
|
|
24
29
|
"TMPDIR",
|
|
25
30
|
"USERPROFILE",
|
|
31
|
+
"WINDIR",
|
|
26
32
|
"XDG_CONFIG_HOME",
|
|
27
33
|
"XDG_DATA_HOME",
|
|
28
34
|
"XDG_STATE_HOME",
|
|
29
35
|
],
|
|
36
|
+
windowsNodePackage: {
|
|
37
|
+
packageName: "openclaw",
|
|
38
|
+
binName: "openclaw",
|
|
39
|
+
entrypoint: "openclaw.mjs",
|
|
40
|
+
},
|
|
30
41
|
},
|
|
31
42
|
qualificationCases: ["openclaw-webhook", "openclaw-direct"],
|
|
32
43
|
},
|
|
@@ -42,14 +53,20 @@ export const PRODUCTION_AGENT_CAPABILITIES = [
|
|
|
42
53
|
agentInfo: { name: "hermes-agent" },
|
|
43
54
|
mcp: "session",
|
|
44
55
|
environment: [
|
|
56
|
+
"APPDATA",
|
|
45
57
|
"HOME",
|
|
46
58
|
"LANG",
|
|
47
59
|
"LC_ALL",
|
|
60
|
+
"LOCALAPPDATA",
|
|
48
61
|
"PATH",
|
|
49
62
|
"SSL_CERT_DIR",
|
|
50
63
|
"SSL_CERT_FILE",
|
|
64
|
+
"SystemRoot",
|
|
65
|
+
"TEMP",
|
|
66
|
+
"TMP",
|
|
51
67
|
"TMPDIR",
|
|
52
68
|
"USERPROFILE",
|
|
69
|
+
"WINDIR",
|
|
53
70
|
"XDG_CACHE_HOME",
|
|
54
71
|
"XDG_CONFIG_HOME",
|
|
55
72
|
"XDG_DATA_HOME",
|
|
@@ -70,22 +87,33 @@ export const PRODUCTION_AGENT_CAPABILITIES = [
|
|
|
70
87
|
agentInfo: { name: "@agentclientprotocol/codex-acp" },
|
|
71
88
|
mcp: "session",
|
|
72
89
|
environment: [
|
|
90
|
+
"APPDATA",
|
|
73
91
|
"CODEX_API_KEY",
|
|
74
92
|
"HOME",
|
|
75
93
|
"LANG",
|
|
76
94
|
"LC_ALL",
|
|
95
|
+
"LOCALAPPDATA",
|
|
77
96
|
"NODE_EXTRA_CA_CERTS",
|
|
78
97
|
"OPENAI_API_KEY",
|
|
79
98
|
"PATH",
|
|
80
99
|
"SSL_CERT_DIR",
|
|
81
100
|
"SSL_CERT_FILE",
|
|
101
|
+
"SystemRoot",
|
|
102
|
+
"TEMP",
|
|
103
|
+
"TMP",
|
|
82
104
|
"TMPDIR",
|
|
83
105
|
"USERPROFILE",
|
|
106
|
+
"WINDIR",
|
|
84
107
|
"XDG_CONFIG_HOME",
|
|
85
108
|
"XDG_DATA_HOME",
|
|
86
109
|
"XDG_RUNTIME_DIR",
|
|
87
110
|
"XDG_STATE_HOME",
|
|
88
111
|
],
|
|
112
|
+
windowsNodePackage: {
|
|
113
|
+
packageName: "@agentclientprotocol/codex-acp",
|
|
114
|
+
binName: "codex-acp",
|
|
115
|
+
entrypoint: "dist/index.js",
|
|
116
|
+
},
|
|
89
117
|
},
|
|
90
118
|
qualificationCases: ["codex-direct"],
|
|
91
119
|
},
|
|
@@ -101,22 +129,33 @@ export const PRODUCTION_AGENT_CAPABILITIES = [
|
|
|
101
129
|
agentInfo: { name: "@agentclientprotocol/claude-agent-acp" },
|
|
102
130
|
mcp: "session",
|
|
103
131
|
environment: [
|
|
132
|
+
"APPDATA",
|
|
104
133
|
"ANTHROPIC_API_KEY",
|
|
105
134
|
"ANTHROPIC_AUTH_TOKEN",
|
|
106
135
|
"CLAUDE_CODE_OAUTH_TOKEN",
|
|
107
136
|
"HOME",
|
|
108
137
|
"LANG",
|
|
109
138
|
"LC_ALL",
|
|
139
|
+
"LOCALAPPDATA",
|
|
110
140
|
"NODE_EXTRA_CA_CERTS",
|
|
111
141
|
"PATH",
|
|
112
142
|
"SSL_CERT_DIR",
|
|
113
143
|
"SSL_CERT_FILE",
|
|
144
|
+
"SystemRoot",
|
|
145
|
+
"TEMP",
|
|
146
|
+
"TMP",
|
|
114
147
|
"TMPDIR",
|
|
115
148
|
"USERPROFILE",
|
|
149
|
+
"WINDIR",
|
|
116
150
|
"XDG_CONFIG_HOME",
|
|
117
151
|
"XDG_DATA_HOME",
|
|
118
152
|
"XDG_STATE_HOME",
|
|
119
153
|
],
|
|
154
|
+
windowsNodePackage: {
|
|
155
|
+
packageName: "@agentclientprotocol/claude-agent-acp",
|
|
156
|
+
binName: "claude-agent-acp",
|
|
157
|
+
entrypoint: "dist/index.js",
|
|
158
|
+
},
|
|
120
159
|
},
|
|
121
160
|
qualificationCases: ["claude-direct"],
|
|
122
161
|
},
|
|
@@ -132,6 +171,7 @@ export const PRODUCTION_AGENT_CAPABILITIES = [
|
|
|
132
171
|
agentInfo: { name: "gemini-cli" },
|
|
133
172
|
mcp: "session",
|
|
134
173
|
environment: [
|
|
174
|
+
"APPDATA",
|
|
135
175
|
"GEMINI_API_KEY",
|
|
136
176
|
"GOOGLE_API_KEY",
|
|
137
177
|
"GOOGLE_CLOUD_LOCATION",
|
|
@@ -140,16 +180,26 @@ export const PRODUCTION_AGENT_CAPABILITIES = [
|
|
|
140
180
|
"HOME",
|
|
141
181
|
"LANG",
|
|
142
182
|
"LC_ALL",
|
|
183
|
+
"LOCALAPPDATA",
|
|
143
184
|
"NODE_EXTRA_CA_CERTS",
|
|
144
185
|
"PATH",
|
|
145
186
|
"SSL_CERT_DIR",
|
|
146
187
|
"SSL_CERT_FILE",
|
|
188
|
+
"SystemRoot",
|
|
189
|
+
"TEMP",
|
|
190
|
+
"TMP",
|
|
147
191
|
"TMPDIR",
|
|
148
192
|
"USERPROFILE",
|
|
193
|
+
"WINDIR",
|
|
149
194
|
"XDG_CONFIG_HOME",
|
|
150
195
|
"XDG_DATA_HOME",
|
|
151
196
|
"XDG_STATE_HOME",
|
|
152
197
|
],
|
|
198
|
+
windowsNodePackage: {
|
|
199
|
+
packageName: "@google/gemini-cli",
|
|
200
|
+
binName: "gemini",
|
|
201
|
+
entrypoint: "bundle/gemini.js",
|
|
202
|
+
},
|
|
153
203
|
},
|
|
154
204
|
qualificationCases: ["gemini-direct"],
|
|
155
205
|
},
|
|
@@ -158,6 +208,15 @@ function unique(values) {
|
|
|
158
208
|
return new Set(values).size === values.length;
|
|
159
209
|
}
|
|
160
210
|
function completeDirect(value) {
|
|
211
|
+
const windowsNodePackage = value?.windowsNodePackage;
|
|
212
|
+
const completeWindowsNodePackage = windowsNodePackage === undefined ||
|
|
213
|
+
(BOUNDED_METADATA.test(windowsNodePackage.packageName) &&
|
|
214
|
+
windowsNodePackage.binName === value?.command &&
|
|
215
|
+
BOUNDED_METADATA.test(windowsNodePackage.entrypoint) &&
|
|
216
|
+
!windowsNodePackage.entrypoint.includes("\\") &&
|
|
217
|
+
windowsNodePackage.entrypoint
|
|
218
|
+
.split("/")
|
|
219
|
+
.every((segment) => segment.length > 0 && segment !== "." && segment !== ".."));
|
|
161
220
|
return (value !== undefined &&
|
|
162
221
|
BOUNDED_METADATA.test(value.command) &&
|
|
163
222
|
value.args.length <= 16 &&
|
|
@@ -166,7 +225,8 @@ function completeDirect(value) {
|
|
|
166
225
|
(value.mcp === "provider_config" || value.mcp === "session") &&
|
|
167
226
|
value.environment.length <= 32 &&
|
|
168
227
|
value.environment.every((name) => ENVIRONMENT_NAME.test(name)) &&
|
|
169
|
-
unique(value.environment)
|
|
228
|
+
unique(value.environment) &&
|
|
229
|
+
completeWindowsNodePackage);
|
|
170
230
|
}
|
|
171
231
|
export function isCompleteAgentCapability(value) {
|
|
172
232
|
if (!KIND.test(value.kind) ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-capabilities.js","sourceRoot":"","sources":["../src/agent-capabilities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-capabilities.js","sourceRoot":"","sources":["../src/agent-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,4 +3,8 @@ export declare class AmbassadorOptionsError extends Error {
|
|
|
3
3
|
constructor();
|
|
4
4
|
}
|
|
5
5
|
export type AmbassadorStartOptions = Record<string, never>;
|
|
6
|
+
export type AmbassadorCommand = {
|
|
7
|
+
readonly command: "start" | "webhook-secret";
|
|
8
|
+
};
|
|
9
|
+
export declare function parseAmbassadorCommand(args: readonly string[]): AmbassadorCommand;
|
|
6
10
|
export declare function parseAmbassadorStartOptions(args: readonly string[]): AmbassadorStartOptions;
|
|
@@ -5,8 +5,14 @@ export class AmbassadorOptionsError extends Error {
|
|
|
5
5
|
this.name = "AmbassadorOptionsError";
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
+
export function parseAmbassadorCommand(args) {
|
|
9
|
+
if (args.length !== 1 || (args[0] !== "start" && args[0] !== "webhook-secret")) {
|
|
10
|
+
throw new AmbassadorOptionsError();
|
|
11
|
+
}
|
|
12
|
+
return { command: args[0] };
|
|
13
|
+
}
|
|
8
14
|
export function parseAmbassadorStartOptions(args) {
|
|
9
|
-
if (args.
|
|
15
|
+
if (parseAmbassadorCommand(args).command !== "start")
|
|
10
16
|
throw new AmbassadorOptionsError();
|
|
11
17
|
return {};
|
|
12
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ambassador-options.js","sourceRoot":"","sources":["../src/ambassador-options.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,QAAQ,GAAG,CAAC,CAAC;IAEtB;QACE,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"ambassador-options.js","sourceRoot":"","sources":["../src/ambassador-options.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACtC,QAAQ,GAAG,CAAC,CAAC;IAEtB;QACE,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAMD,MAAM,UAAU,sBAAsB,CAAC,IAAuB;IAC5D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,EAAE,CAAC;QAC/E,MAAM,IAAI,sBAAsB,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAuB;IACjE,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO;QAAE,MAAM,IAAI,sBAAsB,EAAE,CAAC;IACzF,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -37,12 +37,8 @@ export const REST_BOOTSTRAP_TOOLS = [
|
|
|
37
37
|
properties: {
|
|
38
38
|
mode: { const: "webhook" },
|
|
39
39
|
url: { type: "string", minLength: 1, maxLength: 2_048 },
|
|
40
|
-
secret_env: {
|
|
41
|
-
type: "string",
|
|
42
|
-
pattern: "^[A-Za-z_][A-Za-z0-9_]*$",
|
|
43
|
-
},
|
|
44
40
|
},
|
|
45
|
-
required: ["mode"
|
|
41
|
+
required: ["mode"],
|
|
46
42
|
additionalProperties: false,
|
|
47
43
|
},
|
|
48
44
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"central-enrollment.js","sourceRoot":"","sources":["../src/central-enrollment.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"central-enrollment.js","sourceRoot":"","sources":["../src/central-enrollment.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -3,11 +3,12 @@ import { realpathSync } from "node:fs";
|
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { join, resolve } from "node:path";
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
|
-
import { AmbassadorOptionsError,
|
|
6
|
+
import { AmbassadorOptionsError, parseAmbassadorCommand } from "./ambassador-options.js";
|
|
7
7
|
import { GatewayError } from "./errors.js";
|
|
8
8
|
import { openGatewayApplication, } from "./gateway-application.js";
|
|
9
9
|
import { defaultGatewayPaths, pathsForStateDirectory } from "./gateway-paths.js";
|
|
10
10
|
import { ProcessLock } from "./process-lock.js";
|
|
11
|
+
import { EncryptedFileWebhookSecretStore } from "./webhook-secret-store.js";
|
|
11
12
|
function processSignal() {
|
|
12
13
|
const controller = new AbortController();
|
|
13
14
|
const abort = () => controller.abort();
|
|
@@ -30,8 +31,9 @@ function homeDirectory(environment) {
|
|
|
30
31
|
return environment.HOME || environment.USERPROFILE || homedir();
|
|
31
32
|
}
|
|
32
33
|
export async function runCli(args, context) {
|
|
34
|
+
let command;
|
|
33
35
|
try {
|
|
34
|
-
|
|
36
|
+
command = parseAmbassadorCommand(args);
|
|
35
37
|
}
|
|
36
38
|
catch (error) {
|
|
37
39
|
context.io.stderr.write(`${error instanceof AmbassadorOptionsError ? error.message : "Invalid command or arguments"}\n`);
|
|
@@ -40,6 +42,17 @@ export async function runCli(args, context) {
|
|
|
40
42
|
const paths = context.testOverrides === undefined
|
|
41
43
|
? defaultGatewayPaths(process.platform, context.env, homeDirectory(context.env))
|
|
42
44
|
: pathsForStateDirectory(context.testOverrides.stateRoot, join);
|
|
45
|
+
if (command.command === "webhook-secret") {
|
|
46
|
+
try {
|
|
47
|
+
const store = new EncryptedFileWebhookSecretStore(paths.webhookSecretPath, paths.webhookSecretKeyPath);
|
|
48
|
+
context.io.stdout.write(`${await store.createOrLoad()}\n`);
|
|
49
|
+
return 0;
|
|
50
|
+
}
|
|
51
|
+
catch {
|
|
52
|
+
context.io.stderr.write("Ambassador webhook secret failed\n");
|
|
53
|
+
return 7;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
43
56
|
let lock;
|
|
44
57
|
let application;
|
|
45
58
|
const ownedSignal = context.signal === undefined ? processSignal() : undefined;
|
|
@@ -52,6 +65,8 @@ export async function runCli(args, context) {
|
|
|
52
65
|
journalPath: paths.journalPath,
|
|
53
66
|
credentialPath: paths.credentialPath,
|
|
54
67
|
credentialKeyPath: paths.credentialKeyPath,
|
|
68
|
+
webhookSecretPath: paths.webhookSecretPath,
|
|
69
|
+
webhookSecretKeyPath: paths.webhookSecretKeyPath,
|
|
55
70
|
profilePath: paths.profilePath,
|
|
56
71
|
workingDirectory: context.cwd,
|
|
57
72
|
environment: context.env,
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
import { type WindowsAccessControl, type WindowsArtifactKind } from "./windows-access-control.js";
|
|
1
2
|
export interface CredentialStore {
|
|
2
3
|
load(): Promise<string | undefined>;
|
|
3
4
|
save(credential: string): Promise<void>;
|
|
4
5
|
}
|
|
5
|
-
export type CredentialArtifactKind =
|
|
6
|
-
export
|
|
7
|
-
secure(path: string, kind: CredentialArtifactKind): Promise<void>;
|
|
8
|
-
}
|
|
6
|
+
export type CredentialArtifactKind = WindowsArtifactKind;
|
|
7
|
+
export type WindowsCredentialAccessControl = WindowsAccessControl;
|
|
9
8
|
export interface EncryptedFileCredentialStoreOptions {
|
|
10
9
|
readonly platform?: NodeJS.Platform;
|
|
11
10
|
readonly windowsAccessControl?: WindowsCredentialAccessControl;
|
|
11
|
+
readonly validatePlaintext?: (plaintext: string) => void;
|
|
12
12
|
}
|
|
13
13
|
export declare class EncryptedFileCredentialStore implements CredentialStore {
|
|
14
14
|
#private;
|
package/dist/credential-store.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { execFile } from "node:child_process";
|
|
2
1
|
import { createCipheriv, createDecipheriv, randomBytes, scrypt } from "node:crypto";
|
|
3
2
|
import { constants } from "node:fs";
|
|
4
3
|
import { link, lstat, mkdir, open, rename, unlink } from "node:fs/promises";
|
|
5
4
|
import { dirname, resolve } from "node:path";
|
|
6
5
|
import { TextDecoder } from "node:util";
|
|
7
6
|
import { parseCentralCredential } from "./central-credential.js";
|
|
7
|
+
import { secureWindowsArtifact, } from "./windows-access-control.js";
|
|
8
8
|
const FILE_FORMAT = 1;
|
|
9
9
|
const SCRYPT_N = 131_072;
|
|
10
10
|
const SCRYPT_R = 8;
|
|
@@ -17,7 +17,6 @@ const TAG_BYTES = 16;
|
|
|
17
17
|
const MAX_PLAINTEXT_BYTES = 8_192;
|
|
18
18
|
const MAX_FILE_BYTES = 16_384;
|
|
19
19
|
const STATE_KEY_BYTES = 24;
|
|
20
|
-
const SYSTEM_SID = "S-1-5-18";
|
|
21
20
|
const BASE64 = /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/u;
|
|
22
21
|
const ENVELOPE_KEYS = [
|
|
23
22
|
"cipher",
|
|
@@ -103,102 +102,9 @@ function deriveKey(stateKey, salt) {
|
|
|
103
102
|
scrypt(stateKey, salt, KEY_BYTES, { N: SCRYPT_N, r: SCRYPT_R, p: SCRYPT_P, maxmem: SCRYPT_MAXMEM }, (error, key) => (error === null ? resolveKey(key) : reject(error)));
|
|
104
103
|
});
|
|
105
104
|
}
|
|
106
|
-
function assertSid(value) {
|
|
107
|
-
if (!/^S-1-(?:0|[1-9][0-9]*)(?:-(?:0|[1-9][0-9]*)){1,15}$/u.test(value)) {
|
|
108
|
-
throw new Error("Current Windows identity is unavailable");
|
|
109
|
-
}
|
|
110
|
-
const components = value.split("-").slice(2);
|
|
111
|
-
const authority = components.shift();
|
|
112
|
-
if (authority === undefined || BigInt(authority) > 281474976710655n) {
|
|
113
|
-
throw new Error("Current Windows identity is unavailable");
|
|
114
|
-
}
|
|
115
|
-
if (components.some((component) => BigInt(component) > 4294967295n)) {
|
|
116
|
-
throw new Error("Current Windows identity is unavailable");
|
|
117
|
-
}
|
|
118
|
-
return value;
|
|
119
|
-
}
|
|
120
|
-
function runExecutable(file, arguments_) {
|
|
121
|
-
return new Promise((resolveOutput, reject) => {
|
|
122
|
-
execFile(file, arguments_, { encoding: "utf8", maxBuffer: 32 * 1024, windowsHide: true }, (error, stdout, stderr) => {
|
|
123
|
-
if (error !== null || stderr.length !== 0) {
|
|
124
|
-
reject(new Error("Windows credential access control failed"));
|
|
125
|
-
return;
|
|
126
|
-
}
|
|
127
|
-
resolveOutput(stdout);
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
const WINDOWS_ACL_SCRIPT = `
|
|
132
|
-
$ErrorActionPreference = 'Stop'
|
|
133
|
-
if ($args.Count -ne 3) { exit 41 }
|
|
134
|
-
$target = $args[0]
|
|
135
|
-
$userSid = $args[1]
|
|
136
|
-
$kind = $args[2]
|
|
137
|
-
$item = Get-Item -LiteralPath $target -Force
|
|
138
|
-
if (($kind -eq 'directory') -ne $item.PSIsContainer) { exit 42 }
|
|
139
|
-
if ($kind -ne 'directory' -and $kind -ne 'file') { exit 43 }
|
|
140
|
-
$security = if ($kind -eq 'directory') {
|
|
141
|
-
New-Object System.Security.AccessControl.DirectorySecurity
|
|
142
|
-
} else {
|
|
143
|
-
New-Object System.Security.AccessControl.FileSecurity
|
|
144
|
-
}
|
|
145
|
-
$security.SetAccessRuleProtection($true, $false)
|
|
146
|
-
$inheritance = if ($kind -eq 'directory') {
|
|
147
|
-
[System.Security.AccessControl.InheritanceFlags]'ContainerInherit,ObjectInherit'
|
|
148
|
-
} else {
|
|
149
|
-
[System.Security.AccessControl.InheritanceFlags]::None
|
|
150
|
-
}
|
|
151
|
-
$expected = @($userSid, '${SYSTEM_SID}') | Select-Object -Unique
|
|
152
|
-
foreach ($sid in $expected) {
|
|
153
|
-
$identity = New-Object System.Security.Principal.SecurityIdentifier($sid)
|
|
154
|
-
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule(
|
|
155
|
-
$identity,
|
|
156
|
-
[System.Security.AccessControl.FileSystemRights]::FullControl,
|
|
157
|
-
$inheritance,
|
|
158
|
-
[System.Security.AccessControl.PropagationFlags]::None,
|
|
159
|
-
[System.Security.AccessControl.AccessControlType]::Allow
|
|
160
|
-
)
|
|
161
|
-
[void]$security.AddAccessRule($rule)
|
|
162
|
-
}
|
|
163
|
-
Set-Acl -LiteralPath $target -AclObject $security
|
|
164
|
-
$actual = Get-Acl -LiteralPath $target
|
|
165
|
-
if (-not $actual.AreAccessRulesProtected) { exit 44 }
|
|
166
|
-
$rules = @($actual.GetAccessRules($true, $true, [System.Security.Principal.SecurityIdentifier]))
|
|
167
|
-
if ($rules.Count -ne $expected.Count) { exit 45 }
|
|
168
|
-
foreach ($rule in $rules) {
|
|
169
|
-
if ($expected -notcontains $rule.IdentityReference.Value) { exit 46 }
|
|
170
|
-
if ($rule.IsInherited) { exit 47 }
|
|
171
|
-
if ($rule.AccessControlType -ne [System.Security.AccessControl.AccessControlType]::Allow) { exit 48 }
|
|
172
|
-
if ([int]$rule.FileSystemRights -ne [int][System.Security.AccessControl.FileSystemRights]::FullControl) { exit 49 }
|
|
173
|
-
if ($rule.InheritanceFlags -ne $inheritance) { exit 50 }
|
|
174
|
-
if ($rule.PropagationFlags -ne [System.Security.AccessControl.PropagationFlags]::None) { exit 51 }
|
|
175
|
-
}
|
|
176
|
-
[Console]::Out.Write('A2A_ACL_OK')
|
|
177
|
-
`;
|
|
178
105
|
class BuiltInWindowsCredentialAccessControl {
|
|
179
|
-
#userSid;
|
|
180
106
|
async secure(path, kind) {
|
|
181
|
-
|
|
182
|
-
const sid = await this.#userSid;
|
|
183
|
-
const output = await runExecutable("powershell.exe", [
|
|
184
|
-
"-NoLogo",
|
|
185
|
-
"-NoProfile",
|
|
186
|
-
"-NonInteractive",
|
|
187
|
-
"-Command",
|
|
188
|
-
WINDOWS_ACL_SCRIPT,
|
|
189
|
-
path,
|
|
190
|
-
sid,
|
|
191
|
-
kind,
|
|
192
|
-
]);
|
|
193
|
-
if (output !== "A2A_ACL_OK")
|
|
194
|
-
throw new Error("Windows credential access control failed");
|
|
195
|
-
}
|
|
196
|
-
async #readUserSid() {
|
|
197
|
-
const output = await runExecutable("whoami.exe", ["/user", "/fo", "csv", "/nh"]);
|
|
198
|
-
const match = /^(?:"(?:[^"]|"")*"),"([^"]+)"\r?\n?$/u.exec(output);
|
|
199
|
-
if (match?.[1] === undefined)
|
|
200
|
-
throw new Error("Current Windows identity is unavailable");
|
|
201
|
-
return assertSid(match[1]);
|
|
107
|
+
await secureWindowsArtifact(path, kind);
|
|
202
108
|
}
|
|
203
109
|
}
|
|
204
110
|
export class EncryptedFileCredentialStore {
|
|
@@ -208,6 +114,7 @@ export class EncryptedFileCredentialStore {
|
|
|
208
114
|
#credentialScope;
|
|
209
115
|
#platform;
|
|
210
116
|
#windowsAccessControl;
|
|
117
|
+
#validatePlaintext;
|
|
211
118
|
constructor(path, keyPath, credentialScope, options = {}) {
|
|
212
119
|
if (typeof credentialScope !== "string" || credentialScope.length < 1) {
|
|
213
120
|
throw new Error("The credential scope is invalid");
|
|
@@ -219,6 +126,7 @@ export class EncryptedFileCredentialStore {
|
|
|
219
126
|
throw new Error("The credential key path is invalid");
|
|
220
127
|
}
|
|
221
128
|
this.#credentialScope = credentialScope;
|
|
129
|
+
this.#validatePlaintext = options.validatePlaintext ?? parseCentralCredential;
|
|
222
130
|
this.#platform = options.platform ?? process.platform;
|
|
223
131
|
if (this.#platform === "win32") {
|
|
224
132
|
this.#windowsAccessControl =
|
|
@@ -253,7 +161,7 @@ export class EncryptedFileCredentialStore {
|
|
|
253
161
|
Buffer.byteLength(plaintext, "utf8") > MAX_PLAINTEXT_BYTES) {
|
|
254
162
|
throw new Error("The central credential is invalid");
|
|
255
163
|
}
|
|
256
|
-
|
|
164
|
+
this.#validatePlaintext(plaintext);
|
|
257
165
|
if (savingPaths.has(this.#path))
|
|
258
166
|
throw credentialExists();
|
|
259
167
|
savingPaths.add(this.#path);
|
|
@@ -391,7 +299,7 @@ export class EncryptedFileCredentialStore {
|
|
|
391
299
|
decipher.setAuthTag(envelope.tag);
|
|
392
300
|
decoded = Buffer.concat([decipher.update(envelope.ciphertext), decipher.final()]);
|
|
393
301
|
const plaintext = new TextDecoder("utf-8", { fatal: true }).decode(decoded);
|
|
394
|
-
|
|
302
|
+
this.#validatePlaintext(plaintext);
|
|
395
303
|
return plaintext;
|
|
396
304
|
}
|
|
397
305
|
catch {
|