@cyberstrike-io/sdk 1.1.17-beta.5 → 1.1.17-beta.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.
@@ -1515,6 +1515,84 @@ export type ServerConfig = {
1515
1515
  */
1516
1516
  cors?: Array<string>;
1517
1517
  };
1518
+ /**
1519
+ * Route outbound traffic through a proxy
1520
+ */
1521
+ export type ProxyConfig = {
1522
+ /**
1523
+ * Proxy server URL including the scheme, e.g. "http://127.0.0.1:8080". SOCKS ("socks5://...") works ONLY for the crawler browser and only without credentials — replayed requests cannot use a SOCKS proxy, so prefer http for full coverage
1524
+ */
1525
+ url?: string;
1526
+ /**
1527
+ * Turn the proxy off without deleting the config. Defaults to true when `url` is set
1528
+ */
1529
+ enabled?: boolean;
1530
+ /**
1531
+ * Proxy credentials, sent as Basic. Use {env:VAR} to keep the password out of the config file. Not supported with a SOCKS proxy, and NTLM/Negotiate proxies cannot be satisfied — a 407 from those is reported as such rather than retried
1532
+ */
1533
+ auth?: {
1534
+ username: string;
1535
+ password: string;
1536
+ };
1537
+ /**
1538
+ * Hosts that skip the proxy. Accepts a bare host or a "*.example.com" wildcard. Loopback also skips it unless `includeLoopback` says otherwise
1539
+ */
1540
+ bypass?: Array<string>;
1541
+ /**
1542
+ * Send localhost traffic through the proxy too, so a target on 127.0.0.1 can be tested through it. Off by default. This is all-or-nothing — it covers CyberStrike's own local traffic as well, so it only makes sense when the proxy runs on this machine; an external proxy cannot reach back here
1543
+ */
1544
+ includeLoopback?: boolean;
1545
+ /**
1546
+ * Also route CyberStrike's OWN outbound traffic through the proxy — LLM/provider API calls, the OAuth token refreshes that keep them alive, and the rest of its HTTP. Off by default: when on, whoever operates the proxy can read the API keys and tokens in those requests. Traffic aimed at the target is proxied by `url` alone and is not affected by this
1547
+ */
1548
+ includeInternal?: boolean;
1549
+ };
1550
+ export type ClientCertificateConfig = {
1551
+ /**
1552
+ * Host this certificate is used for. Give "host:port" to scope it to one port
1553
+ */
1554
+ host: string;
1555
+ /**
1556
+ * Path to the client certificate (PEM)
1557
+ */
1558
+ certPath?: string;
1559
+ /**
1560
+ * Path to the private key (PEM)
1561
+ */
1562
+ keyPath?: string;
1563
+ /**
1564
+ * Path to a PFX/PKCS#12 bundle, instead of certPath + keyPath
1565
+ */
1566
+ pfxPath?: string;
1567
+ /**
1568
+ * Passphrase for the key or PFX. Use {env:VAR}
1569
+ */
1570
+ passphrase?: string;
1571
+ };
1572
+ /**
1573
+ * TLS trust and client-certificate settings for outbound traffic
1574
+ */
1575
+ export type TlsConfig = {
1576
+ /**
1577
+ * Path to an extra CA certificate to trust (PEM) — e.g. an intercepting proxy's CA. Preferred over turning verification off. Note: this applies to replayed requests; the browser trusts the OS store instead
1578
+ */
1579
+ caPath?: string;
1580
+ /**
1581
+ * Verify TLS certificates for outbound requests. Unset leaves the pentest-friendly default in place: both the crawler and http_replay accept invalid or self-signed certificates, since targets routinely have them and an intercepting proxy always does. Set true for strict checking — note the crawler browser cannot use caPath for that (Chromium trusts the OS store), so an intercepting proxy's CA must be installed there. A per-call insecure_tls still overrides this for that one call
1582
+ */
1583
+ rejectUnauthorized?: boolean;
1584
+ /**
1585
+ * Client certificates for mutual-TLS targets, matched per host. Applies to replayed requests only — the crawler browser cannot use them (Playwright hangs on every page load when they are set), so a mutual-TLS host cannot be crawled
1586
+ */
1587
+ clientCertificates?: Array<ClientCertificateConfig>;
1588
+ };
1589
+ /**
1590
+ * Proxy and TLS settings for outbound traffic (crawler + replay engine)
1591
+ */
1592
+ export type NetworkConfig = {
1593
+ proxy?: ProxyConfig;
1594
+ tls?: TlsConfig;
1595
+ };
1518
1596
  export type PermissionActionConfig = "ask" | "allow" | "deny";
1519
1597
  export type PermissionObjectConfig = {
1520
1598
  [key: string]: PermissionActionConfig;
@@ -1818,6 +1896,7 @@ export type Config = {
1818
1896
  diff_style?: "auto" | "stacked";
1819
1897
  };
1820
1898
  server?: ServerConfig;
1899
+ network?: NetworkConfig;
1821
1900
  /**
1822
1901
  * Command configuration, see https://cyberstrike.io/docs/commands
1823
1902
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@cyberstrike-io/sdk",
4
- "version": "1.1.17-beta.5",
4
+ "version": "1.1.17-beta.7",
5
5
  "type": "module",
6
6
  "license": "AGPL-3.0-only",
7
7
  "scripts": {