Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Slate 앱의 Marketplace 패키징

Foundry DevOps의 Marketplace 제품에 Slate 앱을 포함하면 다른 사용자가 설치하여 재사용할 수 있습니다. 단일 페이지, 여러 페이지와 데이터 로딩이 없는 정적 앱을 지원하며 페이지, 경로와 구조를 유지합니다.

제품에 추가

제품을 만들고 outputs를 추가할 때 Add files를 선택합니다. Compass 파일시스템에서 Slate 앱을 찾아 제품에 포함합니다.

설치 매개변수

설치마다 달라질 기본값은 Local 변수를 Marketplace parameter로 표시합니다.

  1. Variables 패널에서 홈 문서 페이지의 Local 변수를 선택합니다.
  2. 변수 메뉴에서 Marketplace parameter를 켭니다.
  3. String 또는 Boolean 유형을 선택합니다.

패널에는 매개변수 표시가 나타나며 설치자가 값을 지정할 수 있습니다. Shared 변수와 여러 페이지 앱의 다른 페이지에 있는 변수는 지원하지 않습니다.

Code Sandbox 라이브러리

Code Sandbox의 외부 라이브러리도 패키징할 수 있습니다. 설치 때 라이브러리 파일을 복사하려면 제품의 Content 아래 Files 탭에 해당 파일을 포함합니다. 설치자의 프로젝트에 파일 사본을 만들고 위젯이 그 사본을 참조합니다.

CDN의 직접 JavaScript 파일 URL을 사용하는 구성도 가능합니다. 예를 들어 https://unpkg.com/chart.js@2.7.1/dist/Chart.min.js 같은 URL은 설치 때 변경하지 않습니다. 대상 환경의 CSP가 그 URL을 허용해야 할 수 있습니다. 라이브러리의 로딩 조건은 Code Sandbox의 CORS/CSP 계약도 따릅니다.

OSDK 의존성과 bundle

OSDK를 사용하는 Slate 앱은 Foundry DevOps가 온톨로지 의존성을 자동으로 처리하므로 별도로 같은 의존성을 수동 구성할 필요가 없습니다.

제품을 게시할 때 사전 생성한 OSDK bundle도 포함합니다. 설치 시 이를 복사하므로 처음부터 다시 생성하는 작업을 줄입니다.

이전 제품 다시 패키징

사전 생성 bundle을 포함하는 방식 이전에 패키징한 제품은 설치 때 OSDK를 재생성합니다. 새 방식으로 패키징하려면 제품을 열고 새 버전을 만든 뒤 게시합니다. Slate 앱 코드 자체를 바꿀 필요는 없습니다.

API 이름

대상 온톨로지 리소스는 원본 앱과 같은 API 이름을 사용해야 합니다. prefix 없이 설치하거나 API 이름이 같은 기존 리소스에 입력을 매핑하는 방식을 사용합니다.

이름이 다르면 Slate 함수 코드가 대상 엔터티와 맞지 않으므로 설치 후 코드를 수정해야 합니다. 다음 경우를 확인합니다.

  • 대상 환경에 같은 API 이름의 엔터티가 이미 있는 경우입니다. 두 환경에 flights가 있는 경우가 한 예입니다.
  • 표시 이름과 API 이름이 다른 경우입니다. 표시 이름 flights, API 이름 flightsXYZ인 유형이 설치 시 기본 API 이름 flights를 받으면 코드가 맞지 않고 기존 flights와 충돌할 수도 있습니다.

이 조건은 객체 유형, 링크 유형, 액션 유형과 함수에 적용됩니다. 구체적인 표시 이름으로 충돌 가능성을 줄이고 대상 유형을 확인하며 설치 때 이름이 바뀌면 Slate 코드도 맞춥니다.

OSDK를 Marketplace로 패키징하는 이 경로에서는 함수의 최신 버전만 지원합니다. 과거 버전을 참조하는 앱은 최신 버전으로 갱신하여 다시 패키징합니다.

지원하지 않는 구성

  • Postgres 질의를 포함한 사용자 데이터 소스는 지원하지 않으며 API Gateway 소스만 지원합니다.
  • Global stylesheet는 지원하지 않습니다.
  • Foundry Form과 Time Series 위젯은 지원하지 않습니다.

OSDK를 JSON으로 가져오거나 Save as로 복사하는 동작은 앱 전송의 별도 bundle 계약을 따릅니다.