Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
8a37d6d
Publish container to GHCR & auto-deploy to k8s
pimterry Dec 20, 2025
90d8f33
Update Caddy
pimterry Dec 23, 2025
456dcb2
Bump qs, body-parser and express
dependabot[bot] Jan 1, 2026
df61ddb
Merge pull request #194 from httptoolkit/dependabot/npm_and_yarn/mult…
pimterry Jan 3, 2026
f635521
Bump diff
dependabot[bot] Jan 20, 2026
f855a68
Merge pull request #195 from httptoolkit/dependabot/npm_and_yarn/mult…
pimterry Jan 21, 2026
eafe4d8
Bump lodash from 4.17.21 to 4.17.23
dependabot[bot] Jan 21, 2026
92ebb20
Merge pull request #196 from httptoolkit/dependabot/npm_and_yarn/loda…
pimterry Jan 22, 2026
ed4d190
Bump fast-xml-parser from 5.2.3 to 5.3.4
dependabot[bot] Jan 30, 2026
d7ba271
Merge pull request #198 from httptoolkit/dependabot/npm_and_yarn/fast…
pimterry Feb 2, 2026
dc217e9
Update pill button styling
pimterry Dec 23, 2025
a85a2bb
Fix delete button on filter tags
pimterry Feb 3, 2026
d6753a2
Add filter options to the context menu
pimterry Feb 3, 2026
8a979cd
Preserve raw header details in HAR exports
pimterry Feb 5, 2026
badc1c7
Update HTTP snippet to improve low-level export accuracy
pimterry Feb 5, 2026
d82784e
Bump webpack from 5.95.0 to 5.105.0
dependabot[bot] Feb 5, 2026
4f1cea1
Merge pull request #199 from httptoolkit/dependabot/npm_and_yarn/webp…
pimterry Feb 6, 2026
7be4618
Bump qs from 6.14.1 to 6.14.2
dependabot[bot] Feb 14, 2026
61fc4de
Merge pull request #200 from httptoolkit/dependabot/npm_and_yarn/qs-6…
pimterry Feb 16, 2026
101e95f
Bump ajv from 8.12.0 to 8.18.0
dependabot[bot] Feb 17, 2026
c53f403
Merge pull request #201 from httptoolkit/dependabot/npm_and_yarn/ajv-…
pimterry Feb 19, 2026
277beeb
Bump fast-xml-parser from 5.3.4 to 5.3.6
dependabot[bot] Feb 19, 2026
6c0adf4
Merge pull request #202 from httptoolkit/dependabot/npm_and_yarn/fast…
pimterry Feb 19, 2026
488f2a4
Bump bn.js
dependabot[bot] Feb 24, 2026
cbb6e97
Merge pull request #204 from httptoolkit/dependabot/npm_and_yarn/mult…
pimterry Feb 24, 2026
34a4297
Bump basic-ftp from 5.0.5 to 5.2.0
dependabot[bot] Feb 25, 2026
b8c46f9
Merge pull request #205 from httptoolkit/dependabot/npm_and_yarn/basi…
pimterry Feb 26, 2026
dc6c2e7
Bump rollup from 2.79.2 to 2.80.0
dependabot[bot] Feb 26, 2026
b709807
Merge pull request #206 from httptoolkit/dependabot/npm_and_yarn/roll…
pimterry Feb 26, 2026
13f013d
Implement the renderer-side of MCP
pimterry Mar 3, 2026
34cac7e
Bump minimatch and editorconfig
dependabot[bot] Mar 5, 2026
c9ddf83
Bump fast-xml-parser from 5.3.6 to 5.3.8
dependabot[bot] Mar 5, 2026
be43487
Merge pull request #208 from httptoolkit/dependabot/npm_and_yarn/fast…
pimterry Mar 5, 2026
833abc3
Merge pull request #207 from httptoolkit/dependabot/npm_and_yarn/mult…
pimterry Mar 5, 2026
e457370
Add event clearing & non-interactive proxy/interceptor to MCP API
pimterry Mar 5, 2026
e089e47
Add MCP hint annotations to operations
pimterry Mar 6, 2026
83bfbd6
Force a JS-only pass on all MCP results to fix 'could not be cloned' …
pimterry Mar 6, 2026
e4e1909
Fix branch builds - all builds need REPORT_URI set
pimterry Mar 6, 2026
b9c9421
Update to new accounts module & coordinated status
pimterry Mar 14, 2026
e82e2ff
Push component versions to desktop shell help menu
pimterry Mar 16, 2026
4132d53
Ensure a minimum frequency for event processing even if the UI slows
pimterry Mar 17, 2026
bce3cb9
Bump fast-xml-parser from 5.3.8 to 5.5.6
dependabot[bot] Mar 18, 2026
18bf8c3
Merge pull request #209 from httptoolkit/dependabot/npm_and_yarn/fast…
pimterry Mar 18, 2026
254a281
Improve filter docs in the UI API
pimterry Mar 17, 2026
a0ac4ea
Fix some auto-fixable dep warnings
pimterry Mar 18, 2026
b2b3d7a
Bump fast-xml-parser from 5.5.6 to 5.5.7
dependabot[bot] Mar 20, 2026
e8bbdd8
Merge pull request #210 from httptoolkit/dependabot/npm_and_yarn/fast…
pimterry Mar 23, 2026
d30b74e
Fix collapsing button icon sizing
pimterry Mar 24, 2026
cc52778
Bump yaml from 1.10.2 to 1.10.3
dependabot[bot] Mar 25, 2026
60bd0a7
Bump picomatch
dependabot[bot] Mar 25, 2026
199d5c5
Merge pull request #212 from httptoolkit/dependabot/npm_and_yarn/mult…
pimterry Mar 26, 2026
26cec5f
Merge pull request #211 from httptoolkit/dependabot/npm_and_yarn/yaml…
pimterry Mar 26, 2026
decafdb
Drop serverless containers & go full k8s
pimterry Mar 27, 2026
f3c6756
Bump node-forge from 1.3.2 to 1.4.0
dependabot[bot] Mar 27, 2026
df40342
Merge pull request #213 from httptoolkit/dependabot/npm_and_yarn/node…
pimterry Mar 27, 2026
523a4f3
Bump path-to-regexp from 0.1.12 to 0.1.13
dependabot[bot] Mar 30, 2026
b877830
Merge pull request #215 from httptoolkit/dependabot/npm_and_yarn/path…
pimterry Mar 30, 2026
111ccdf
Bump brace-expansion
dependabot[bot] Mar 30, 2026
49e2e0c
Merge pull request #216 from httptoolkit/dependabot/npm_and_yarn/mult…
pimterry Mar 30, 2026
05b0369
Update dompurify
pimterry Mar 30, 2026
8cf3f4d
Bump lodash.template from 4.5.0 to 4.18.1
dependabot[bot] Apr 2, 2026
a7cbc04
Merge pull request #217 from httptoolkit/dependabot/npm_and_yarn/loda…
pimterry Apr 2, 2026
add7e85
Add basic multi-select support (no actions, nothing in right pane)
pimterry Apr 2, 2026
12e5902
Make context menu & rule creation work for multi-select
pimterry Apr 2, 2026
c2de4d7
Bump lodash from 4.17.23 to 4.18.1
dependabot[bot] Apr 2, 2026
4f06d0f
Merge pull request #218 from httptoolkit/dependabot/npm_and_yarn/loda…
pimterry Apr 3, 2026
d06abf9
Optimize view page selection management
pimterry Apr 3, 2026
8692a6a
Show preview row stack in the multi-select pane
pimterry Apr 3, 2026
a353200
Refactor individual event rows into their own files
pimterry Apr 7, 2026
62fbb0e
Fix annoying bundling warning from unnecessary 'vm' in asn1
pimterry Apr 2, 2026
b9d70a3
Improve view event list focus management
pimterry Apr 2, 2026
fcba746
Bump basic-ftp from 5.2.0 to 5.2.1
dependabot[bot] Apr 8, 2026
0230dfa
Filter out client error events from HAR exports
pimterry Apr 8, 2026
23a9952
Merge pull request #220 from httptoolkit/dependabot/npm_and_yarn/basi…
pimterry Apr 8, 2026
f43ce6c
Bump basic-ftp from 5.2.1 to 5.2.2
dependabot[bot] Apr 10, 2026
adf665a
Merge pull request #221 from httptoolkit/dependabot/npm_and_yarn/basi…
pimterry Apr 11, 2026
79967ea
More tweaks & tidyup for multiselect
pimterry Apr 13, 2026
2b80913
Bump follow-redirects from 1.15.6 to 1.16.0
dependabot[bot] Apr 14, 2026
bf24e76
Merge pull request #224 from httptoolkit/dependabot/npm_and_yarn/foll…
pimterry Apr 14, 2026
f303215
Tweak z-index to keep pane divider behind plan picker
pimterry Apr 14, 2026
0e1b149
Add buttons to the multiselect pane
pimterry Apr 13, 2026
c41b17b
Drop Pro multiselect options for now
pimterry Apr 14, 2026
f47b137
Merge branch 'multi-select'
pimterry Apr 14, 2026
41d97f9
Add rule creation & HAR export to multiselect
pimterry Apr 15, 2026
371c0fe
Include all bodies in multiselect HAR export
pimterry Apr 15, 2026
79dc410
Fix title casing of multiselect delete button
pimterry Apr 15, 2026
4317df6
Bump dompurify from 3.3.3 to 3.4.0
dependabot[bot] Apr 16, 2026
4fef9cb
Merge pull request #225 from httptoolkit/dependabot/npm_and_yarn/domp…
pimterry Apr 16, 2026
6374bea
Bump basic-ftp from 5.2.2 to 5.3.0
dependabot[bot] Apr 17, 2026
0f9c8c4
Merge pull request #226 from httptoolkit/dependabot/npm_and_yarn/basi…
pimterry Apr 17, 2026
437645d
Fix object array field mobx persistence
pimterry Apr 17, 2026
4dab2fc
Add support for inverting the TLS passthrough UI to include-only mode
pimterry Apr 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 38 additions & 17 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ jobs:
run: npm run test:integration
if: github.ref != 'refs/heads/main'
env:
REPORT_URI: ${{ vars.REPORT_URI }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # To pull server without rate limit issues in CI

# Build with secrets & run integrations tests, on main only:
Expand Down Expand Up @@ -75,10 +76,13 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # To pull server without rate limit issues in CI

publish-docker:
name: Build & publish container to Docker Hub
name: Build & publish container
if: github.event_name == 'push' && !startsWith(github.ref, 'refs/heads/dependabot/')
runs-on: ubuntu-latest
needs: [build, test-windows-build]
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4

Expand All @@ -87,6 +91,13 @@ jobs:
name: dist
path: dist

- name: Log in to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: docker/setup-buildx-action@v3

- name: Login to DockerHub
Expand All @@ -100,13 +111,15 @@ jobs:
uses: docker/metadata-action@v5
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
images: httptoolkit/ui
images: |
httptoolkit/ui
ghcr.io/httptoolkit/ui
tags: |
type=raw,value=prod,enable={{is_default_branch}}
type=raw,value=latest,enable={{is_default_branch}}
type=sha

- name: Build and publish to Docker Hub
- name: Build and publish
uses: docker/build-push-action@v5
with:
context: .
Expand All @@ -117,24 +130,32 @@ jobs:
publish-scaleway:
name: Deploy to Scaleway
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
environment: production
runs-on: ubuntu-latest
needs: publish-docker
steps:
- name: Redeploy container
uses: httptoolkit/scaleway-serverless-container-deploy-action@v1
with:
container_id: ${{ vars.SCW_API_CONTAINER_ID }}
region: ${{ vars.SCW_API_CONTAINER_REGION }}
secret_key: ${{ secrets.SCW_SECRET_KEY }}
registry_image_url: "registry.hub.docker.com/httptoolkit/ui:prod"
- uses: actions/checkout@v4

- name: Redeploy failover container
uses: httptoolkit/scaleway-serverless-container-deploy-action@v1
with:
container_id: ${{ vars.SCW_FAILOVER_API_CONTAINER_ID }}
region: ${{ vars.SCW_FAILOVER_API_CONTAINER_REGION }}
secret_key: ${{ secrets.SCW_SECRET_KEY }}
registry_image_url: "registry.hub.docker.com/httptoolkit/ui:prod"
- name: Configure Kubectl
run: |
kubectl config set-cluster scw-cluster \
--server="${{ vars.K8S_SERVER_ADDRESS }}" \
--certificate-authority=<(echo "${{ vars.K8S_CA_CERT }}" | base64 -d) \
--embed-certs=true

kubectl config set-credentials deployer --token="${{ secrets.K8S_DEPLOY_TOKEN }}"

kubectl config set-context default --cluster=scw-cluster --user=deployer
kubectl config use-context default

- name: Deploy to Kubernetes
run: |
sed "s|/ui:latest|/ui:sha-${GITHUB_SHA::7}|g" deploy/deployment.yaml | \
kubectl apply -f - \
-f deploy/service.yaml \
-f deploy/routes.yaml

kubectl rollout status deployment/httptoolkit-ui -n httptoolkit-ui

- name: Flush CDN cache
run: |
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM caddy:2.9.1-alpine
FROM caddy:2.11-alpine

RUN mkdir /site

Expand Down
1 change: 1 addition & 0 deletions automation/webpack.common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ export default <Webpack.Configuration>{
net: false,
tls: false,
http: false,
vm: false,

assert: require.resolve('assert/'),
crypto: require.resolve('crypto-browserify'),
Expand Down
23 changes: 23 additions & 0 deletions deploy/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: httptoolkit-ui
namespace: httptoolkit-ui
spec:
replicas: 1
selector:
matchLabels:
app: httptoolkit-ui
template:
metadata:
labels:
app: httptoolkit-ui
spec:
containers:
- name: server
image: ghcr.io/httptoolkit/ui:latest # GHA replaces :latest on build
ports:
- containerPort: 4000
env:
- name: DOMAIN
value: "http://:4000"
23 changes: 23 additions & 0 deletions deploy/routes.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: httptoolkit-ui-route
namespace: httptoolkit-ui
spec:
parentRefs:
- name: primary-gateway
namespace: gateway
sectionName: https-httptoolkit-tech
- name: secondary-gateway
namespace: gateway
sectionName: https-httptoolkit-tech
hostnames:
- "ui-backend.httptoolkit.tech"
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: httptoolkit-ui
port: 4000
13 changes: 13 additions & 0 deletions deploy/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: httptoolkit-ui
namespace: httptoolkit-ui
spec:
selector:
app: httptoolkit-ui
ports:
- name: http-port
protocol: TCP
port: 4000
targetPort: 4000
Loading