Commit Graph

30 Commits

Author SHA1 Message Date
ad7fccbed1 Tool inputSchema에 참조·정규식 정책을 적용한다
매니페스트가 선언한 inputSchema는 외부가 정하는 입력이다. JSON Schema
검증기는 문서 밖 $ref를 만나면 그 주소로 직접 조회하므로 매니페스트가
서버의 outbound 호출 대상을 정하는 통로가 된다. pattern은 joni와
graal-js가 없어 java.util.regex의 백트래킹 경로로 처리되고, 인증이 없는
경계(ADR-0006)라 호출 빈도를 줄여 주는 계층도 없다.

ToolSchemaReferencePolicy가 문서 밖 참조와 미지원 dialect를 막고,
ToolSchemaPatternPolicy가 정규식 길이·무한 수량자 개수·중첩 반복을
검사하며 pattern을 쓰는 필드에 maxLength를 요구한다. 길이를 묶을 수
없는 patternProperties는 거부한다.

검사는 ToolMetadata의 표준 생성자 한 곳에서만 한다. Portal 매니페스트
파싱, local 파일 로딩, Redis snapshot 역직렬화가 모두 이 생성자를
지나므로 조회 경로가 늘어도 검사 지점은 하나로 남는다. 위반은
IllegalStateException이라 기존 매니페스트 형식 오류와 같게 다뤄지고
bundle 단위 실패 격리가 그대로 적용된다.

근거와 한계는 ADR-0011, ADR-0012에 있다. ADR-0012가 classpath 근거로
인용하는 docs/sbom도 함께 가져온다.

192개 테스트 전부 통과. 기존 169건은 새 검사에 걸리지 않는다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 17:20:50 +09:00
58d3014a0f 저장소 문서를 다시 추적하고 계약 예제를 복원한다
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m52s
계약 테스트는 docs/contracts 아래 예제를 golden example로 읽는다.
docs/와 README.md가 ignore되어 있어 예제 파일이 사라졌고 9건이
실패하고 있었다. 문서가 온전했던 마지막 상태(3de052a)에서 복원하고
.gitignore에서 두 항목을 제거한다. 에이전트 산출물인
docs/superpowers/ 제외는 유지한다.

initialize 응답의 capabilities.tools.listChanged를 문서는 true로
적고 있었으나 InitializeHandler는 false를 낸다. 현재 HTTP 단발 응답
transport가 notification을 push할 수 없으므로 false가 맞다. 예제와
architecture.md를 코드에 맞추고, ToolListChangedEvent가 발행되지만
아직 소비되지 않는다는 점과 SSE 도입 시 true로 바꾼다는 조건을
남긴다.

169개 테스트 전부 통과.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 17:16:13 +09:00
2d730ea9c1 local-fixtures 추가 가상 tool server json파일로 대체
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m33s
2026-09-08 13:56:13 +09:00
6653030f03 Isolate route manifest failures during tool preload
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m29s
2026-09-02 17:40:06 +09:00
8a6c3617b4 Remove route key from initialize metadata
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m27s
2026-09-02 17:28:38 +09:00
9905d52db3 tool-service-manifest 적용
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m32s
2026-09-02 16:24:56 +09:00
548c36f97d Remove README.md and ignore generated repository documentation
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m36s
2026-08-31 14:40:37 +09:00
6526e732f9 주석 변경, MCP 기본 retry 정책 적용
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m37s
2026-08-31 14:37:12 +09:00
2e997b1819 Relax standard header validation and preserve optional values
Some checks failed
Deploy Gateway / deploy (push) Failing after 0s
2026-08-28 14:03:20 +09:00
c9a6bd2b0a Remove obsolete implementation files
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m51s
2026-08-27 15:56:25 +09:00
fe7d8243f6 delete portal
All checks were successful
Deploy Gateway / deploy (push) Successful in 1m59s
2026-08-20 09:45:53 +09:00
5cfb8a1bca Ignore docs directory
All checks were successful
Deploy Gateway / deploy (push) Successful in 1m56s
2026-08-20 09:28:33 +09:00
3de052a22d Ignore .docs directory
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m15s
2026-08-20 09:07:26 +09:00
60788525d6 Use manifest-defined endpoints for tool routing
All checks were successful
Deploy Gateway / deploy (push) Successful in 2m35s
2026-08-19 11:43:24 +09:00
윤희준
422dd8c6e7 fix: correct docker build context to ./dap-was-dapms
All checks were successful
Deploy Gateway / deploy (push) Successful in 5m30s
2026-08-18 16:24:51 +09:00
787489f6c1 Format JSON payloads for readable HTTP logging
All checks were successful
Deploy Gateway / deploy (push) Successful in 1m34s
2026-08-18 15:55:00 +09:00
0a21031a42 Remove payload logging from shared trace configuration
All checks were successful
Deploy Gateway / deploy (push) Successful in 1m38s
2026-08-18 15:44:45 +09:00
4e45a8f321 Add configurable MCP payload tracing and external tool domains
All checks were successful
Deploy Gateway / deploy (push) Successful in 1m48s
2026-08-18 15:21:32 +09:00
윤희준
3e0c251488 feat: add gitea actions workflow for deploy
All checks were successful
Deploy Gateway / deploy (push) Successful in 1m39s
2026-08-18 13:11:51 +09:00
윤희준
c41e9f2da4 test webhook trigger final 2026-08-18 12:51:12 +09:00
윤희준
9ddcb99631 test webhook trigger after api 2026-08-18 12:49:02 +09:00
윤희준
044c8ef767 test webhook trigger 2026-08-18 12:46:41 +09:00
7f431a1c37 Support local resource Portal registry loading 2026-08-18 10:08:48 +09:00
윤희준
e86942ddd4 fix: change serviceKey to match specific bundleIds like was-cus, was-sal 2026-08-15 08:56:25 +09:00
윤희준
86e63ced18 fix: change serviceKey to match the actual bundleId of tool services 2026-08-15 08:54:37 +09:00
윤희준
a86a03ca90 fix: add required fields to mock portal registry json 2026-08-15 08:52:43 +09:00
윤희준
ed0958ef43 fix: change mock portal url to use .json extension for correct content-type 2026-08-15 08:49:35 +09:00
윤희준
b1286a6cd2 chore: Add local mock portal for Gateway routing
* AX Portal이 배포되지 않은 상태에서 Gateway가 툴 엔드포인트를 찾지 못하는 문제를 해결하기 위해,
  Nginx 기반의 정적 가짜 포털(portal-mock)을 도입했습니다.
* deploy/docker-compose.yml 에는 MCP_PORTAL_REGISTRY_URL을 portal-mock으로 바라보게 설정하였으며,
  deploy/portal-registry.json 에 하드코딩된 CUS, SAL, PRO, SYS 경로를 제공합니다.
* 향후 실제 AX Portal이 구성되면 docker-compose.yml의 주소를 실제 운영 포털로 변경해야 합니다.
2026-08-15 08:47:23 +09:00
189277a78c Update project functionality and configuration 2026-08-14 17:59:07 +09:00
a4eb5a580f Initial commit 2026-08-05 15:54:25 +09:00