@getaegis/cli 0.8.0 → 0.8.1
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 +5 -0
- package/dist/agent/agent.d.ts +98 -0
- package/dist/agent/agent.d.ts.map +1 -0
- package/dist/agent/agent.js +212 -0
- package/dist/agent/agent.js.map +1 -0
- package/dist/agent/index.d.ts +3 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +2 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/cli/auth.d.ts +19 -0
- package/dist/cli/auth.d.ts.map +1 -0
- package/dist/cli/auth.js +44 -0
- package/dist/cli/auth.js.map +1 -0
- package/dist/cli/commands/agent.d.ts +6 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +241 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/config.d.ts +6 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +125 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/dashboard.d.ts +6 -0
- package/dist/cli/commands/dashboard.d.ts.map +1 -0
- package/dist/cli/commands/dashboard.js +189 -0
- package/dist/cli/commands/dashboard.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +6 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +39 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/gate.d.ts +6 -0
- package/dist/cli/commands/gate.d.ts.map +1 -0
- package/dist/cli/commands/gate.js +196 -0
- package/dist/cli/commands/gate.js.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +109 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/ledger.d.ts +6 -0
- package/dist/cli/commands/ledger.d.ts.map +1 -0
- package/dist/cli/commands/ledger.js +140 -0
- package/dist/cli/commands/ledger.js.map +1 -0
- package/dist/cli/commands/mcp.d.ts +6 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +224 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/policy.d.ts +6 -0
- package/dist/cli/commands/policy.d.ts.map +1 -0
- package/dist/cli/commands/policy.js +126 -0
- package/dist/cli/commands/policy.js.map +1 -0
- package/dist/cli/commands/user.d.ts +6 -0
- package/dist/cli/commands/user.d.ts.map +1 -0
- package/dist/cli/commands/user.js +150 -0
- package/dist/cli/commands/user.js.map +1 -0
- package/dist/cli/commands/vault-manager.d.ts +6 -0
- package/dist/cli/commands/vault-manager.d.ts.map +1 -0
- package/dist/cli/commands/vault-manager.js +240 -0
- package/dist/cli/commands/vault-manager.js.map +1 -0
- package/dist/cli/commands/vault.d.ts +6 -0
- package/dist/cli/commands/vault.d.ts.map +1 -0
- package/dist/cli/commands/vault.js +241 -0
- package/dist/cli/commands/vault.js.map +1 -0
- package/dist/cli/commands/webhook.d.ts +6 -0
- package/dist/cli/commands/webhook.d.ts.map +1 -0
- package/dist/cli/commands/webhook.js +151 -0
- package/dist/cli/commands/webhook.js.map +1 -0
- package/dist/cli/helpers.d.ts +12 -0
- package/dist/cli/helpers.d.ts.map +1 -0
- package/dist/cli/helpers.js +61 -0
- package/dist/cli/helpers.js.map +1 -0
- package/dist/cli/index.d.ts +17 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +17 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/validation.d.ts +37 -0
- package/dist/cli/validation.d.ts.map +1 -0
- package/dist/cli/validation.js +104 -0
- package/dist/cli/validation.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +30 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +108 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +355 -0
- package/dist/config.js.map +1 -0
- package/dist/dashboard/dashboard-server.d.ts +95 -0
- package/dist/dashboard/dashboard-server.d.ts.map +1 -0
- package/dist/dashboard/dashboard-server.js +329 -0
- package/dist/dashboard/dashboard-server.js.map +1 -0
- package/dist/dashboard/index.d.ts +3 -0
- package/dist/dashboard/index.d.ts.map +1 -0
- package/dist/dashboard/index.js +2 -0
- package/dist/dashboard/index.js.map +1 -0
- package/dist/dashboard/public/assets/index-CpMruPNh.css +1 -0
- package/dist/dashboard/public/assets/index-DkHiw9_f.js +148 -0
- package/dist/dashboard/public/favicon.svg +6 -0
- package/dist/dashboard/public/index.html +14 -0
- package/dist/db.d.ts +15 -0
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +190 -0
- package/dist/db.js.map +1 -0
- package/dist/doctor.d.ts +37 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +196 -0
- package/dist/doctor.js.map +1 -0
- package/dist/gate/body-inspector.d.ts +31 -0
- package/dist/gate/body-inspector.d.ts.map +1 -0
- package/dist/gate/body-inspector.js +193 -0
- package/dist/gate/body-inspector.js.map +1 -0
- package/dist/gate/gate.d.ts +168 -0
- package/dist/gate/gate.d.ts.map +1 -0
- package/dist/gate/gate.js +1016 -0
- package/dist/gate/gate.js.map +1 -0
- package/dist/gate/index.d.ts +7 -0
- package/dist/gate/index.d.ts.map +1 -0
- package/dist/gate/index.js +4 -0
- package/dist/gate/index.js.map +1 -0
- package/dist/gate/rate-limiter.d.ts +59 -0
- package/dist/gate/rate-limiter.d.ts.map +1 -0
- package/dist/gate/rate-limiter.js +120 -0
- package/dist/gate/rate-limiter.js.map +1 -0
- package/dist/index.d.ts +26 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/ledger/index.d.ts +3 -0
- package/dist/ledger/index.d.ts.map +1 -0
- package/dist/ledger/index.js +2 -0
- package/dist/ledger/index.js.map +1 -0
- package/dist/ledger/ledger.d.ts +98 -0
- package/dist/ledger/ledger.d.ts.map +1 -0
- package/dist/ledger/ledger.js +145 -0
- package/dist/ledger/ledger.js.map +1 -0
- package/dist/logger/index.d.ts +3 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +2 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/logger.d.ts +58 -0
- package/dist/logger/logger.d.ts.map +1 -0
- package/dist/logger/logger.js +201 -0
- package/dist/logger/logger.js.map +1 -0
- package/dist/mcp/index.d.ts +3 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +2 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/mcp-server.d.ts +130 -0
- package/dist/mcp/mcp-server.d.ts.map +1 -0
- package/dist/mcp/mcp-server.js +775 -0
- package/dist/mcp/mcp-server.js.map +1 -0
- package/dist/metrics/index.d.ts +3 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +2 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/metrics.d.ts +88 -0
- package/dist/metrics/metrics.d.ts.map +1 -0
- package/dist/metrics/metrics.js +179 -0
- package/dist/metrics/metrics.js.map +1 -0
- package/dist/policy/index.d.ts +3 -0
- package/dist/policy/index.d.ts.map +1 -0
- package/dist/policy/index.js +2 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/policy.d.ts +119 -0
- package/dist/policy/policy.d.ts.map +1 -0
- package/dist/policy/policy.js +426 -0
- package/dist/policy/policy.js.map +1 -0
- package/dist/user/index.d.ts +3 -0
- package/dist/user/index.d.ts.map +1 -0
- package/dist/user/index.js +2 -0
- package/dist/user/index.js.map +1 -0
- package/dist/user/user.d.ts +102 -0
- package/dist/user/user.d.ts.map +1 -0
- package/dist/user/user.js +216 -0
- package/dist/user/user.js.map +1 -0
- package/dist/vault/crypto.d.ts +28 -0
- package/dist/vault/crypto.d.ts.map +1 -0
- package/dist/vault/crypto.js +44 -0
- package/dist/vault/crypto.js.map +1 -0
- package/dist/vault/index.d.ts +10 -0
- package/dist/vault/index.d.ts.map +1 -0
- package/dist/vault/index.js +6 -0
- package/dist/vault/index.js.map +1 -0
- package/dist/vault/seal.d.ts +68 -0
- package/dist/vault/seal.d.ts.map +1 -0
- package/dist/vault/seal.js +110 -0
- package/dist/vault/seal.js.map +1 -0
- package/dist/vault/shamir.d.ts +33 -0
- package/dist/vault/shamir.d.ts.map +1 -0
- package/dist/vault/shamir.js +174 -0
- package/dist/vault/shamir.js.map +1 -0
- package/dist/vault/vault-manager.d.ts +62 -0
- package/dist/vault/vault-manager.d.ts.map +1 -0
- package/dist/vault/vault-manager.js +141 -0
- package/dist/vault/vault-manager.js.map +1 -0
- package/dist/vault/vault.d.ts +104 -0
- package/dist/vault/vault.d.ts.map +1 -0
- package/dist/vault/vault.js +259 -0
- package/dist/vault/vault.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +18 -0
- package/dist/version.js.map +1 -0
- package/dist/webhook/index.d.ts +3 -0
- package/dist/webhook/index.d.ts.map +1 -0
- package/dist/webhook/index.js +2 -0
- package/dist/webhook/index.js.map +1 -0
- package/dist/webhook/webhook.d.ts +114 -0
- package/dist/webhook/webhook.d.ts.map +1 -0
- package/dist/webhook/webhook.js +269 -0
- package/dist/webhook/webhook.js.map +1 -0
- package/package.json +7 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/mcp/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aegis Metrics — Prometheus instrumentation via prom-client.
|
|
3
|
+
*
|
|
4
|
+
* Provides counters, histograms, and gauges for all Aegis request activity.
|
|
5
|
+
* Metrics are exposed via a `/metrics` endpoint on the Gate server and are
|
|
6
|
+
* compatible with Prometheus scraping and Grafana dashboards.
|
|
7
|
+
*
|
|
8
|
+
* Design:
|
|
9
|
+
* - Single shared `Registry` so Gate and MCP can share the same counters
|
|
10
|
+
* - Callers use the helper functions (`recordRequest`, `recordBlocked`, etc.)
|
|
11
|
+
* rather than touching prom-client directly
|
|
12
|
+
* - `collectCredentialGauges()` is called on each `/metrics` scrape to snapshot
|
|
13
|
+
* credential inventory from the Vault (it's a pull-model gauge, not push)
|
|
14
|
+
* - All metric names use the `aegis_` prefix per Prometheus naming conventions
|
|
15
|
+
*/
|
|
16
|
+
import { Counter, Gauge, Histogram, type Registry } from 'prom-client';
|
|
17
|
+
import type { Vault } from '../vault/index.js';
|
|
18
|
+
export interface MetricsOptions {
|
|
19
|
+
/** Custom prom-client registry (default: global). Useful for tests. */
|
|
20
|
+
registry?: Registry;
|
|
21
|
+
/** Vault instance — needed for credential gauge collection. */
|
|
22
|
+
vault?: Vault;
|
|
23
|
+
/** Default labels applied to every metric (e.g. `{ instance: 'prod-1' }`). */
|
|
24
|
+
defaultLabels?: Record<string, string>;
|
|
25
|
+
}
|
|
26
|
+
export type BlockReason = 'no_credential' | 'credential_expired' | 'credential_scope' | 'agent_auth_missing' | 'agent_auth_invalid' | 'agent_scope' | 'policy_violation' | 'policy_rate_limit' | 'agent_rate_limit' | 'credential_rate_limit' | 'domain_guard' | 'body_inspection';
|
|
27
|
+
/**
|
|
28
|
+
* Central metrics collector for Aegis.
|
|
29
|
+
*
|
|
30
|
+
* Usage:
|
|
31
|
+
* ```ts
|
|
32
|
+
* const metrics = new AegisMetrics({ vault });
|
|
33
|
+
* // On every proxied request:
|
|
34
|
+
* metrics.recordRequest('slack', 'GET', 200, 'my-agent');
|
|
35
|
+
* // On every blocked request:
|
|
36
|
+
* metrics.recordBlocked('slack', 'domain_guard', 'my-agent');
|
|
37
|
+
* // Duration is measured with a timer:
|
|
38
|
+
* const end = metrics.startRequestTimer('slack');
|
|
39
|
+
* // ...do work...
|
|
40
|
+
* end(); // records duration
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare class AegisMetrics {
|
|
44
|
+
readonly registry: Registry;
|
|
45
|
+
private vault?;
|
|
46
|
+
/** Total requests processed (allowed through to upstream). */
|
|
47
|
+
readonly requestsTotal: Counter;
|
|
48
|
+
/** Total requests blocked before reaching upstream. */
|
|
49
|
+
readonly requestsBlockedTotal: Counter;
|
|
50
|
+
/** Request duration in seconds (only for successful proxied requests). */
|
|
51
|
+
readonly requestDuration: Histogram;
|
|
52
|
+
/** Credential inventory by status. */
|
|
53
|
+
readonly credentialsTotal: Gauge;
|
|
54
|
+
constructor(options?: MetricsOptions);
|
|
55
|
+
/**
|
|
56
|
+
* Record a successfully proxied request.
|
|
57
|
+
*/
|
|
58
|
+
recordRequest(service: string, method: string, status: number, agent?: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Record a blocked request.
|
|
61
|
+
*/
|
|
62
|
+
recordBlocked(service: string, reason: BlockReason, agent?: string): void;
|
|
63
|
+
/**
|
|
64
|
+
* Start a request duration timer. Call the returned function when the request completes.
|
|
65
|
+
*
|
|
66
|
+
* @returns A stop function that records the elapsed time.
|
|
67
|
+
*/
|
|
68
|
+
startRequestTimer(service: string): () => void;
|
|
69
|
+
/**
|
|
70
|
+
* Snapshot credential inventory from the Vault and update gauge values.
|
|
71
|
+
* Called automatically on each `/metrics` scrape via the gauge's collect callback.
|
|
72
|
+
*/
|
|
73
|
+
private collectCredentialGauges;
|
|
74
|
+
/**
|
|
75
|
+
* Return the Prometheus-formatted metrics string for scraping.
|
|
76
|
+
* Used by the `/_aegis/metrics` endpoint handler.
|
|
77
|
+
*/
|
|
78
|
+
getMetricsOutput(): Promise<string>;
|
|
79
|
+
/**
|
|
80
|
+
* Return the content-type header for the metrics response.
|
|
81
|
+
*/
|
|
82
|
+
getContentType(): string;
|
|
83
|
+
/**
|
|
84
|
+
* Reset all metrics. Useful for tests.
|
|
85
|
+
*/
|
|
86
|
+
reset(): void;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/metrics/metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,KAAK,EAA8B,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI/C,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,8EAA8E;IAC9E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,WAAW,GACnB,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,oBAAoB,GACpB,oBAAoB,GACpB,aAAa,GACb,kBAAkB,GAClB,mBAAmB,GACnB,kBAAkB,GAClB,uBAAuB,GACvB,cAAc,GACd,iBAAiB,CAAC;AAItB;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,CAAQ;IAGtB,8DAA8D;IAC9D,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,uDAAuD;IACvD,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAC;IAGvC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IAGpC,sCAAsC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,KAAK,CAAC;gBAErB,OAAO,GAAE,cAAmB;IAoDxC;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IASpF;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAQzE;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI;IAM9C;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAkC/B;;;OAGG;IACG,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIzC;;OAEG;IACH,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aegis Metrics — Prometheus instrumentation via prom-client.
|
|
3
|
+
*
|
|
4
|
+
* Provides counters, histograms, and gauges for all Aegis request activity.
|
|
5
|
+
* Metrics are exposed via a `/metrics` endpoint on the Gate server and are
|
|
6
|
+
* compatible with Prometheus scraping and Grafana dashboards.
|
|
7
|
+
*
|
|
8
|
+
* Design:
|
|
9
|
+
* - Single shared `Registry` so Gate and MCP can share the same counters
|
|
10
|
+
* - Callers use the helper functions (`recordRequest`, `recordBlocked`, etc.)
|
|
11
|
+
* rather than touching prom-client directly
|
|
12
|
+
* - `collectCredentialGauges()` is called on each `/metrics` scrape to snapshot
|
|
13
|
+
* credential inventory from the Vault (it's a pull-model gauge, not push)
|
|
14
|
+
* - All metric names use the `aegis_` prefix per Prometheus naming conventions
|
|
15
|
+
*/
|
|
16
|
+
import { Counter, Gauge, register as globalRegister, Histogram } from 'prom-client';
|
|
17
|
+
// ─── AegisMetrics ────────────────────────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Central metrics collector for Aegis.
|
|
20
|
+
*
|
|
21
|
+
* Usage:
|
|
22
|
+
* ```ts
|
|
23
|
+
* const metrics = new AegisMetrics({ vault });
|
|
24
|
+
* // On every proxied request:
|
|
25
|
+
* metrics.recordRequest('slack', 'GET', 200, 'my-agent');
|
|
26
|
+
* // On every blocked request:
|
|
27
|
+
* metrics.recordBlocked('slack', 'domain_guard', 'my-agent');
|
|
28
|
+
* // Duration is measured with a timer:
|
|
29
|
+
* const end = metrics.startRequestTimer('slack');
|
|
30
|
+
* // ...do work...
|
|
31
|
+
* end(); // records duration
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export class AegisMetrics {
|
|
35
|
+
registry;
|
|
36
|
+
vault;
|
|
37
|
+
// ─── Counters ────────────────────────────────────────────────
|
|
38
|
+
/** Total requests processed (allowed through to upstream). */
|
|
39
|
+
requestsTotal;
|
|
40
|
+
/** Total requests blocked before reaching upstream. */
|
|
41
|
+
requestsBlockedTotal;
|
|
42
|
+
// ─── Histogram ───────────────────────────────────────────────
|
|
43
|
+
/** Request duration in seconds (only for successful proxied requests). */
|
|
44
|
+
requestDuration;
|
|
45
|
+
// ─── Gauges ──────────────────────────────────────────────────
|
|
46
|
+
/** Credential inventory by status. */
|
|
47
|
+
credentialsTotal;
|
|
48
|
+
constructor(options = {}) {
|
|
49
|
+
this.registry = options.registry ?? globalRegister;
|
|
50
|
+
this.vault = options.vault;
|
|
51
|
+
if (options.defaultLabels) {
|
|
52
|
+
this.registry.setDefaultLabels(options.defaultLabels);
|
|
53
|
+
}
|
|
54
|
+
// ── Counters ──────────────────────────────────────────────
|
|
55
|
+
this.requestsTotal = new Counter({
|
|
56
|
+
name: 'aegis_requests_total',
|
|
57
|
+
help: 'Total requests proxied through Aegis (allowed)',
|
|
58
|
+
labelNames: ['service', 'method', 'status', 'agent'],
|
|
59
|
+
registers: [this.registry],
|
|
60
|
+
});
|
|
61
|
+
this.requestsBlockedTotal = new Counter({
|
|
62
|
+
name: 'aegis_requests_blocked_total',
|
|
63
|
+
help: 'Total requests blocked by Aegis',
|
|
64
|
+
labelNames: ['service', 'reason', 'agent'],
|
|
65
|
+
registers: [this.registry],
|
|
66
|
+
});
|
|
67
|
+
// ── Histogram ─────────────────────────────────────────────
|
|
68
|
+
this.requestDuration = new Histogram({
|
|
69
|
+
name: 'aegis_request_duration_seconds',
|
|
70
|
+
help: 'Duration of proxied requests in seconds',
|
|
71
|
+
labelNames: ['service'],
|
|
72
|
+
// Bucket boundaries (seconds): 5ms → 30s, web-API-appropriate
|
|
73
|
+
buckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10, 30],
|
|
74
|
+
registers: [this.registry],
|
|
75
|
+
});
|
|
76
|
+
// ── Gauges ─────────────────────────────────────────────────
|
|
77
|
+
this.credentialsTotal = new Gauge({
|
|
78
|
+
name: 'aegis_credentials_total',
|
|
79
|
+
help: 'Number of credentials by status',
|
|
80
|
+
labelNames: ['status'],
|
|
81
|
+
registers: [this.registry],
|
|
82
|
+
// Collect callback — called on every scrape
|
|
83
|
+
...(this.vault
|
|
84
|
+
? {
|
|
85
|
+
collect: () => {
|
|
86
|
+
this.collectCredentialGauges();
|
|
87
|
+
},
|
|
88
|
+
}
|
|
89
|
+
: {}),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
// ─── Recording helpers ─────────────────────────────────────────
|
|
93
|
+
/**
|
|
94
|
+
* Record a successfully proxied request.
|
|
95
|
+
*/
|
|
96
|
+
recordRequest(service, method, status, agent) {
|
|
97
|
+
this.requestsTotal.inc({
|
|
98
|
+
service,
|
|
99
|
+
method,
|
|
100
|
+
status: String(status),
|
|
101
|
+
agent: agent ?? '',
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Record a blocked request.
|
|
106
|
+
*/
|
|
107
|
+
recordBlocked(service, reason, agent) {
|
|
108
|
+
this.requestsBlockedTotal.inc({
|
|
109
|
+
service,
|
|
110
|
+
reason,
|
|
111
|
+
agent: agent ?? '',
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Start a request duration timer. Call the returned function when the request completes.
|
|
116
|
+
*
|
|
117
|
+
* @returns A stop function that records the elapsed time.
|
|
118
|
+
*/
|
|
119
|
+
startRequestTimer(service) {
|
|
120
|
+
return this.requestDuration.startTimer({ service });
|
|
121
|
+
}
|
|
122
|
+
// ─── Credential gauge collection ──────────────────────────────
|
|
123
|
+
/**
|
|
124
|
+
* Snapshot credential inventory from the Vault and update gauge values.
|
|
125
|
+
* Called automatically on each `/metrics` scrape via the gauge's collect callback.
|
|
126
|
+
*/
|
|
127
|
+
collectCredentialGauges() {
|
|
128
|
+
if (!this.vault)
|
|
129
|
+
return;
|
|
130
|
+
const credentials = this.vault.list();
|
|
131
|
+
const now = new Date();
|
|
132
|
+
const sevenDaysMs = 7 * 24 * 60 * 60 * 1000;
|
|
133
|
+
let active = 0;
|
|
134
|
+
let expired = 0;
|
|
135
|
+
let expiringSoon = 0;
|
|
136
|
+
for (const cred of credentials) {
|
|
137
|
+
if (cred.expiresAt) {
|
|
138
|
+
const expiryDate = new Date(cred.expiresAt);
|
|
139
|
+
if (expiryDate <= now) {
|
|
140
|
+
expired++;
|
|
141
|
+
}
|
|
142
|
+
else if (expiryDate.getTime() - now.getTime() <= sevenDaysMs) {
|
|
143
|
+
expiringSoon++;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
active++;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
// No expiry = always active
|
|
151
|
+
active++;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
this.credentialsTotal.set({ status: 'active' }, active);
|
|
155
|
+
this.credentialsTotal.set({ status: 'expired' }, expired);
|
|
156
|
+
this.credentialsTotal.set({ status: 'expiring_soon' }, expiringSoon);
|
|
157
|
+
}
|
|
158
|
+
// ─── Scrape endpoint ──────────────────────────────────────────
|
|
159
|
+
/**
|
|
160
|
+
* Return the Prometheus-formatted metrics string for scraping.
|
|
161
|
+
* Used by the `/_aegis/metrics` endpoint handler.
|
|
162
|
+
*/
|
|
163
|
+
async getMetricsOutput() {
|
|
164
|
+
return this.registry.metrics();
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Return the content-type header for the metrics response.
|
|
168
|
+
*/
|
|
169
|
+
getContentType() {
|
|
170
|
+
return this.registry.contentType;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Reset all metrics. Useful for tests.
|
|
174
|
+
*/
|
|
175
|
+
reset() {
|
|
176
|
+
this.registry.resetMetrics();
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../src/metrics/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type { HttpMethod, Policy, PolicyEvaluation, PolicyRequest, PolicyRule, PolicyValidationError, PolicyValidationResult, TimeWindow, } from './policy.js';
|
|
2
|
+
export { buildPolicyMap, evaluatePolicy, loadPoliciesFromDirectory, loadPolicyFile, parsePolicy, } from './policy.js';
|
|
3
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,sBAAsB,EACtB,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,cAAc,EACd,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,WAAW,GACZ,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allowed HTTP methods in a policy rule.
|
|
3
|
+
*/
|
|
4
|
+
export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
|
|
5
|
+
/**
|
|
6
|
+
* A time window restricting when a rule is active.
|
|
7
|
+
*/
|
|
8
|
+
export interface TimeWindow {
|
|
9
|
+
/** Start time in HH:MM 24-hour format */
|
|
10
|
+
start: string;
|
|
11
|
+
/** End time in HH:MM 24-hour format */
|
|
12
|
+
end: string;
|
|
13
|
+
/** IANA timezone (e.g. "UTC", "America/New_York"). Defaults to "UTC". */
|
|
14
|
+
timezone: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* A single policy rule — defines what an agent can do with a specific service.
|
|
18
|
+
*/
|
|
19
|
+
export interface PolicyRule {
|
|
20
|
+
/** The service name this rule applies to (must match a credential's service) */
|
|
21
|
+
service: string;
|
|
22
|
+
/** Allowed HTTP methods. If omitted, all methods are allowed. */
|
|
23
|
+
methods?: HttpMethod[];
|
|
24
|
+
/** Allowed path patterns (regex strings). If omitted, all paths are allowed. */
|
|
25
|
+
paths?: string[];
|
|
26
|
+
/** Rate limit for this rule (e.g. "100/hour", "50/min"). Overrides credential-level limit. */
|
|
27
|
+
rateLimit?: string;
|
|
28
|
+
/** Optional time window restricting when this rule is active */
|
|
29
|
+
timeWindow?: TimeWindow;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* A complete policy — binds an agent name to a set of rules.
|
|
33
|
+
*/
|
|
34
|
+
export interface Policy {
|
|
35
|
+
/** The agent name this policy applies to */
|
|
36
|
+
agent: string;
|
|
37
|
+
/** The set of rules defining what this agent can do */
|
|
38
|
+
rules: PolicyRule[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A validation error found when parsing or validating a policy file.
|
|
42
|
+
*/
|
|
43
|
+
export interface PolicyValidationError {
|
|
44
|
+
/** The file path (if loaded from a file) */
|
|
45
|
+
file?: string;
|
|
46
|
+
/** Human-readable description of the error */
|
|
47
|
+
message: string;
|
|
48
|
+
/** The path to the offending field (e.g. "rules[0].methods[2]") */
|
|
49
|
+
path?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Result of validating a policy (or set of policies).
|
|
53
|
+
*/
|
|
54
|
+
export interface PolicyValidationResult {
|
|
55
|
+
valid: boolean;
|
|
56
|
+
errors: PolicyValidationError[];
|
|
57
|
+
/** The parsed policy, if valid */
|
|
58
|
+
policy?: Policy;
|
|
59
|
+
/** The source file path, if loaded from a file */
|
|
60
|
+
filePath?: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Parse and validate a raw YAML string into a Policy.
|
|
64
|
+
* Returns a validation result with errors (if any) and the parsed policy (if valid).
|
|
65
|
+
*/
|
|
66
|
+
export declare function parsePolicy(yamlContent: string, filePath?: string): PolicyValidationResult;
|
|
67
|
+
/**
|
|
68
|
+
* Load and validate a single policy file from disk.
|
|
69
|
+
*/
|
|
70
|
+
export declare function loadPolicyFile(filePath: string): PolicyValidationResult;
|
|
71
|
+
/**
|
|
72
|
+
* Load all policy files from a directory (*.yaml and *.yml).
|
|
73
|
+
* Returns an array of validation results, one per file.
|
|
74
|
+
*/
|
|
75
|
+
export declare function loadPoliciesFromDirectory(dirPath: string): PolicyValidationResult[];
|
|
76
|
+
/**
|
|
77
|
+
* Build a map of agent name → Policy from a set of validation results.
|
|
78
|
+
* Only includes valid policies.
|
|
79
|
+
*/
|
|
80
|
+
export declare function buildPolicyMap(results: PolicyValidationResult[]): Map<string, Policy>;
|
|
81
|
+
/**
|
|
82
|
+
* The result of evaluating a request against a policy.
|
|
83
|
+
*/
|
|
84
|
+
export interface PolicyEvaluation {
|
|
85
|
+
/** Whether the request is allowed by the policy */
|
|
86
|
+
allowed: boolean;
|
|
87
|
+
/** The specific rule that matched (if any) */
|
|
88
|
+
matchedRule?: PolicyRule;
|
|
89
|
+
/** If denied, the reason for the denial */
|
|
90
|
+
reason?: string;
|
|
91
|
+
/** The specific constraint that was violated (method, path, time_window, no_matching_rule) */
|
|
92
|
+
violation?: 'method' | 'path' | 'time_window' | 'no_matching_rule';
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* A request context to evaluate against a policy.
|
|
96
|
+
*/
|
|
97
|
+
export interface PolicyRequest {
|
|
98
|
+
/** The service being accessed */
|
|
99
|
+
service: string;
|
|
100
|
+
/** The HTTP method */
|
|
101
|
+
method: string;
|
|
102
|
+
/** The request path (the part after /{service}/) */
|
|
103
|
+
path: string;
|
|
104
|
+
/** The current time — injectable for testing (defaults to new Date()) */
|
|
105
|
+
now?: Date;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Evaluate a request against a policy.
|
|
109
|
+
*
|
|
110
|
+
* Rules are matched by service name. If no rule matches the service,
|
|
111
|
+
* the request is denied. If a rule matches, method and path constraints
|
|
112
|
+
* are checked. If multiple rules match the same service, the request is
|
|
113
|
+
* allowed if ANY rule permits it.
|
|
114
|
+
*
|
|
115
|
+
* Returns an evaluation result indicating whether the request is allowed
|
|
116
|
+
* and, if not, why.
|
|
117
|
+
*/
|
|
118
|
+
export declare function evaluatePolicy(policy: Policy, request: PolicyRequest): PolicyEvaluation;
|
|
119
|
+
//# sourceMappingURL=policy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/policy/policy.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAY1F;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,gFAAgF;IAChF,OAAO,EAAE,MAAM,CAAC;IAChB,iEAAiE;IACjE,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IACvB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAyID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,sBAAsB,CAuG1F;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CAcvE;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,sBAAsB,EAAE,CAuDnF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAQrF;AAID;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,SAAS,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,aAAa,GAAG,kBAAkB,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAoCD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,gBAAgB,CAsEvF"}
|