[PR #77] [CLOSED] [2/4] feat(web): Gateway connection settings and session cookies #161

Closed
opened 2026-10-29 14:20:27 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/kvcache-ai/AgentENV/pull/77
Author: @immanuel-peter
Created: 7/29/2026
Status: ❌ Closed

Base: main ← Head: feat/web-2-connection


📝 Commits (3)

  • 30fdc56 feat(web): scaffold control-plane console and deploy wiring
  • df423f4 feat(web): add Gateway connection settings and session cookies
  • 46bed27 fix(web): harden Gateway connection credential handling

📊 Changes

77 files changed (+11156 additions, -1 deletions)

View changed files

📝 .gitignore (+5 -0)
📝 Makefile (+5 -0)
📝 deploy/docker-compose.yml (+16 -0)
➕ deploy/docker/Dockerfile.web (+32 -0)
📝 deploy/k8s/base/kustomization.yaml (+5 -0)
➕ deploy/k8s/base/web-deployment.yaml (+50 -0)
➕ deploy/k8s/base/web-service.yaml (+13 -0)
📝 docs/src/SUMMARY.md (+1 -0)
📝 docs/src/deployment/docker-compose.md (+1 -0)
📝 docs/src/deployment/kubernetes.md (+10 -1)
➕ docs/src/getting-started/web-ui.md (+50 -0)
➕ web/.dockerignore (+13 -0)
➕ web/.gitignore (+41 -0)
➕ web/README.md (+31 -0)
➕ web/components.json (+25 -0)
➕ web/eslint.config.mjs (+18 -0)
➕ web/next.config.ts (+13 -0)
➕ web/package.json (+34 -0)
➕ web/pnpm-lock.yaml (+6008 -0)
➕ web/pnpm-workspace.yaml (+3 -0)

...and 57 more files

📄 Description

What

Add Gateway connection Settings: httpOnly session cookies for Gateway URL / API key / optional admin token, connection validate API routes, and the shared gatewayFetch client foundation.

Why

Credential handling is the highest-scrutiny part of the Web UI and should be reviewable without the full resource-page surface area.

Part of #6.

Scope and non-goals

In scope

  • web/src/lib/session.ts and connection API routes
  • gatewayFetch, errors, paging, shared types
  • Settings form/status UI (replaces stub)
  • Temporary dashboard placeholder that shows connection state

Non-goals

  • Sandbox/snapshot/template/node/dashboard feature UIs (PRs 3–4)

Design and behavior changes

  • Credentials stored in httpOnly cookies with no maxAge (cleared on logout / browser session end)
  • Server-side Gateway fetches only; secrets are not logged in full
  • AENV_DEFAULT_GATEWAY_URL prefills the Gateway field when set

Compatibility and operations

  • Public API or generated protocol: N/A (consumes existing Gateway HTTP API)
  • Configuration or defaults: optional AENV_DEFAULT_GATEWAY_URL
  • Snapshot manifest, artifact layout, or storage format: N/A
  • Upgrade and rollback: additive UI-only
  • Host requirements, permissions, ports, or dependencies: same as PR 1

Validation

  • Web lint/build

Commands and results:

cd web && pnpm lint && pnpm build  # pass

Skipped checks and reasons:

  • Rust/Go suites: no backend code changes in this slice

Risks and reviewer notes

Stack

Merge order: #76 → #77 → #78 → #79

Checklist

  • The PR contains one coherent change and no unrelated formatting or refactoring.
  • New behavior is covered by tests, or I explained why testing is impractical.
  • Logs and examples contain no credentials, tokens, or private registry information.
  • I did not manually edit generated code without updating its source and regenerating it.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/kvcache-ai/AgentENV/pull/77 **Author:** [@immanuel-peter](https://github.com/immanuel-peter) **Created:** 7/29/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `feat/web-2-connection` --- ### 📝 Commits (3) - [`30fdc56`](https://github.com/kvcache-ai/AgentENV/commit/30fdc56dacd94d73062c198f5a5b38e3752bddcf) feat(web): scaffold control-plane console and deploy wiring - [`df423f4`](https://github.com/kvcache-ai/AgentENV/commit/df423f468adfcc1cced5a5030769c6d80cc19fbe) feat(web): add Gateway connection settings and session cookies - [`46bed27`](https://github.com/kvcache-ai/AgentENV/commit/46bed27399fa1a7f98fe269379553e0f0dd9aa07) fix(web): harden Gateway connection credential handling ### 📊 Changes **77 files changed** (+11156 additions, -1 deletions) <details> <summary>View changed files</summary> 📝 `.gitignore` (+5 -0) 📝 `Makefile` (+5 -0) 📝 `deploy/docker-compose.yml` (+16 -0) ➕ `deploy/docker/Dockerfile.web` (+32 -0) 📝 `deploy/k8s/base/kustomization.yaml` (+5 -0) ➕ `deploy/k8s/base/web-deployment.yaml` (+50 -0) ➕ `deploy/k8s/base/web-service.yaml` (+13 -0) 📝 `docs/src/SUMMARY.md` (+1 -0) 📝 `docs/src/deployment/docker-compose.md` (+1 -0) 📝 `docs/src/deployment/kubernetes.md` (+10 -1) ➕ `docs/src/getting-started/web-ui.md` (+50 -0) ➕ `web/.dockerignore` (+13 -0) ➕ `web/.gitignore` (+41 -0) ➕ `web/README.md` (+31 -0) ➕ `web/components.json` (+25 -0) ➕ `web/eslint.config.mjs` (+18 -0) ➕ `web/next.config.ts` (+13 -0) ➕ `web/package.json` (+34 -0) ➕ `web/pnpm-lock.yaml` (+6008 -0) ➕ `web/pnpm-workspace.yaml` (+3 -0) _...and 57 more files_ </details> ### 📄 Description ## What Add Gateway connection Settings: httpOnly session cookies for Gateway URL / API key / optional admin token, connection validate API routes, and the shared `gatewayFetch` client foundation. ## Why Credential handling is the highest-scrutiny part of the Web UI and should be reviewable without the full resource-page surface area. ## Related issue Part of #6. ## Scope and non-goals **In scope** - `web/src/lib/session.ts` and connection API routes - `gatewayFetch`, errors, paging, shared types - Settings form/status UI (replaces stub) - Temporary dashboard placeholder that shows connection state **Non-goals** - Sandbox/snapshot/template/node/dashboard feature UIs (PRs 3–4) ## Design and behavior changes - Credentials stored in httpOnly cookies with no `maxAge` (cleared on logout / browser session end) - Server-side Gateway fetches only; secrets are not logged in full - `AENV_DEFAULT_GATEWAY_URL` prefills the Gateway field when set ## Compatibility and operations - Public API or generated protocol: N/A (consumes existing Gateway HTTP API) - Configuration or defaults: optional `AENV_DEFAULT_GATEWAY_URL` - Snapshot manifest, artifact layout, or storage format: N/A - Upgrade and rollback: additive UI-only - Host requirements, permissions, ports, or dependencies: same as PR 1 ## Validation - [x] Web lint/build Commands and results: ```text cd web && pnpm lint && pnpm build # pass ``` Skipped checks and reasons: - Rust/Go suites: no backend code changes in this slice ## Risks and reviewer notes - Primary review focus: `web/src/lib/session.ts`, `web/src/lib/api/connection*.ts`, `web/src/app/api/connection/**` - Layer-only compare: https://github.com/immanuel-peter/AgentENV/compare/feat/web-1-scaffold...feat/web-2-connection - Depends on #76 scaffold PR ## Stack Merge order: #76 → **#77** → #78 → #79 ## Checklist - [x] The PR contains one coherent change and no unrelated formatting or refactoring. - [x] New behavior is covered by tests, or I explained why testing is impractical. - [x] Logs and examples contain no credentials, tokens, or private registry information. - [x] I did not manually edit generated code without updating its source and regenerating it. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-29 14:20:27 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kvcache-ai/AgentENV#161
No description provided.