Skip to content

Commit 4aa25f5

Browse files
authored
Merge pull request #29 from fermyon/add-fwaffic-demo
import traffic splitting demo from FWaFfic repo
2 parents d3d9fba + 6826bb2 commit 4aa25f5

File tree

113 files changed

+19924
-0
lines changed

Some content is hidden

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

113 files changed

+19924
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
- [Cookie Parsing](./samples/parse-cookie/)
1919
- [Traffic Filtering: Block By IP address](./samples/block-by-ip/)
2020
- [Traffic Filtering: Block By user country](./samples/block-by-country/)
21+
- [Traffic mirroring and splitting](./samples/traffic-splitting/)
2122
- [Reading the Body of a POST Request](./samples/read-post/)
2223
- [Respond with Another Site](./samples/respond-with-another-site/)
2324
- [Response Header Modification](./samples/response-header-modification/)

samples/traffic-splitting/.gitignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*.wasm
2+
.spin/
3+
node_modules/
4+
.DS_Store
5+
.spin-aka/
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
node_modules
2+
dist
3+
target
4+
.spin/
5+
build/

samples/traffic-splitting/api/.npmrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
KNITWIT_SOURCE=./config/knitwit.json
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"version": 1,
3+
"project": {
4+
"worlds": [
5+
"spin-http"
6+
]
7+
},
8+
"packages": {
9+
"@fermyon/spin-sdk": {
10+
"witPath": "../../bin/wit",
11+
"world": "spin-imports"
12+
}
13+
}
14+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
CREATE TABLE apps (
2+
id TEXT PRIMARY KEY,
3+
name TEXT NOT NULL,
4+
url TEXT NOT NULL,
5+
created_at DATETIME NOT NULL,
6+
logger_url TEXT NOT NULL,
7+
api_key TEXT NOT NULL
8+
);
9+
10+
CREATE TABLE requests (
11+
id TEXT PRIMARY KEY,
12+
app_id TEXT NOT NULL,
13+
timestamp DATETIME NOT NULL,
14+
url TEXT NOT NULL,
15+
method TEXT NOT NULL,
16+
headers TEXT NOT NULL,
17+
body_length INTEGER NOT NULL,
18+
FOREIGN KEY (app_id) REFERENCES apps(id) ON DELETE CASCADE
19+
);
20+
21+
CREATE INDEX idx_requests_app_id ON requests(app_id);
22+
CREATE INDEX idx_requests_timestamp ON requests(timestamp);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
CREATE TABLE responses (
2+
id TEXT PRIMARY KEY,
3+
request_id TEXT NOT NULL,
4+
app_id TEXT NOT NULL,
5+
timestamp DATETIME NOT NULL,
6+
status_code INTEGER NOT NULL,
7+
headers TEXT NOT NULL,
8+
body_length INTEGER NOT NULL,
9+
FOREIGN KEY (app_id) REFERENCES apps(id) ON DELETE CASCADE,
10+
FOREIGN KEY (request_id) REFERENCES requests(id) ON DELETE CASCADE
11+
);
12+
13+
CREATE INDEX idx_responses_app_id ON responses(app_id);
14+
CREATE INDEX idx_responses_request_id ON responses(request_id);
15+
CREATE INDEX idx_responses_timestamp ON responses(timestamp);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ALTER TABLE apps ADD COLUMN user_id TEXT NOT NULL DEFAULT '';
2+
CREATE INDEX idx_apps_user_id ON apps(user_id);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
CREATE TABLE users (
2+
id TEXT PRIMARY KEY,
3+
github_id INTEGER NOT NULL,
4+
login TEXT NOT NULL,
5+
name TEXT,
6+
email TEXT,
7+
avatar_url TEXT,
8+
created_at DATETIME NOT NULL,
9+
last_signin_at DATETIME NOT NULL
10+
);
11+
12+
CREATE INDEX idx_users_github_id ON users(github_id);
13+
CREATE INDEX idx_users_login ON users(login);

0 commit comments

Comments
 (0)