Skip to content

Commit b7c16b0

Browse files
committed
feat(firewall): add primitive command routing
1 parent d4bee0e commit b7c16b0

8 files changed

Lines changed: 588 additions & 5 deletions

File tree

ARCHITECTURE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ DELETE networks/{name}
7676
GET networks
7777
7878
# Firewall (coold = sole writer; dual-plane: iptables + nft bridge)
79-
firewall.allow {namespace, src, dst, proto?, port?} -> {id}
79+
firewall.allow {id, namespace, src, dst, proto?, port?} -> {id}
8080
firewall.revoke {id}
8181
firewall.list {?namespace}
8282
firewall.reconcile {} # flush + reload both snapshots

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ The v5 bootstrap firewall scaffold installs the cross-host and same-bridge enfor
134134
| Cross-host | iptables `COOLIFY-ALLOW` (filter) | wg0 ↔ bridge |
135135
| Intra-host same-bridge | nft `coolify_bridge::coolify_allow` (bridge family) | Same-bridge traffic bypassing FORWARD |
136136

137-
Snapshots: `/etc/coolify/allow.rules` + `/etc/coolify/allow.nft`. Restored on boot by `coolify-mesh-fw.service` + `coolify-mesh-allow.service`. Rule ID = `sha256("namespace|src|dst|proto|port")[:12]`. Tuples only; audit / RBAC / owners live in Laravel.
137+
Snapshots: `/etc/coolify/allow.rules` + `/etc/coolify/allow.nft`. Restored on boot by `coolify-mesh-fw.service` + `coolify-mesh-allow.service`. Rule IDs are caller-provided stable handles from Laravel. Tuples only; audit / RBAC / owners live in Laravel.
138138

139139
---
140140

coold/src/grpc/client.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,10 @@ fn primitive_capabilities() -> Vec<String> {
159159
"containers.healthcheck.run",
160160
"ingress.apply",
161161
"ingress.stop",
162+
"firewall.allow",
163+
"firewall.revoke",
164+
"firewall.list",
165+
"firewall.reconcile",
162166
]
163167
.into_iter()
164168
.map(str::to_string)

0 commit comments

Comments
 (0)