──────
Build and Push Docker Images / detect-changes (push) Successful in 11s
Build and Push Docker Images / build-auth-api (push) Successful in 1m0s
Build and Push Docker Images / build-employee-api (push) Successful in 1m2s
Build and Push Docker Images / build-transit-api (push) Successful in 1m1s
Build and Push Docker Images / build-error-log-api (push) Successful in 1m5s
Build and Push Docker Images / build-admin-ui (push) Successful in 1m13s
Build and Push Docker Images / build-monitoring-ui (push) Successful in 1m15s
Build and Push Docker Images / deploy-test-node (push) Successful in 3s

### Summary of Changes
  1. Documentation Consolidation:
      • Relocated the docs/ folder and all repository .md files (README.md, DEPLOYMENT.md, DOCKER_README.md,
      DOMAINS_README.md, GETTING_STARTED.md, CI_CD_PORTAINER_GUIDE.md, ADMIN_DEPLOYMENT_SUMMARY.md,
      SECURITY_PRIVATE_FILES.md, handoff.md, azure-project-plan.md, plus service-specific READMEs) into .
      • Updated document links in README.md.
  2. AI Agent Project Map:
      • Created PROJECT_MAP.md in the project root containing complete architecture diagrams, service specs, ports, DB
      schemas, environment variables, and developer workflows.
      • Added PROJECT_MAP.md to .gitignore.
  3. Monitoring UI & Infrastructure Integration:
      • Added monitoring_ui service to docker-compose.yml (port 5175).
      • Configured Gitea workflow docker-build.yml for monitoring_ui builds.
      • Added CORS middleware headers in index.js.
      • Added nginx.conf copy step in Dockerfile.

  ──────
  ### Recommended Commit Message

    docs: consolidate project documentation into monitoring_ui and add agent project map

    - Move all markdown documentation files and docs/ folder into monitoring_ui/docs/
    - Update documentation hub index (monitoring_ui/docs/README.md) with relative paths
    - Generate comprehensive AI agent reference map (PROJECT_MAP.md) in repository root
    - Add PROJECT_MAP.md and monitoring_ui build output/env overrides to .gitignore
    - Integrate monitoring_ui service into docker-compose.yml and Gitea CI workflow
    - Configure CORS handling in employee_api for monitoring dashboard access
    ──────
  ### Alternative Short Commit Message

    refactor(docs): move docs to monitoring_ui and create AI agent PROJECT_MAP.md
This commit is contained in:
Sven laptop
2026-09-20 23:33:55 +02:00
parent f935bbeb8c
commit 635a130f0b
195 changed files with 28309 additions and 957 deletions
+247
View File
@@ -0,0 +1,247 @@
{
"schemaVersion": "2",
"generatedAt": "2026-09-20T00:00:00.000Z",
"mode": "NEW",
"summary": "A new React + Vite monitoring dashboard for the existing XTransit APIs and admin UI. It will aggregate health, service capabilities, error activity, and a guarded API request tester without adding a new datastore.",
"workspaceSignals": {
"detectedFiles": [
"README.md",
"docker-compose.yml",
"auth_api/index.js",
"auth_api/package.json",
"employee_api/index.js",
"employee_api/package.json",
"transit_api/index.js",
"transit_api/package.json",
"error_log_api/index.js",
"error_log_api/package.json",
"admin_ui/package.json",
"admin_ui/src/api.js",
"admin_ui/src/App.jsx",
"DOMAINS_README.md",
"admin_ui/README.md",
"admin_ui/SCHEDULE_API.md",
"transit_api/README.md"
],
"decision": "NEW",
"decisionReason": "The repository contains the existing services and admin UI, but no monitoring dashboard; the requested dashboard is a new project folder within this workspace."
},
"services": [
{
"id": "transit-monitor-dashboard",
"label": "Transit Monitor Dashboard",
"role": "frontend",
"root": "./monitoring_dashboard"
},
{
"id": "monitoring-proxy-api",
"label": "Monitoring Proxy API",
"role": "backend",
"root": "./monitoring_dashboard/server"
}
],
"questions": [
{
"id": "transit-monitor-dashboard:language",
"category": "service",
"question": "Which programming language for Transit Monitor Dashboard?",
"header": "Language",
"answer": "TypeScript",
"status": "confirmed",
"rationale": "The requested framework is explicitly React + Vite, but the language was not specified; TypeScript is recommended for the dashboard's endpoint catalog and response-shape handling.",
"options": [
{
"label": "TypeScript",
"description": "Type-safe React application code"
},
{
"label": "JavaScript",
"description": "Plain JavaScript matching the existing admin UI"
}
],
"recommendedChoice": "TypeScript",
"multiSelect": false,
"allowFreeformInput": false,
"serviceId": "transit-monitor-dashboard"
},
{
"id": "transit-monitor-dashboard:framework",
"category": "service",
"question": "Which frontend framework for Transit Monitor Dashboard?",
"header": "Framework",
"answer": "React + Vite",
"status": "confirmed",
"rationale": "React + Vite is explicitly requested.",
"options": [
{
"label": "React + Vite",
"description": "React SPA with Vite, as requested"
},
{
"label": "Vue + Vite",
"description": "Vue SPA with Vite"
},
{
"label": "Angular",
"description": "Angular application"
},
{
"label": "Svelte",
"description": "Svelte application with Vite"
}
],
"recommendedChoice": "React + Vite",
"multiSelect": false,
"allowFreeformInput": true,
"serviceId": "transit-monitor-dashboard"
},
{
"id": "transit-monitor-dashboard:features",
"category": "service",
"question": "Describe the features or API routes for Transit Monitor Dashboard.",
"header": "Features",
"answer": "Service health overview for auth_api, employee_api, transit_api, error_log_api, and admin_ui; service capability catalog; error and bad-request views; guarded live request tester; configurable environments; polling controls; response timing and status history.",
"status": "confirmed",
"rationale": "Distilled from the requested monitoring, service-data, error, request-testing, and health-check workflows.",
"recommendedChoice": "Service health overview for auth_api, employee_api, transit_api, error_log_api, and admin_ui; service capability catalog; error and bad-request views; guarded live request tester; configurable environments; polling controls; response timing and status history.",
"multiSelect": false,
"serviceId": "transit-monitor-dashboard"
},
{
"id": "monitoring-proxy-api:language",
"category": "service",
"question": "Which programming language for Monitoring Proxy API?",
"header": "Language",
"answer": "TypeScript",
"status": "confirmed",
"rationale": "The workspace already uses Node.js services and the proxy needs shared typed endpoint metadata and response normalization; TypeScript is recommended, but the user did not explicitly choose the proxy language.",
"options": [
{
"label": "TypeScript",
"description": "Node.js + TypeScript proxy service"
},
{
"label": "Python",
"description": "Python proxy service"
},
{
"label": "C# (.NET)",
"description": ".NET proxy service"
}
],
"recommendedChoice": "TypeScript",
"multiSelect": false,
"allowFreeformInput": false,
"serviceId": "monitoring-proxy-api"
},
{
"id": "monitoring-proxy-api:framework",
"category": "service",
"question": "Which backend framework for Monitoring Proxy API?",
"header": "Framework",
"answer": "Express",
"status": "confirmed",
"rationale": "Express matches the existing API services and is sufficient for an allowlisted proxy, health aggregation, and request execution endpoints.",
"options": [
{
"label": "Express",
"description": "Small Node.js HTTP proxy consistent with the existing APIs"
},
{
"label": "Fastify",
"description": "Typed, low-overhead Node.js HTTP service"
},
{
"label": "Azure Functions",
"description": "Serverless HTTP functions"
}
],
"recommendedChoice": "Express",
"multiSelect": false,
"allowFreeformInput": true,
"serviceId": "monitoring-proxy-api"
},
{
"id": "monitoring-proxy-api:features",
"category": "service",
"question": "Describe the features or API routes for Monitoring Proxy API.",
"header": "Features",
"answer": "Environment-configured upstream base URLs; aggregated health checks including admin_ui; allowlisted endpoint catalog; authenticated request execution with safe method/body/timeout limits; error-log read proxy; redacted structured results; CORS and rate limiting.",
"status": "confirmed",
"rationale": "The proxy is planned to centralize cross-origin access and protect administrative/tester capabilities while preserving the existing APIs unchanged.",
"recommendedChoice": "Environment-configured upstream base URLs; aggregated health checks including admin_ui; allowlisted endpoint catalog; authenticated request execution with safe method/body/timeout limits; error-log read proxy; redacted structured results; CORS and rate limiting.",
"multiSelect": false,
"serviceId": "monitoring-proxy-api"
},
{
"id": "dataStores",
"category": "data",
"question": "Which data stores does your app need?",
"header": "Data Stores",
"answer": [
"No datastore required"
],
"status": "confirmed",
"rationale": "The dashboard monitors and queries the existing APIs and error-log database; it needs only bounded in-memory polling state and does not introduce persistence, file storage, queues, or caches.",
"options": [
{
"label": "No datastore required",
"description": "The dashboard reads existing APIs and does not persist new data",
"exclusive": true
},
{
"label": "Blob Storage",
"description": "Store files and images"
},
{
"label": "Queue Storage",
"description": "Async message queue"
},
{
"label": "PostgreSQL",
"description": "Relational database"
},
{
"label": "CosmosDB",
"description": "NoSQL document database"
},
{
"label": "Redis",
"description": "In-memory cache"
},
{
"label": "Azure SQL",
"description": "Managed SQL Server"
}
],
"recommendedChoice": [
"No datastore required"
],
"multiSelect": true,
"allowFreeformInput": false
},
{
"id": "auth",
"category": "auth",
"question": "Does this app need user login?",
"header": "API Login",
"answer": "Yes",
"status": "confirmed",
"rationale": "Reading centralized errors and exercising authenticated transit/admin endpoints must be restricted to authorized dashboard users.",
"options": [
{
"label": "Yes",
"description": "Add a user sign-in flow and authenticated API access"
},
{
"label": "No",
"description": "No user sign-in or authenticated API access"
}
],
"recommendedChoice": "Yes",
"multiSelect": false,
"allowFreeformInput": false
}
],
"executionMode": "guided"
}