Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Foundry에서 프런트엔드 호스팅

Developer Console의 웹 호스팅은 HTML, CSS, JavaScript와 이미지 및 폰트 같은 정적 자산을 제공합니다. 브라우저에서 실행하는 React, Vue 또는 Angular SPA를 호스팅할 수 있으며 Node.js 서버, Python 서버나 서버 측 렌더링은 실행하지 않습니다. 백엔드 작업은 OSDK 또는 허용한 외부 API로 호출합니다.

앱과 플랫폼 조건

호스팅은 Client-facing application만 설정한 공개 OAuth 앱에 제공됩니다. Backend service도 함께 설정하면 기밀 클라이언트가 되어 웹 호스팅 옵션이 나타나지 않습니다.

기본 주소는 앱 하위 도메인과 플랫폼 인스턴스 도메인을 결합합니다. 소유한 사용자 도메인도 연결할 수 있습니다. .palantirfoundry.com으로 끝나지 않는 인스턴스, 폐쇄망이나 외부 DNS 관리 환경은 Palantir Support 및 인프라 팀과 추가 설정이 필요할 수 있습니다.

IL5와 FedRAMP 환경에서는 기능이 비활성화되어 보일 수 있으며 사용자 TLS 인증서와 호스팅 승인 및 네트워크 설정을 별도로 조정해야 합니다. 도메인 호스팅에 의존하는 기능을 만들기 전에 Control Panel의 하위 도메인 지원 API 또는 Developer Console의 지원 상태 도구로 실제 가용 여부를 확인합니다.

앱 자산 준비

프로덕션 빌드 디렉터리의 내용물을 ZIP으로 묶습니다. dist 디렉터리 자체를 넣으면 URL 경로에도 dist가 포함되므로 index.html 등이 압축 파일 루트에 위치해야 합니다.

항목최대
파일 수1,000개
총 업로드 크기20 MB

초과하면 번들링과 최소화, 사용하지 않는 파일 제거 및 이미지 압축으로 크기를 줄입니다.

인증 리다이렉트는 실제 호스팅 주소 뒤에 /auth/callback을 붙이고 앱 코드와 Developer Console에 같은 HTTPS 주소를 설정합니다. HTTP를 자동으로 HTTPS로 바꾸지 않으므로 http 주소를 사용하면 CSP 위반과 인증 문제가 생길 수 있습니다.

플랫폼 하위 도메인

Website hosting에서 사용할 하위 도메인을 정하고 Request application domain을 선택합니다. 그림의 my-first-hosted-app.example.palantirfoundry.com은 예제 주소입니다.

제출한 하위 도메인 요청은 편집할 수 없습니다. 이름을 바꾸려면 기존 요청을 취소하거나 닫고 새로 제출합니다.

Information Security Officer에게 승인을 요청합니다. 해당 권한이 있으면 View request로 직접 승인할 수 있습니다.

승인 후 몇 분이 걸릴 수 있습니다. 페이지를 새로 고쳐 Domain ready를 확인합니다.

사용자 소유 도메인

이 기능이 표시되지 않으면 플랫폼 인스턴스의 제공 여부를 Support에 확인합니다. 먼저 Control Panel에 대상 도메인을 포함하는 인증서를 만들어야 합니다. 인증서가 없으면 승인 요청이 성공하지 않습니다.

  1. Website hosting에서 Request to host on a custom domain을 선택합니다.

  1. 소유한 도메인, 요청 제목과 선택 설명을 입력하고 Request를 선택합니다.

  1. Information Security Officer가 승인할 작업이 만들어집니다. 성공 알림의 View에서 Control Panel 요청으로 이동할 수 있습니다.

  1. 승인 뒤 페이지를 새로 고쳐 연결 상태를 확인합니다.

요청할 때 Foundry에 로그인한 도메인의 네트워크 ingress와 인증 제공자 설정을 사용자 도메인이 상속합니다. 도메인의 DNS도 Foundry 환경을 가리키게 설정해야 합니다.

사용자 도메인 아래에 app.your-organization.com 같은 추가 하위 도메인을 만들려면 먼저 그 부모인 your-organization.com으로 Foundry에 로그인해야 합니다. 기본 인스턴스 도메인으로 로그인한 상태에는 해당 사용자 도메인의 하위 도메인 등록 옵션이 나타나지 않습니다.

외부 관리 DNS와 ingress

자동 wildcard DNS 및 인증서 구성이 없는 환경은 인프라 팀이 원하는 도메인의 DNS, TLS 인증서와 트래픽 ingress를 준비해야 합니다. 이 조건이 준비된 뒤 Support에 외부 관리 도메인의 호스팅 활성화를 요청합니다.

기능이 켜지면 Developer Console의 도메인 연결 절차는 같습니다. DNS, 인증서 및 ingress 구성은 앱 설정과 별도로 유지해야 합니다.

자산 업로드와 공개

Developer Console UI 또는 @osdk/cli로 업로드할 수 있습니다. CLI는 앱 안의 Deploying applications 가이드가 제공하는 해당 앱용 명령과 설정을 사용합니다. SuperRepo의 foundry CLI와는 다른 도구입니다.

UI에서는 다음 순서로 진행합니다.

  1. Assets에서 Upload new asset을 선택합니다.
  2. ZIP 파일을 끌어놓거나 선택한 뒤 Upload를 실행합니다.

  1. Preview로 사이트를 확인한 뒤 해당 버전의 옵션 메뉴에서 Deploy to production을 선택합니다.

Deploy to production은 모든 사용자가 보는 버전을 바꿉니다. 먼저 Preview site에서 확인한 뒤 공개합니다. View site는 배포한 사이트를 엽니다.

비동기 검사와 uploadOnly

일부 플랫폼 인스턴스는 자산 또는 취약점 검사를 비동기로 수행합니다. 업로드 직후 배포하면 검사가 끝나지 않아 실패할 수 있습니다.

foundry.config.json의 기존 설정에 다음 항목을 병합합니다.

{
  "site": {
    "uploadOnly": true
  }
}

true이면 publish가 새 버전을 업로드만 하고 즉시 프로덕션 배포하지 않습니다. 검사가 끝난 뒤 Developer Console에서 원하는 버전을 직접 배포합니다.

기본 false이면 업로드 후 즉시 배포도 시도하므로 업로드는 성공했어도 태그 상태는 실패할 수 있습니다. SiteAssetScanning:ScanningInProgress는 검사가 아직 끝나지 않아 배포가 차단되었다는 오류입니다. 검사 상태를 확인하고 완료 뒤 같은 버전의 배포를 다시 시도합니다.

웹사이트 사용자 권한

호스팅 사이트에는 Foundry 로그인 자격이 있는 사용자만 접근합니다. 공개 도메인을 사용한다고 익명 웹사이트가 되는 것은 아닙니다.

Compass 관리 앱은 프로젝트 또는 폴더에서 View application website 권한을 상속합니다. 설정 화면은 보지 못하고 사이트만 보게 하려면 해당 작업만 가진 사용자 지정 역할을 사용합니다. 기존 독립 앱은 Sharing & Tokens의 Share hosted website에서 사용자를 추가합니다.

두 권한 모델 및 이전은 앱 권한을 따릅니다.

CSP와 CORS

Website hosting의 Advanced에서 Content Security Policy를 추가할 수 있습니다. 기본은 해당 하위 도메인의 리소스를 허용하는 제한된 정책이며 추가 설정을 병합합니다. 외부 이미지나 서비스를 위해 범위를 넓히면 XSS와 데이터 주입 위험도 늘어납니다.

이 필드에는 문법 검증이 없으므로 필요한 출처와 directive를 정확히 지정합니다.

다른 Foundry 호스팅 앱의 자산을 읽을 때는 CSP와 별도로 CORS가 필요합니다. Control Panel의 CORS에서 자산을 제공하는 자식 앱 하위 도메인을 고르고 요청하는 부모 앱의 origin을 허용합니다. 예를 들어 parent-app.example.palantirfoundry.com이 child-app.example.palantirfoundry.com의 remoteEntry.js를 읽으면 자식 쪽에 https://parent-app.example.palantirfoundry.com을 추가합니다.

경로 매칭

다음 파일이 있다고 가정합니다.

file.html
folder/index.html
both.html
both/index.html
요청 경로제공 파일
/file, /file/, /file.html/file.html
/folder, /folder/, /folder/index.html/folder/index.html
/both, /both.html/both.html
/both/, /both/index.html/both/index.html

확장자나 마지막 슬래시를 하나의 선호 형식으로 리다이렉트하지 않습니다. 같은 이름의 파일과 디렉터리가 있을 때 /both와 /both/는 서로 다른 파일을 제공합니다.

루트에 404.html이 없으면 일치하지 않는 경로를 index.html로 보내 SPA 라우팅을 지원합니다. 사용자 404.html을 추가하면 이 기본 fallback을 끄고 일치하지 않는 경로에 해당 오류 페이지를 제공합니다.

호스팅 문제 확인

Website hosting is currently unsupported for your environment, 설정의 Page not found 또는 끝나지 않는 릴리스가 보이면 다음을 확인합니다.

  • 앱이 Backend service를 함께 선택하지 않은 공개 Client-facing 구성인지 확인합니다.
  • 외부 관리 도메인 호스팅이 플랫폼 인스턴스에 활성화되어 있는지 확인합니다.
  • 규제 또는 폐쇄망 환경의 추가 승인, DNS, TLS와 ingress가 준비되었는지 확인합니다.

Marketplace 배포와 브랜치 미리보기는 호스팅 자산을 소비하는 별도 릴리스 흐름입니다.