@ory/argus 1.4.6 → 1.4.7
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.
|
@@ -25,14 +25,14 @@ print, inspect, commit, or place in a prompt:
|
|
|
25
25
|
|
|
26
26
|
- `ORY_USER_OAUTH2_TOKEN`
|
|
27
27
|
- `ANTHROPIC_API_KEY`
|
|
28
|
-
- any
|
|
28
|
+
- any deployment credential value
|
|
29
29
|
- SPIFFE private keys or SVID file contents
|
|
30
30
|
|
|
31
31
|
The user OAuth2 token administers deployments as the signed-in identity. The
|
|
32
32
|
generated `ORY_AGENT_API_KEY` or customer-issued SVID is a separate runtime
|
|
33
|
-
credential. Never exchange their roles.
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
credential. Never exchange their roles. A deployment package is the durable
|
|
34
|
+
registered agent; reuse it across sessions and revoke it only when the user is
|
|
35
|
+
retiring that agent and package.
|
|
36
36
|
|
|
37
37
|
## Prerequisites
|
|
38
38
|
|
|
@@ -146,8 +146,8 @@ to `0.0.0.0`, expose the application port, and define a health check. Ignore
|
|
|
146
146
|
credentials, deployment state, dependencies, build output, and local environment
|
|
147
147
|
files in Git and the Docker context.
|
|
148
148
|
|
|
149
|
-
For Talos, the trusted deployment controller must inject the
|
|
150
|
-
directly into the workload's runtime secret facility without creating
|
|
149
|
+
For Talos, the trusted deployment controller must inject the stdin values
|
|
150
|
+
directly into the workload's runtime secret facility without creating another
|
|
151
151
|
credential file. For SPIFFE, use the file-backed environment contract in
|
|
152
152
|
`examples/spiffe`: mount the parent of the atomically switched `current`
|
|
153
153
|
generation read-only, and point `ORY_AGENT_SPIFFE_GENERATION_PATH` at `current`.
|
|
@@ -214,8 +214,8 @@ explicit owner must equal the authenticated identity.
|
|
|
214
214
|
|
|
215
215
|
## Create and deploy
|
|
216
216
|
|
|
217
|
-
Let the CLI create
|
|
218
|
-
controller:
|
|
217
|
+
Let the CLI create or validate the durable deployment and launch the trusted
|
|
218
|
+
deployment controller for a session:
|
|
219
219
|
|
|
220
220
|
```bash
|
|
221
221
|
ory-agent deployment run \
|
|
@@ -223,22 +223,21 @@ ory-agent deployment run \
|
|
|
223
223
|
-- trusted-deployer --credentials-stdin
|
|
224
224
|
```
|
|
225
225
|
|
|
226
|
-
The CLI
|
|
227
|
-
|
|
228
|
-
deployment-administration credentials from
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
226
|
+
The CLI stores the credential in a protected mode-`0600` file, sends it only to
|
|
227
|
+
the child process's anonymous stdin, and never writes it to public stdout, a
|
|
228
|
+
shell variable, or a log. It strips deployment-administration credentials from
|
|
229
|
+
the child environment. The optional result identifies whether the deployment
|
|
230
|
+
was created or reused. Later invocations validate the same registered agent and
|
|
231
|
+
start another session with the same credential and policy.
|
|
232
232
|
|
|
233
233
|
The trusted controller must load stdin in memory, inject the values into the
|
|
234
234
|
workload secret facility, start and supervise the workload, verify `/healthz`,
|
|
235
235
|
invoke the guarded `/probe`, and exit only when that bounded workload run is
|
|
236
236
|
finished. For a long-running service, the controller must remain its supervisor;
|
|
237
237
|
do not detach and exit while the workload still needs the credential. After a
|
|
238
|
-
successful controller exit, the CLI waits for **Active** and
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
and explicitly revoke it rather than assuming a rerun will recover or reuse it.
|
|
238
|
+
successful controller exit, the CLI waits for **Active** and retains the
|
|
239
|
+
deployment for future sessions. Controller failure also leaves the registered
|
|
240
|
+
agent intact. Use `ory-agent deployment revoke` only to retire the package.
|
|
242
241
|
|
|
243
242
|
## Customer-operated SPIFFE
|
|
244
243
|
|
|
@@ -306,5 +305,5 @@ Report changed files, format/typecheck/test/build results, Docker health,
|
|
|
306
305
|
non-secret deployment ID and status, fixed-query and user-query probe results,
|
|
307
306
|
activation status, and blockers. Never report credentials, environment values,
|
|
308
307
|
authorization headers, or credential-file contents. The trusted controller must
|
|
309
|
-
clean up its bounded workload before exiting; `deployment run` then
|
|
310
|
-
|
|
308
|
+
clean up its bounded workload before exiting; `deployment run` then retains the
|
|
309
|
+
same Agent Security deployment for the next session.
|
|
@@ -16,9 +16,9 @@ Use this playbook to turn the user's intent into a complete, secured deployment:
|
|
|
16
16
|
The user should be able to ask for an agent in product terms. Inspect the repository,
|
|
17
17
|
preserve its package manager and conventions, scaffold the application and controller,
|
|
18
18
|
run validation, and deploy it through the commands below. Ask before overwriting an
|
|
19
|
-
existing application or revoking a deployment
|
|
20
|
-
revoke
|
|
21
|
-
credentials; never fabricate them.
|
|
19
|
+
existing application or revoking a deployment. Reuse the deployment package across
|
|
20
|
+
agent sessions and revoke it only when the user intends to retire that registered
|
|
21
|
+
agent. Ask for missing credentials; never fabricate them.
|
|
22
22
|
|
|
23
23
|
Use `ory-build-agent` for another SDK and `ory-deploy-agent` for the canonical Claude
|
|
24
24
|
Agent SDK Docker/Kubernetes deployment. Use `ory-e2b-sandbox` only when installing an
|
|
@@ -29,7 +29,7 @@ SDK application deployment.
|
|
|
29
29
|
|
|
30
30
|
Keep these components separate:
|
|
31
31
|
|
|
32
|
-
1. The trusted controller holds `E2B_API_KEY`, `OPENAI_API_KEY`, and the
|
|
32
|
+
1. The trusted controller holds `E2B_API_KEY`, `OPENAI_API_KEY`, and the deployment
|
|
33
33
|
deployment values in memory.
|
|
34
34
|
2. The E2B template contains only source and pinned dependencies. It contains no
|
|
35
35
|
credentials and no Agent start command.
|
|
@@ -42,7 +42,7 @@ Never print, inspect, commit, upload, or place in a prompt:
|
|
|
42
42
|
|
|
43
43
|
- `OPENAI_API_KEY` or `E2B_API_KEY`
|
|
44
44
|
- `ORY_AGENT_API_KEY`
|
|
45
|
-
- any
|
|
45
|
+
- any deployment credential value
|
|
46
46
|
- a user OAuth2 token
|
|
47
47
|
|
|
48
48
|
Never inject `ORY_USER_OAUTH2_TOKEN` into E2B. The deployment package is a complete
|
|
@@ -223,8 +223,8 @@ package_recipe_version: v1
|
|
|
223
223
|
credential_method: talos_api_key
|
|
224
224
|
```
|
|
225
225
|
|
|
226
|
-
Review the plan. Then let the CLI create
|
|
227
|
-
trusted E2B controller:
|
|
226
|
+
Review the plan. Then let the CLI create or validate the durable deployment and
|
|
227
|
+
launch the trusted E2B controller for a session:
|
|
228
228
|
|
|
229
229
|
```bash
|
|
230
230
|
ory-agent deployment run \
|
|
@@ -232,15 +232,13 @@ ory-agent deployment run \
|
|
|
232
232
|
-- trusted-e2b-controller --credentials-stdin
|
|
233
233
|
```
|
|
234
234
|
|
|
235
|
-
The CLI
|
|
236
|
-
|
|
237
|
-
deployment-administration credentials from the
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
termination before cleanup can still orphan a deployment, so inventory and
|
|
243
|
-
explicitly revoke it rather than assuming a rerun will recover it.
|
|
235
|
+
The CLI stores the reusable credential in a protected mode-`0600` file and sends
|
|
236
|
+
it only through the child process's anonymous stdin, never public stdout, a shell
|
|
237
|
+
variable, or a log. It strips deployment-administration credentials from the
|
|
238
|
+
child environment. The atomic result records whether the deployment was created
|
|
239
|
+
or reused. `run` waits for **Active** after the controller succeeds and retains
|
|
240
|
+
the registered agent on success or failure so later sessions use the same policy.
|
|
241
|
+
Revoke explicitly only when retiring the deployment package.
|
|
244
242
|
|
|
245
243
|
## Launch through the trusted controller
|
|
246
244
|
|
|
@@ -279,7 +277,7 @@ runtime request. Therefore use this order:
|
|
|
279
277
|
2. Run the fixed guarded probe inside it with command-scoped credentials.
|
|
280
278
|
3. Verify the expected output files exist without dumping process environment.
|
|
281
279
|
4. Run the user's page-generation prompt and validate the static output.
|
|
282
|
-
5. Exit successfully so `ory-agent deployment run` verifies **Active** and
|
|
280
|
+
5. Exit successfully so `ory-agent deployment run` verifies **Active** and retains the deployment for the next session.
|
|
283
281
|
|
|
284
282
|
Start in Agent Security `observe`, review the recorded decision and activity, grant the
|
|
285
283
|
expected tool, deliberately promote policy to `enforce`, and prove an explicit deny keeps
|
package/dist/build-info.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"repo": "ory-agent-plugins",
|
|
3
|
-
"commit": "
|
|
4
|
-
"commitShort": "
|
|
3
|
+
"commit": "d63aedaf130bd1428bd62351c7f1918ec48f5aae",
|
|
4
|
+
"commitShort": "d63aeda",
|
|
5
5
|
"branch": "main",
|
|
6
|
-
"commitDate": "2026-10-
|
|
6
|
+
"commitDate": "2026-10-03T12:37:35-07:00",
|
|
7
7
|
"dirty": false,
|
|
8
|
-
"builtAt": "2026-10-
|
|
8
|
+
"builtAt": "2026-10-03T19:41:09.590Z"
|
|
9
9
|
}
|
package/dist/event-reporter.js
CHANGED
|
@@ -319,10 +319,16 @@ class AgentSecurityEventReporter {
|
|
|
319
319
|
return "retain";
|
|
320
320
|
const controller = new AbortController();
|
|
321
321
|
this.activeRequest = controller;
|
|
322
|
-
const
|
|
323
|
-
?
|
|
324
|
-
:
|
|
325
|
-
const
|
|
322
|
+
const flushRemaining = this.flushDeadline === undefined
|
|
323
|
+
? undefined
|
|
324
|
+
: this.flushDeadline - Date.now();
|
|
325
|
+
const expiresWithFlush = flushRemaining !== undefined && flushRemaining <= this.requestTimeoutMs;
|
|
326
|
+
const remaining = Math.max(1, Math.min(this.requestTimeoutMs, flushRemaining ?? this.requestTimeoutMs));
|
|
327
|
+
const timeout = setTimeout(() => {
|
|
328
|
+
if (expiresWithFlush)
|
|
329
|
+
this.flushExpired = true;
|
|
330
|
+
controller.abort();
|
|
331
|
+
}, remaining);
|
|
326
332
|
timeout.unref?.();
|
|
327
333
|
try {
|
|
328
334
|
const url = `${this.options.agentSecurityUrl.replace(/\/+$/, "")}/agent-security/v1/events:record`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ory/argus",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.7",
|
|
4
4
|
"description": "Ory Argus: the core API for building authentication, authorization, and audit into AI agent harness plugins, extensions, and custom integrations",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"homepage": "https://ory.com",
|