Implements Phases 1-8 of the TFTSR implementation plan. Rust backend (Tauri 2.x, src-tauri/): - Multi-provider AI: OpenAI-compatible, Anthropic, Gemini, Mistral, Ollama - PII detection engine: 11 regex patterns with overlap resolution - SQLCipher AES-256 encrypted database with 10 versioned migrations - 28 Tauri IPC commands for triage, analysis, document, and system ops - Ollama: hardware probe, model recommendations, pull/delete with events - RCA and blameless post-mortem Markdown document generators - PDF export via printpdf - Audit log: SHA-256 hash of every external data send - Integration stubs for Confluence, ServiceNow, Azure DevOps (v0.2) Frontend (React 18 + TypeScript + Vite, src/): - 9 pages: full triage workflow NewIssue→LogUpload→Triage→Resolution→RCA→Postmortem→History+Settings - 7 components: ChatWindow, TriageProgress, PiiDiffViewer, DocEditor, HardwareReport, ModelSelector, UI primitives - 3 Zustand stores: session, settings (persisted), history - Type-safe tauriCommands.ts matching Rust backend types exactly - 8 IT domain system prompts (Linux, Windows, Network, K8s, DB, Virt, HW, Obs) DevOps: - .woodpecker/test.yml: rustfmt, clippy, cargo test, tsc, vitest on every push - .woodpecker/release.yml: linux/amd64 + linux/arm64 builds, Gogs release upload Verified: - cargo check: zero errors - tsc --noEmit: zero errors - vitest run: 13/13 unit tests passing Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
86 lines
2.6 KiB
Markdown
86 lines
2.6 KiB
Markdown
# socks
|
|
|
|
## Migrating from v1
|
|
|
|
For the most part, migrating from v1 takes minimal effort as v2 still supports factory creation of proxy connections with callback support.
|
|
|
|
### Notable breaking changes
|
|
|
|
- In an options object, the proxy 'command' is now required and does not default to 'connect'.
|
|
- **In an options object, 'target' is now known as 'destination'.**
|
|
- Sockets are no longer paused after a SOCKS connection is made, so socket.resume() is no longer required. (Please be sure to attach data handlers immediately to the Socket to avoid losing data).
|
|
- In v2, only the 'connect' command is supported via the factory SocksClient.createConnection function. (BIND and ASSOCIATE must be used with a SocksClient instance via event handlers).
|
|
- In v2, the factory SocksClient.createConnection function callback is called with a single object rather than separate socket and info object.
|
|
- A SOCKS http/https agent is no longer bundled into the library.
|
|
|
|
For informational purposes, here is the original getting started example from v1 converted to work with v2.
|
|
|
|
### Before (v1)
|
|
|
|
```javascript
|
|
var Socks = require('socks');
|
|
|
|
var options = {
|
|
proxy: {
|
|
ipaddress: "202.101.228.108",
|
|
port: 1080,
|
|
type: 5
|
|
},
|
|
target: {
|
|
host: "google.com",
|
|
port: 80
|
|
},
|
|
command: 'connect'
|
|
};
|
|
|
|
Socks.createConnection(options, function(err, socket, info) {
|
|
if (err)
|
|
console.log(err);
|
|
else {
|
|
socket.write("GET / HTTP/1.1\nHost: google.com\n\n");
|
|
socket.on('data', function(data) {
|
|
console.log(data.length);
|
|
console.log(data);
|
|
});
|
|
|
|
// PLEASE NOTE: sockets need to be resumed before any data will come in or out as they are paused right before this callback is fired.
|
|
socket.resume();
|
|
|
|
// 569
|
|
// <Buffer 48 54 54 50 2f 31 2e 31 20 33 30 31 20 4d 6f 76 65 64 20 50 65...
|
|
}
|
|
});
|
|
```
|
|
|
|
### After (v2)
|
|
```javascript
|
|
const SocksClient = require('socks').SocksClient;
|
|
|
|
let options = {
|
|
proxy: {
|
|
ipaddress: "202.101.228.108",
|
|
port: 1080,
|
|
type: 5
|
|
},
|
|
destination: {
|
|
host: "google.com",
|
|
port: 80
|
|
},
|
|
command: 'connect'
|
|
};
|
|
|
|
SocksClient.createConnection(options, function(err, result) {
|
|
if (err)
|
|
console.log(err);
|
|
else {
|
|
result.socket.write("GET / HTTP/1.1\nHost: google.com\n\n");
|
|
result.socket.on('data', function(data) {
|
|
console.log(data.length);
|
|
console.log(data);
|
|
});
|
|
|
|
// 569
|
|
// <Buffer 48 54 54 50 2f 31 2e 31 20 33 30 31 20 4d 6f 76 65 64 20 50 65...
|
|
}
|
|
});
|
|
``` |