RMCP UI
-Deployment placeholder for the administrative console. The production UI container is reachable through /.
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0117204..ec17fea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -56,3 +56,30 @@ jobs: - name: Run tests run: cargo test --workspace --all-targets + + ui: + name: UI Checks + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + cache-dependency-path: apps/ui/package-lock.json + + - name: Install UI dependencies + working-directory: apps/ui + run: npm ci + + - name: Build UI + working-directory: apps/ui + run: npm run build + + - name: Run UI tests + working-directory: apps/ui + run: npm run test -- --run diff --git a/.gitignore b/.gitignore index faaf180..7316048 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,9 @@ /.env /var /notes +apps/ui/node_modules +apps/ui/dist +*.tsbuildinfo +apps/ui/vite.config.js +apps/ui/vite.config.d.ts *.log diff --git a/TASKS.md b/TASKS.md index bac9456..c14421a 100644 --- a/TASKS.md +++ b/TASKS.md @@ -2,22 +2,21 @@ ## Current -### `feat/admin-api-v1` +### `feat/ui-v1` Status: completed DoD: -- CRUD operations are available through admin API -- version creation and publish flow work through HTTP endpoints -- JSON sample upload and draft generation work for REST scenario -- auth profiles and YAML import/export are available -- integration tests cover key admin API scenarios -- handlers do not contain hidden business logic +- UI covers operation list, create, test, sample upload, draft generation and publish +- UI works against `admin-api` without mock backend +- critical form helpers are covered by frontend tests +- production UI build works in Docker container +- CI checks UI build and tests together with Rust workspace ## Next -- `feat/ui-v1` +- `feat/mcp-server` ## Backlog diff --git a/apps/ui/Dockerfile b/apps/ui/Dockerfile index 9a5a6e2..f2db4be 100644 --- a/apps/ui/Dockerfile +++ b/apps/ui/Dockerfile @@ -1,6 +1,15 @@ +FROM node:22-alpine AS build + +WORKDIR /app + +COPY apps/ui/package.json apps/ui/package-lock.json ./ +RUN npm ci +COPY apps/ui/ ./ +RUN npm run build + FROM nginx:1.27-alpine -COPY apps/ui/index.html /usr/share/nginx/html/index.html COPY apps/ui/nginx.conf /etc/nginx/conf.d/default.conf +COPY --from=build /app/dist /usr/share/nginx/html EXPOSE 3000 diff --git a/apps/ui/index.html b/apps/ui/index.html index 8b0c806..865fea3 100644 --- a/apps/ui/index.html +++ b/apps/ui/index.html @@ -1,59 +1,12 @@
- - -Deployment placeholder for the administrative console. The production UI container is reachable through /.