@solongate/proxy 0.82.19 → 0.82.20
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/dist/index.js +80 -32
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -17029,41 +17029,78 @@ function printWelcome() {
|
|
|
17029
17029
|
console.log("");
|
|
17030
17030
|
}
|
|
17031
17031
|
function printHelp3() {
|
|
17032
|
-
const
|
|
17033
|
-
console.log(
|
|
17034
|
-
|
|
17035
|
-
|
|
17036
|
-
|
|
17037
|
-
|
|
17038
|
-
|
|
17039
|
-
|
|
17040
|
-
|
|
17041
|
-
|
|
17042
|
-
|
|
17043
|
-
|
|
17044
|
-
|
|
17045
|
-
|
|
17046
|
-
|
|
17047
|
-
row("ratelimit", "view and manage rate limits");
|
|
17048
|
-
row("dlp", "view and manage DLP (secret) rules");
|
|
17049
|
-
row("alerts", "view and manage alerts");
|
|
17050
|
-
row("webhooks", "view and manage webhooks");
|
|
17032
|
+
const W = 46;
|
|
17033
|
+
const head = (t) => console.log(`
|
|
17034
|
+
${c.bold}${t}${c.reset}`);
|
|
17035
|
+
const cmd = (syntax, desc = "") => {
|
|
17036
|
+
if (!desc) {
|
|
17037
|
+
console.log(` ${c.cyan}${syntax}${c.reset}`);
|
|
17038
|
+
return;
|
|
17039
|
+
}
|
|
17040
|
+
if (syntax.length <= W) {
|
|
17041
|
+
console.log(` ${c.cyan}${syntax}${c.reset}${" ".repeat(W - syntax.length)}${c.dim}${desc}${c.reset}`);
|
|
17042
|
+
} else {
|
|
17043
|
+
console.log(` ${c.cyan}${syntax}${c.reset}`);
|
|
17044
|
+
console.log(` ${" ".repeat(W)}${c.dim}${desc}${c.reset}`);
|
|
17045
|
+
}
|
|
17046
|
+
};
|
|
17051
17047
|
console.log("");
|
|
17052
|
-
console.log(` ${c.bold}
|
|
17053
|
-
row("audit", "browse the audit log of tool-call decisions");
|
|
17054
|
-
row("stats", "usage statistics");
|
|
17055
|
-
row("watch", "live-tail tool calls as they happen");
|
|
17056
|
-
row("agents", "list agents and sessions");
|
|
17048
|
+
console.log(` ${c.bold}${c.blue4}SolonGate${c.reset} ${c.dim}secure gateway for your AI agents${c.reset} ${c.dim}v${PKG_VERSION}${c.reset}`);
|
|
17057
17049
|
console.log("");
|
|
17058
|
-
console.log(` ${c.
|
|
17059
|
-
|
|
17060
|
-
|
|
17061
|
-
|
|
17062
|
-
|
|
17063
|
-
|
|
17064
|
-
|
|
17050
|
+
console.log(` ${c.dim}Usage:${c.reset} ${c.cyan}solongate${c.reset} ${c.dim}[command]${c.reset} ${c.dim}(no command opens the dataroom: all of this in a terminal UI)${c.reset}`);
|
|
17051
|
+
head("Setup & status");
|
|
17052
|
+
cmd("solongate", "open the dataroom UI (login, policies, audit, settings)");
|
|
17053
|
+
cmd("doctor [--json]", "health check: login, policy, guard, local logs");
|
|
17054
|
+
cmd("create", "scaffold a guarded MCP server in this folder");
|
|
17055
|
+
cmd("logs-server", "serve local audit logs to the dashboard");
|
|
17056
|
+
head("Policies");
|
|
17057
|
+
cmd("policy list", "list all policies");
|
|
17058
|
+
cmd("policy show <id> [--version N]", "show one policy (rules, mode)");
|
|
17059
|
+
cmd("policy rules <id>", "list a policy's rules");
|
|
17060
|
+
cmd("policy allow <id> --tool <p> [--command|--path|--url <val>]", "add an ALLOW rule");
|
|
17061
|
+
cmd("policy revoke <id> <ruleId>", "remove a rule");
|
|
17062
|
+
cmd("policy activate <id> | --clear", "pin / unpin the active policy");
|
|
17063
|
+
cmd("policy rollback <id> <version>", "roll back to a version");
|
|
17064
|
+
cmd("policy versions <id>", "version history");
|
|
17065
|
+
cmd("policy active", "show the resolved active policy");
|
|
17066
|
+
cmd("policy dry-run <id|file.json> [--mode denylist|whitelist]", "replay recent traffic against rules");
|
|
17067
|
+
head("Rate limits");
|
|
17068
|
+
cmd("ratelimit show", "current limits + change history");
|
|
17069
|
+
cmd("ratelimit set --minute N [--hour N] [--day N] [--mode off|detect|block]", "edit limits (unset fields kept)");
|
|
17070
|
+
cmd("ratelimit history", "recent limit changes");
|
|
17071
|
+
head("DLP (secrets)");
|
|
17072
|
+
cmd("dlp show", "current mode + enabled patterns");
|
|
17073
|
+
cmd("dlp mode <off|detect|block>", "set enforcement mode");
|
|
17074
|
+
cmd("dlp enable <pattern>", "enable a built-in pattern");
|
|
17075
|
+
cmd("dlp disable <pattern>", "disable a built-in pattern");
|
|
17076
|
+
cmd("dlp add-custom --name X --re <regex>", "add a custom pattern");
|
|
17077
|
+
cmd("dlp remove-custom <name>", "remove a custom pattern");
|
|
17078
|
+
head("Monitoring");
|
|
17079
|
+
cmd("audit [--filter ALLOW|DENY] [--tool <s>] [--signal dlp|ratelimit] [--limit N]", "browse the audit log");
|
|
17080
|
+
cmd("audit whitelist <logId> [--scope exact|tool]", "turn a denial into an ALLOW rule");
|
|
17081
|
+
cmd("audit block <logId> [--scope exact|tool]", "turn a call into a DENY rule");
|
|
17082
|
+
cmd("stats [timeseries|drift]", "traffic & security statistics");
|
|
17083
|
+
cmd("watch [--filter DENY] [--tool <s>]", "live-tail tool calls (Ctrl+C to stop)");
|
|
17084
|
+
cmd("agents [--all]", "live agent feed");
|
|
17085
|
+
cmd("agent <agent_id>", "one-agent detail");
|
|
17086
|
+
head("Alerts & webhooks");
|
|
17087
|
+
cmd("alerts list");
|
|
17088
|
+
cmd("alerts add --signal deny|dlp|ratelimit|any --threshold N --window S (--email <a> | --telegram <id> | --slack <url>)", "spike alert");
|
|
17089
|
+
cmd("alerts remove <id>");
|
|
17090
|
+
cmd("webhooks list");
|
|
17091
|
+
cmd("webhooks add --url <https://\u2026> [--events denials|allowed|all]", "event webhook");
|
|
17092
|
+
cmd("webhooks remove <id>");
|
|
17093
|
+
head("Keys, MCP & advanced");
|
|
17094
|
+
cmd("keys list", "list API keys (prefix only)");
|
|
17095
|
+
cmd("keys create --name <name>", "create a key (secret shown once)");
|
|
17096
|
+
cmd("keys revoke <id>", "revoke a key");
|
|
17097
|
+
cmd("mcp", "list protected MCP servers");
|
|
17098
|
+
cmd("shield -- <command>", "wrap a command with LLM-path secret redaction");
|
|
17099
|
+
cmd("pull --policy-id <ID> [--file f]", "pull a cloud policy to a local file");
|
|
17100
|
+
cmd("push --policy-id <ID> [--file f]", "push a local policy file to the cloud");
|
|
17065
17101
|
console.log("");
|
|
17066
|
-
console.log(` ${c.dim}
|
|
17102
|
+
console.log(` ${c.dim}Add ${c.reset}${c.cyan}--json${c.reset}${c.dim} to most read commands for machine output.${c.reset}`);
|
|
17103
|
+
console.log(` ${c.dim}Details for a command: ${c.reset}${c.cyan}solongate <command> help${c.reset}${c.dim} \xB7 Dashboard: ${c.reset}${c.cyan}https://dashboard.solongate.com${c.reset}`);
|
|
17067
17104
|
console.log("");
|
|
17068
17105
|
}
|
|
17069
17106
|
async function main4() {
|
|
@@ -17138,6 +17175,17 @@ async function main4() {
|
|
|
17138
17175
|
await Promise.resolve().then(() => (init_pull_push(), pull_push_exports));
|
|
17139
17176
|
return;
|
|
17140
17177
|
}
|
|
17178
|
+
const hasProxySeparator = process.argv.includes("--");
|
|
17179
|
+
const looksLikeProxyFlag = (subcommand ?? "").startsWith("-");
|
|
17180
|
+
if (subcommand && !hasProxySeparator && !looksLikeProxyFlag) {
|
|
17181
|
+
process.stdout.write(`
|
|
17182
|
+
Unknown command: ${subcommand}
|
|
17183
|
+
`);
|
|
17184
|
+
process.stdout.write(` Run \`solongate --help\` to see every command, or \`solongate\` for the dataroom.
|
|
17185
|
+
|
|
17186
|
+
`);
|
|
17187
|
+
process.exit(1);
|
|
17188
|
+
}
|
|
17141
17189
|
try {
|
|
17142
17190
|
const config = parseArgs(process.argv);
|
|
17143
17191
|
const proxy = new SolonGateProxy(config);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solongate/proxy",
|
|
3
|
-
"version": "0.82.
|
|
3
|
+
"version": "0.82.20",
|
|
4
4
|
"description": "AI tool security proxy: protect any AI tool server with customizable policies, path/command constraints, rate limiting, and audit logging. No code changes required.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|