feat(FN-003): add tool manifest registry with FastAPI CRUD and built-in manifests

- Add ToolManifest Pydantic models with validators for ports, mounts, health checks, and traefik config

- Implement in-memory ToolRegistry with YAML loading and built-in manifest scanning

- Add FastAPI CRUD routes for listing, retrieving, and creating tool manifests

- Include built-in manifests for runfusion and code-server

- Harden web Dockerfile with unprivileged nginx and port 8080

- Add tool manifest specification documentation and architecture updates

Fusion-Task-Id: FN-003
This commit is contained in:
Fusion
2026-05-14 09:14:40 +02:00
parent 477abad4c9
commit f33a563003
25 changed files with 1038 additions and 24 deletions
+1
View File
@@ -0,0 +1 @@
ignore-build-scripts=false
+2 -2
View File
@@ -9,9 +9,9 @@ RUN npm install -g pnpm@11.1.1 \
COPY . .
RUN pnpm build
FROM nginx:alpine
FROM nginxinc/nginx-unprivileged:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
EXPOSE 8080
+3 -1
View File
@@ -1,5 +1,5 @@
server {
listen 80;
listen 8080;
server_name localhost;
root /usr/share/nginx/html;
index index.html;
@@ -14,6 +14,8 @@ server {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
+3
View File
@@ -3,6 +3,9 @@
"version": "0.0.1",
"private": true,
"type": "module",
"pnpm": {
"onlyBuiltDependencies": ["esbuild"]
},
"scripts": {
"dev": "vite",
"build": "tsc -b && vite build",