Catalog 종류#
| Catalog | Web UI 메뉴 | stly 리소스 | 기록하는 정보 |
|---|---|---|---|
| System | Systems | systems | 여러 Service·API·System을 묶는 구성 |
| Service | Services | services | 이름·요약·설명·수동 Status |
| API | APIs | apis | 이름·요약·설명·호출 기준 주소(Base URL) |
| Endpoint | Endpoints | endpoints | HTTP Method·Path, Parameter·Header·Request Body·Response의 Schema와 예제 |
| Workflow | Workflows | workflows | Endpoint·Workflow를 호출하는 순서 있는 Step |
| Database | Datastores | databases | Database Metadata와 engine별 소속 구조 |
| Messaging | Queues | messaging-clusters·kafka-topics | Kafka Cluster와 Topic, Message Definition, 발행·소비 사용 설명 |
| Repository | Repositories | repositories | 이름·Git URL·설명과 OpenAPI·AsyncAPI·Arazzo 스펙 문서 |
Database의 소속 구조는 engine에 따라 다릅니다.
| engine | 소속 구조 | stly 리소스 |
|---|---|---|
| PostgreSQL·MySQL·MariaDB·Oracle·Microsoft SQL Server | Table | tables |
| MongoDB | Collection | collections |
| Redis | Key Pattern | key-patterns |
| Cassandra | Table | cassandra-tables |
주소 이름#
System·Service·API·Workflow·Database·Messaging Cluster·Repository는 이름과 별도로 handle을 가집니다. handle은 Web 주소에서 항목을 가리키며 같은 Organization의 같은 Catalog 안에서 고유합니다.
https://<Structly 주소>/o/acme/services/orders-service- 3~39자의 영문 소문자·숫자·하이픈으로 구성하며 숫자로 시작할 수 있습니다. 하이픈으로 시작·끝나거나 연속할 수 없습니다.
- 생성할 때 필수입니다. Web UI는 이름에서 만든 후보를 채우며 한글만 있는 이름은 직접 입력합니다.
- 이름을 바꿔도 handle은 바뀌지 않습니다. 수정에서 handle을 바꾸면 이전 주소는 즉시 해제되어 다른 항목이 쓸 수 있고, 새 주소로 자동 이동하지 않습니다.
- Database는
structures를 쓸 수 없습니다. - Endpoint와 Table·Topic 같은 소속 구조는 handle 없이 ID로 주소를 만듭니다.
- 연결·stly 명령의 대상 지정에는 계속 ID를 씁니다.
Catalog 사이의 연결#
| 연결 | 내용 |
|---|---|
| API → Service | API마다 제공 Service를 하나 지정합니다. Service 상세에서 제공 API를 확인합니다. |
| API → Endpoint | Endpoint는 하나의 API에 선택적으로 속합니다. |
| Service → Repository | Service의 코드가 있는 Repository를 연결합니다. |
| Service → Database·소속 구조 | Service가 사용하는 Database와 Key Pattern·Table·Collection·Cassandra Table을 각각 연결합니다. |
| Service → Kafka Topic | Topic의 발행·소비 사용 설명에 Service를 지정할 수 있습니다. |
| System → Service·API·System | System이 직접 포함하는 구성을 기록합니다. System은 다른 System을 포함할 수 있지만 순환은 허용하지 않습니다. |
| Workflow → Endpoint·Workflow | Workflow의 각 Step이 호출할 Endpoint 또는 다른 Workflow를 지정합니다. |
| OpenAPI 문서 → API·Endpoint | OpenAPI 문서 하나를 API 하나와 연결하고 승인한 변경을 API·Endpoint에 반영합니다. 문서는 Repository에 두거나 Repository 없이 등록합니다. |
연결된 항목은 양쪽에서 탐색할 수 있습니다. 예를 들어 Service 상세에서 제공 API를, API 상세에서 제공 Service를 확인합니다. 다른 항목과의 연결이 남아 있으면 삭제할 수 없는 Catalog가 있습니다. 조건은 Catalog 가이드의 각 페이지를 참고합니다.
통합 검색#
Web UI 상단의 검색 창(⌘K·Ctrl+K)과 stly catalog search는 여러 Catalog의 이름·요약·설명을 한 번에 찾습니다.
Endpoint는 Path를, Workflow는 Key를 함께 찾으며 대소문자를 구분하지 않습니다.
stly catalog search --q 주문