본문으로 건너뛰기

Extensions와 Integrations

두 가지 상태를 구분하세요

  • 구현된 lane: generation-2 multi-declaration container의 packing, drop-folder install, Project-scoped exact catalog query와 authenticated read relay, presentation resolution port, Python worker execution이 저장소에 구현돼 있고 in-repo conformance test가 덮습니다. admitted Component는 host-owned component.declarative@2 body로 투영됩니다.
  • 공개 third-party admission — contract_only이고 fail closed: RFC-014는 implementationState: partial-foundation과 그 구현 근거를 기록하지만 productAvailability: contract_only를 유지합니다. 외부 publisher의 공개 배포·admission과 package executable UI는 막혀 있습니다. RFC-016의 격리 rich-surface 구현도 RFC-014의 공개 publisher admission을 대신 열지 않습니다. 이 페이지의 catalog 동선과 Integration 예시는 전부 이 상태입니다.

@px.component는 companion metadata와 annotation-derived port를 등록합니다. portable Component container V1은 content/component.json 선언 하나를 읽고, generation-2 container는 한 release가 여러 Component를 나릅니다. 한 container의 다중 선언과 host presentation 계약은 Node presentation과 third-party UI가, 격리된 rich surface는 RFC-016이 소유합니다.

향후 필요한 기능은 Components에서 찾습니다. Component 외에 전용 editor, viewer, data adapter 또는 사용자 화면도 함께 제공할 때 그 전체 기능을 Extension으로 분류하고, 외부 제품·서비스를 연결하면 Integration으로 안내합니다.

계획된 Component catalog 동선

향후 Flow에 기능을 추가할 때는 Components에서 이름이나 작업 category로 검색합니다. Component 상세에는 해당 기능을 제공하는 package, publisher, version과 함께 제공되는 Extension 기능이 표시됩니다.

목표 동선에서는 Component를 Node로 배치하고, RFC-016 격리 surface 또는 별도 Integration owner가 승인한 화면을 엽니다. 외부 publisher package는 RFC-014 공개 admission을 먼저 통과해야 합니다.

계획된 Extension contribution

Contribution계획된 위치Flow Node가 생기는 시점
@px.component ComponentComponents향후 사용자가 Canvas에 배치할 때
shared FunctionDefinitions → FunctionsFunction Reference Node로 배치할 때
전용 editor·viewer배치된 Component의 Open editorRFC-016 surface가 resolve되고, 외부 publisher라면 RFC-014 공개 admission도 통과한 뒤
data source·artifact adapterData sources 또는 해당 연결 화면계획된 별도 Component를 배치한 경우에만
standalone app surfaceApps계획된 Flow Node와 분리된 화면 entry
manual·example·templateComponent 또는 Extension 도움말Canvas 구성을 바꾸지 않음

목표 catalog는 각 contribution을 역할에 맞는 화면에서 찾도록 구성합니다. 하나의 Python package/distribution이 여러 종류와 Component를 제공할 수 있으며, Components에는 @px.component companion metadata로 공개한 기능을 연결할 계획입니다.

Integration 예시

외부 구조 해석 제품을 연결하는 Integration은 다음과 같은 여러 Component를 한 Python package/distribution에서 제공할 수 있습니다.

ComponentFlow에서 하는 일전용 UI 예시
Model selector연결할 model reference 선택account·project·model picker
Load case pickertyped load case 선택검색·다중 선택
Run analysisexternal solver 호출실행 settings와 상태
Result tabletyped result를 표로 반환column·case filter
Model viewermodel과 result를 시각화넓은 read-only viewer

MIDAS Civil, SAP2000처럼 외부 API를 연결하는 package는 Integration으로 분류할 계획입니다. 향후 각 package 상세는 설치 이름, public import, 제공 Component와 필요한 credential·network capability를 안내합니다.

UI·문서 확장 예시

향후 Streamlit처럼 사용자 화면을 만드는 package는 Flow용 Component와 standalone app surface를 함께 제공할 수 있습니다. 목표 Components에는 Flow에 놓을 수 있는 parameter form, data grid 같은 Component가 표시되고, standalone 화면은 Apps에서 엽니다.

문서 작성 기능을 제공하는 Extension은 document editor Component, template과 export 기능을 함께 제공할 수 있습니다. 넓은 editor는 RFC-016 격리 surface를 사용하고, 외부 publisher package에서는 RFC-014 공개 admission이 닫힌 뒤 Component Node의 Open editor에서 엽니다.

계획된 Third-party Component 상세가 답해야 할 것

향후 Component 상세 페이지는 사용자가 한 번에 복사하고 확인할 수 있도록 같은 순서를 사용합니다.

  1. 기능 이름과 한 문장 설명
  2. Add to project와 설치 package/version
  3. Python import와 flow.node(...) 최소 예제
  4. settings
  5. input
  6. result
  7. Studio 화면 위치
  8. compatibility, capability와 문제 해결

SDK로 Component를 제작하는 방법은 Component 만들기와 배포, 설치 후 사용하는 공통 흐름은 Components 사용하기에서 이어집니다.