Skip to content

Commit f90471d

Browse files
committed
feat: add 10 advanced features and custom branding
Custom icon: - SQL injection syringe icon generated for all platforms - macOS (icns), Windows (ico), iOS, Android formats Auto-update: - tauri-plugin-updater configured with GitHub Releases endpoint - Green badge in header when new version available Theme toggle: - Light/dark mode with sun/moon button in header - Full CSS variables for both themes, persisted in localStorage Interactive stdin: - Input bar at terminal bottom when scan is running - Send responses to sqlmap prompts (Y/n, etc.) in real time Findings panel: - New "Findings" tab parsing VULN/INFO from sqlmap output - Cards with parameter, injection type, title, and payload - Export findings as Burp-compatible XML SQLite persistence: - Migrated history and profiles from localStorage to SQLite - tauri-plugin-sql with automatic migrations - Data survives browser cache clears Multi-platform CI: - scripts/build-sidecar.sh for platform-specific sidecar builds - GitHub Actions workflow for macOS, Linux, Windows Keyboard shortcuts: - Cmd+R run, Cmd+. stop, Cmd+T new tab, Cmd+W close tab - Cmd+F search, Escape close modals Drag & drop: - Drop .txt files to open batch scan with URLs - Drop .req/.http files to import raw requests - Visual overlay during drag Burp Suite integration: - Import Burp XML exports in the import modal - Auto-detect XML vs raw request format - Export findings as XML from Findings panel
1 parent 29775dd commit f90471d

65 files changed

Lines changed: 1785 additions & 34 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
name: Build & Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
build-sidecar:
10+
strategy:
11+
matrix:
12+
include:
13+
- os: macos-latest
14+
target: aarch64-apple-darwin
15+
- os: macos-13
16+
target: x86_64-apple-darwin
17+
- os: ubuntu-22.04
18+
target: x86_64-unknown-linux-gnu
19+
- os: windows-latest
20+
target: x86_64-pc-windows-msvc
21+
runs-on: ${{ matrix.os }}
22+
steps:
23+
- uses: actions/checkout@v4
24+
25+
- uses: actions/setup-python@v5
26+
with:
27+
python-version: '3.10'
28+
29+
- name: Clone sqlmap
30+
run: git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap
31+
working-directory: ..
32+
33+
- name: Copy build files to sqlmap
34+
run: |
35+
cp ../sqlmap-bundle.py ../sqlmap/ 2>/dev/null || true
36+
cp ../sqlmap-bundle.spec ../sqlmap/ 2>/dev/null || true
37+
shell: bash
38+
39+
- name: Install PyInstaller
40+
run: pip install pyinstaller
41+
42+
- name: Build sidecar
43+
run: bash scripts/build-sidecar.sh
44+
45+
- uses: actions/upload-artifact@v4
46+
with:
47+
name: sidecar-${{ matrix.target }}
48+
path: src-tauri/binaries/sqlmap-sidecar-*
49+
50+
build-app:
51+
needs: build-sidecar
52+
strategy:
53+
matrix:
54+
include:
55+
- os: macos-latest
56+
target: aarch64-apple-darwin
57+
- os: macos-13
58+
target: x86_64-apple-darwin
59+
- os: ubuntu-22.04
60+
target: x86_64-unknown-linux-gnu
61+
- os: windows-latest
62+
target: x86_64-pc-windows-msvc
63+
runs-on: ${{ matrix.os }}
64+
steps:
65+
- uses: actions/checkout@v4
66+
67+
- uses: pnpm/action-setup@v4
68+
with:
69+
version: 10
70+
71+
- uses: actions/setup-node@v4
72+
with:
73+
node-version: 20
74+
cache: pnpm
75+
76+
- uses: dtolnay/rust-toolchain@stable
77+
78+
- name: Install Linux dependencies
79+
if: runner.os == 'Linux'
80+
run: |
81+
sudo apt-get update
82+
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev
83+
84+
- uses: actions/download-artifact@v4
85+
with:
86+
name: sidecar-${{ matrix.target }}
87+
path: src-tauri/binaries/
88+
89+
- name: Make sidecar executable
90+
if: runner.os != 'Windows'
91+
run: chmod +x src-tauri/binaries/sqlmap-sidecar-*
92+
93+
- run: pnpm install
94+
95+
- run: pnpm tauri build
96+
env:
97+
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
98+
99+
- uses: actions/upload-artifact@v4
100+
with:
101+
name: app-${{ matrix.target }}
102+
path: |
103+
src-tauri/target/release/bundle/**/*.dmg
104+
src-tauri/target/release/bundle/**/*.app
105+
src-tauri/target/release/bundle/**/*.deb
106+
src-tauri/target/release/bundle/**/*.AppImage
107+
src-tauri/target/release/bundle/**/*.msi
108+
src-tauri/target/release/bundle/**/*.exe

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,12 @@ Thumbs.db
2121
# Environment
2222
.env
2323
.env.*
24+
25+
# Claude / AI planning
26+
CLAUDE.md
2427
CLAUDE.local.md
28+
AGENTS.md
29+
docs/
2530

2631
# Logs
2732
*.log

app-icon.png

92.2 KB
Loading

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
"dependencies": {
2525
"@tauri-apps/plugin-notification": "^2.3.3",
2626
"@tauri-apps/plugin-shell": "^2.3.5",
27+
"@tauri-apps/plugin-sql": "^2.4.0",
28+
"@tauri-apps/plugin-updater": "^2.10.1",
2729
"react": "^19.2.5",
2830
"react-dom": "^19.2.5"
2931
}

pnpm-lock.yaml

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

scripts/build-sidecar.sh

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
#!/bin/bash
2+
# Build sqlmap sidecar for the current platform.
3+
# Run this on each target OS (macOS, Linux, Windows) to produce the correct binary.
4+
#
5+
# Usage:
6+
# ./scripts/build-sidecar.sh
7+
#
8+
# Output goes to src-tauri/binaries/sqlmap-sidecar-{target-triple}
9+
10+
set -e
11+
12+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
13+
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
14+
SQLMAP_DIR="$(dirname "$PROJECT_DIR")/sqlmap"
15+
BINARIES_DIR="$PROJECT_DIR/src-tauri/binaries"
16+
17+
# Detect target triple
18+
case "$(uname -s)-$(uname -m)" in
19+
Darwin-arm64) TARGET="aarch64-apple-darwin" ;;
20+
Darwin-x86_64) TARGET="x86_64-apple-darwin" ;;
21+
Linux-x86_64) TARGET="x86_64-unknown-linux-gnu" ;;
22+
Linux-aarch64) TARGET="aarch64-unknown-linux-gnu" ;;
23+
MINGW*|MSYS*|CYGWIN*)
24+
case "$(uname -m)" in
25+
x86_64) TARGET="x86_64-pc-windows-msvc" ;;
26+
*) TARGET="aarch64-pc-windows-msvc" ;;
27+
esac
28+
;;
29+
*) echo "Unsupported platform: $(uname -s)-$(uname -m)"; exit 1 ;;
30+
esac
31+
32+
echo "Building sqlmap sidecar for: $TARGET"
33+
echo "sqlmap directory: $SQLMAP_DIR"
34+
echo "Output: $BINARIES_DIR/sqlmap-sidecar-$TARGET"
35+
36+
if [ ! -f "$SQLMAP_DIR/sqlmap-bundle.spec" ]; then
37+
echo "Error: $SQLMAP_DIR/sqlmap-bundle.spec not found"
38+
echo "Make sure sqlmap is cloned next to sqlmap-ui/"
39+
exit 1
40+
fi
41+
42+
cd "$SQLMAP_DIR"
43+
44+
python3 -m PyInstaller sqlmap-bundle.spec \
45+
--distpath "$BINARIES_DIR" \
46+
--clean -y
47+
48+
# Rename to include target triple
49+
if [ -f "$BINARIES_DIR/sqlmap-sidecar" ]; then
50+
mv "$BINARIES_DIR/sqlmap-sidecar" "$BINARIES_DIR/sqlmap-sidecar-$TARGET"
51+
echo "Success: $BINARIES_DIR/sqlmap-sidecar-$TARGET"
52+
ls -lh "$BINARIES_DIR/sqlmap-sidecar-$TARGET"
53+
elif [ -f "$BINARIES_DIR/sqlmap-sidecar.exe" ]; then
54+
mv "$BINARIES_DIR/sqlmap-sidecar.exe" "$BINARIES_DIR/sqlmap-sidecar-$TARGET.exe"
55+
echo "Success: $BINARIES_DIR/sqlmap-sidecar-$TARGET.exe"
56+
ls -lh "$BINARIES_DIR/sqlmap-sidecar-$TARGET.exe"
57+
else
58+
echo "Error: sidecar binary not found after build"
59+
exit 1
60+
fi

0 commit comments

Comments
 (0)