52386efb83
Build & Deploy to K8s / build-and-deploy (push) Has been cancelled
운영 도메인이 실제로는 v1.invyone.com / solution.invyone.com / api.invyone.com 인데 코드/문서 곳곳에 v1.invion.com / api.invion.com 등 미존재 도메인이 박혀 있어 정리. 변경 파일 (21): - frontend lib/api/client.ts, lib/utils/apiUrl.ts: hostname 체크 endsWith(\".invyone.com\") 일반화 - frontend lib/api/dashboard.ts, file.ts, flow.ts, FileViewerModal*2.tsx: 도메인 치환 - frontend invion-layout-v5.html: 시안 내 placeholder 도메인 정리 - backend-spring SecurityConfig.java: CORS 주석 예시 정리 - docker/deploy/docker-compose.yml, k8s/traefik-dynamic.yaml: traefik Host 라벨 정리 - scripts/prod/deploy.sh: 안내 메시지 정리 - .cursor/rules/api-client-usage.mdc, project-conventions.mdc: AI 가이드 정리 - docs/* 4개: 아키텍처/플로우 문서 도메인 정리 - notes/gbpark/* 3개: 과거 메모 정리 신규: - docs/DOMAIN_MAPPING.md: 운영/개발/폐기 도메인 영구 기록. AI 에이전트와 신규 개발자가 헷갈리지 않도록 단일 진실 출처. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
596 lines
15 KiB
JSON
596 lines
15 KiB
JSON
{
|
|
"version": "1.0.0",
|
|
"lastScanned": 1777285161379,
|
|
"projectRoot": "C:\\Dev\\projects\\invyone",
|
|
"techStack": {
|
|
"languages": [
|
|
{
|
|
"name": "JavaScript/TypeScript",
|
|
"version": null,
|
|
"confidence": "high",
|
|
"markers": [
|
|
"package.json"
|
|
]
|
|
}
|
|
],
|
|
"frameworks": [
|
|
{
|
|
"name": "playwright",
|
|
"version": "1.58.2",
|
|
"category": "testing"
|
|
}
|
|
],
|
|
"packageManager": "npm",
|
|
"runtime": null
|
|
},
|
|
"build": {
|
|
"buildCommand": null,
|
|
"testCommand": null,
|
|
"lintCommand": null,
|
|
"devCommand": null,
|
|
"scripts": {}
|
|
},
|
|
"conventions": {
|
|
"namingStyle": null,
|
|
"importStyle": null,
|
|
"testPattern": null,
|
|
"fileOrganization": null
|
|
},
|
|
"structure": {
|
|
"isMonorepo": false,
|
|
"workspaces": [],
|
|
"mainDirectories": [
|
|
"docs",
|
|
"scripts"
|
|
],
|
|
"gitBranches": {
|
|
"defaultBranch": "gbpark-node",
|
|
"branchingStrategy": null
|
|
}
|
|
},
|
|
"customNotes": [],
|
|
"directoryMap": {
|
|
"ai-assistant": {
|
|
"path": "ai-assistant",
|
|
"purpose": null,
|
|
"fileCount": 5,
|
|
"lastAccessed": 1777285161317,
|
|
"keyFiles": [
|
|
"Dockerfile.win",
|
|
"package-lock.json",
|
|
"package.json",
|
|
"README.md"
|
|
]
|
|
},
|
|
"backend": {
|
|
"path": "backend",
|
|
"purpose": null,
|
|
"fileCount": 0,
|
|
"lastAccessed": 1777285161317,
|
|
"keyFiles": []
|
|
},
|
|
"backend-node": {
|
|
"path": "backend-node",
|
|
"purpose": null,
|
|
"fileCount": 14,
|
|
"lastAccessed": 1777285161330,
|
|
"keyFiles": [
|
|
"API_연동_가이드.md",
|
|
"API_키_정리.md",
|
|
"install-multer.js",
|
|
"jest.config.js",
|
|
"nodemon.json"
|
|
]
|
|
},
|
|
"backend-spring": {
|
|
"path": "backend-spring",
|
|
"purpose": null,
|
|
"fileCount": 4,
|
|
"lastAccessed": 1777285161331,
|
|
"keyFiles": [
|
|
"build.gradle",
|
|
"gradlew",
|
|
"gradlew.bat",
|
|
"settings.gradle"
|
|
]
|
|
},
|
|
"db": {
|
|
"path": "db",
|
|
"purpose": null,
|
|
"fileCount": 2,
|
|
"lastAccessed": 1777285161332,
|
|
"keyFiles": [
|
|
"00-create-roles.sh",
|
|
"migrate_company13_export.sh"
|
|
]
|
|
},
|
|
"docker": {
|
|
"path": "docker",
|
|
"purpose": null,
|
|
"fileCount": 0,
|
|
"lastAccessed": 1777285161332,
|
|
"keyFiles": []
|
|
},
|
|
"docs": {
|
|
"path": "docs",
|
|
"purpose": "Documentation",
|
|
"fileCount": 33,
|
|
"lastAccessed": 1777285161333,
|
|
"keyFiles": [
|
|
"backend-analysis-README.md",
|
|
"backend-analysis-response.json",
|
|
"backend-api-route-mapping.md",
|
|
"backend-architecture-analysis.md",
|
|
"backend-architecture-detailed-analysis.md"
|
|
]
|
|
},
|
|
"frontend": {
|
|
"path": "frontend",
|
|
"purpose": null,
|
|
"fileCount": 26,
|
|
"lastAccessed": 1777285161333,
|
|
"keyFiles": [
|
|
"admin-test-result.md",
|
|
"approval-box-result.png",
|
|
"components.json",
|
|
"cosmic-preview.html",
|
|
"eslint.config.mjs"
|
|
]
|
|
},
|
|
"k8s": {
|
|
"path": "k8s",
|
|
"purpose": null,
|
|
"fileCount": 10,
|
|
"lastAccessed": 1777285161334,
|
|
"keyFiles": [
|
|
"backend-node.yaml",
|
|
"backend-spring.yaml",
|
|
"configmap.yaml",
|
|
"deploy.sh",
|
|
"frontend.yaml"
|
|
]
|
|
},
|
|
"mcp-agent-orchestrator": {
|
|
"path": "mcp-agent-orchestrator",
|
|
"purpose": null,
|
|
"fileCount": 4,
|
|
"lastAccessed": 1777285161335,
|
|
"keyFiles": [
|
|
"package-lock.json",
|
|
"package.json",
|
|
"README.md",
|
|
"tsconfig.json"
|
|
]
|
|
},
|
|
"notes": {
|
|
"path": "notes",
|
|
"purpose": null,
|
|
"fileCount": 0,
|
|
"lastAccessed": 1777285161337,
|
|
"keyFiles": []
|
|
},
|
|
"scripts": {
|
|
"path": "scripts",
|
|
"purpose": "Build/utility scripts",
|
|
"fileCount": 11,
|
|
"lastAccessed": 1777285161337,
|
|
"keyFiles": [
|
|
"add-modal-ids.py",
|
|
"analyze-company-info-layout.js",
|
|
"browser-test-admin-switch-button.js",
|
|
"browser-test-customer-crud.js",
|
|
"browser-test-customer-via-menu.js"
|
|
]
|
|
},
|
|
"test-output": {
|
|
"path": "test-output",
|
|
"purpose": null,
|
|
"fileCount": 2,
|
|
"lastAccessed": 1777285161338,
|
|
"keyFiles": [
|
|
"screen-149-field-type-verification-guide.md",
|
|
"unified-field-type-config-panel-test-guide.md"
|
|
]
|
|
},
|
|
"test-results": {
|
|
"path": "test-results",
|
|
"purpose": null,
|
|
"fileCount": 1,
|
|
"lastAccessed": 1777285161338,
|
|
"keyFiles": []
|
|
},
|
|
"_pipeline_backup": {
|
|
"path": "_pipeline_backup",
|
|
"purpose": null,
|
|
"fileCount": 1,
|
|
"lastAccessed": 1777285161339,
|
|
"keyFiles": [
|
|
"pipeline-state.json"
|
|
]
|
|
},
|
|
"ai-assistant\\src": {
|
|
"path": "ai-assistant\\src",
|
|
"purpose": "Source code",
|
|
"fileCount": 1,
|
|
"lastAccessed": 1777285161340,
|
|
"keyFiles": [
|
|
"app.js"
|
|
]
|
|
},
|
|
"backend-node\\data": {
|
|
"path": "backend-node\\data",
|
|
"purpose": "Data files",
|
|
"fileCount": 0,
|
|
"lastAccessed": 1777285161341,
|
|
"keyFiles": []
|
|
},
|
|
"backend-spring\\build": {
|
|
"path": "backend-spring\\build",
|
|
"purpose": "Build output",
|
|
"fileCount": 1,
|
|
"lastAccessed": 1777285161341,
|
|
"keyFiles": [
|
|
"resolvedMainClassName"
|
|
]
|
|
},
|
|
"backend-spring\\src": {
|
|
"path": "backend-spring\\src",
|
|
"purpose": "Source code",
|
|
"fileCount": 0,
|
|
"lastAccessed": 1777285161342,
|
|
"keyFiles": []
|
|
},
|
|
"db\\migrations": {
|
|
"path": "db\\migrations",
|
|
"purpose": "Database migrations",
|
|
"fileCount": 16,
|
|
"lastAccessed": 1777285161343,
|
|
"keyFiles": [
|
|
"046_MIGRATION_FIX.md",
|
|
"046_QUICK_FIX.md",
|
|
"README_1003.md"
|
|
]
|
|
},
|
|
"db\\scripts": {
|
|
"path": "db\\scripts",
|
|
"purpose": "Build/utility scripts",
|
|
"fileCount": 1,
|
|
"lastAccessed": 1777285161343,
|
|
"keyFiles": [
|
|
"README_cleanup.md"
|
|
]
|
|
},
|
|
"frontend\\app": {
|
|
"path": "frontend\\app",
|
|
"purpose": "Application code",
|
|
"fileCount": 5,
|
|
"lastAccessed": 1777285161344,
|
|
"keyFiles": [
|
|
"favicon.ico",
|
|
"globals.css",
|
|
"layout.tsx"
|
|
]
|
|
},
|
|
"frontend\\components": {
|
|
"path": "frontend\\components",
|
|
"purpose": "UI components",
|
|
"fileCount": 1,
|
|
"lastAccessed": 1777285161345,
|
|
"keyFiles": [
|
|
"GlobalFileViewer.tsx"
|
|
]
|
|
},
|
|
"mcp-agent-orchestrator\\src": {
|
|
"path": "mcp-agent-orchestrator\\src",
|
|
"purpose": "Source code",
|
|
"fileCount": 1,
|
|
"lastAccessed": 1777285161345,
|
|
"keyFiles": [
|
|
"index.ts"
|
|
]
|
|
}
|
|
},
|
|
"hotPaths": [
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\security\\SecurityConfig.java",
|
|
"accessCount": 10,
|
|
"lastAccessed": 1777297528541,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "frontend\\components\\layout\\AdminPageRenderer.tsx",
|
|
"accessCount": 8,
|
|
"lastAccessed": 1777297133296,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\application.yml",
|
|
"accessCount": 6,
|
|
"lastAccessed": 1777296723408,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "docker-compose.backend.win.yml",
|
|
"accessCount": 6,
|
|
"lastAccessed": 1777328965297,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "",
|
|
"accessCount": 6,
|
|
"lastAccessed": 1777329340127,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src",
|
|
"accessCount": 5,
|
|
"lastAccessed": 1777296597185,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\service\\AiAssistantProxyService.java",
|
|
"accessCount": 3,
|
|
"lastAccessed": 1777296304775,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\ai\\health\\OpenClawHealthIndicator.java",
|
|
"accessCount": 3,
|
|
"lastAccessed": 1777296500455,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\ai\\client\\OpenClawClient.java",
|
|
"accessCount": 3,
|
|
"lastAccessed": 1777297100879,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\controller\\AiAssistantProxyController.java",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777292122594,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\ai\\config\\OpenClawProperties.java",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777296453350,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\ai\\exception\\OpenClawException.java",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777296454246,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777296462858,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\config\\MyBatisConfig.java",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777296476543,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V002__create_ai_agents.sql",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777296498694,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V004__create_ai_agent_group_members.sql",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777296499056,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V005__create_ai_agent_api_keys.sql",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777296499857,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "frontend",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777296636910,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V001__create_ai_llm_providers.sql",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777297213582,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777297282052,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "docker-compose.frontend.win.yml",
|
|
"accessCount": 2,
|
|
"lastAccessed": 1777328980655,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\src\\app.js",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777291729219,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "Jenkinsfile",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777292137142,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "frontend\\docs\\AI_어시스턴트_메뉴_등록_가이드.md",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777292137475,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\package.json",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777292156893,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777292158334,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\src\\models",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777292170037,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "frontend\\lib\\api\\aiAssistant",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777292171252,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\.env.example",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777293988045,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\src\\models\\index.js",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777293989107,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\src\\models\\user.model.js",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777293989222,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\src\\models\\api-key.model.js",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777293990287,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\src\\models\\llm-provider.model.js",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777293990609,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "ai-assistant\\src\\models\\usage-log.model.js",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777293990839,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "ai-assistant",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777293992318,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\security",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777294130003,
|
|
"type": "directory"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V003__create_ai_agent_groups.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296304942,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V006__create_ai_agent_conversations.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296317538,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V007__create_ai_agent_messages.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296319127,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V008__create_ai_agent_usage_logs.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296323195,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V009__create_ai_agent_schedules.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296326054,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V010__create_ai_analysis_logs.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296329376,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V011__create_ai_knowledge_files.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296334986,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V012__create_quartz_tables.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296359719,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\migration\\V013__create_ai_indexes.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296364743,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\resources\\db\\cleanup\\drop_ai_assistant_db.sql",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296381320,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\controller\\RoleController.java",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296382933,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\dto\\ApiResponse.java",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296431064,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\service\\AdminService.java",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296435916,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"path": "backend-spring\\src\\main\\java\\com\\erp\\controller\\AdminController.java",
|
|
"accessCount": 1,
|
|
"lastAccessed": 1777296436288,
|
|
"type": "file"
|
|
}
|
|
],
|
|
"userDirectives": []
|
|
} |