OpenAPI 스펙에 x-filterable-fields 확장을 자동 생성하는 파이프라인. lucida-ui gridColumnDefs + lucida-meta i18n properties를 조합하여 필드명/한국어 title/operators를 추출
AI가 gridFilters/tagFilters의 필드명, 한국어 라벨, 허용 operator를 알 수 있도록 OpenAPI 스펙에 x-filterable-fields 확장을 자동 생성하는 파이프라인. 3개 프로젝트(lucida-ui, lucida-meta, 백엔드 모듈)의 데이터를 조합한다. GridFilter 정확도 29% → 80%+ 개선 목표.
x-filterable-fields 추가 요청FiltersPageableDto 사용 엔드포인트의 필드 메타데이터 필요swagger-ai-optimization 스킬의 연장선)lucida-ui (프론트엔드 테이블 컬럼 정의)
shared/constants/{domain}/gridColumnDefs.ts
→ { field, headerName/displayName, filter타입 }
↓ tt() 키
lucida-meta (백엔드 i18n 메시지)
src/main/resources/META-INF/messages_ko_kr.properties
→ cmm.xxx = 한국어 라벨
↓ 조합
각 백엔드 모듈 OpenAPI 스펙
x-filterable-fields 삽입 (grid + tags)
대상: shared/constants/{sms,dpm,apm,nms,...}/gridColumnDefs.ts
추출 패턴 3가지:
// 패턴 A: tt() 함수 — 가장 일반적
{ field: 'hostname', headerName: tt('cmm.system_name'), filter: GridFilter.Text }
→ { field: "hostname", ttKey: "cmm.system_name", filterType: "Text" }
// 패턴 B: raw 문자열 — tt 없이 직접
{ field: 'ip', headerName: 'IP', filter: GridFilter.Text }
→ { field: "ip", rawLabel: "IP", filterType: "Text" }
// 패턴 C: displayName 사용
{ field: 'availabilityStatus', displayName: tt('cmm.availability_status') }
→ { field: "availabilityStatus", ttKey: "cmm.availability_status" }
Regex 예시: