앱
앱은 콘솔 안, 작업 대상 콘텐츠 옆에 여러분만의 도구를 넣습니다. 인터페이스는 직접 호스팅하는 웹 페이지이며, 애플리케이션이 쓰는 것과 같은 GraphQL API로 읽고 씁니다.
네 가지 플레이스먼트
앱 페이지는 콘솔에 iframe으로 포함되며, 네 곳 중 한 곳에 놓입니다. 탐색의 전체 페이지, 레코드 편집기의 탭, 레코드 편집기의 사이드바 패널, 또는 한 필드의 기본 입력을 대체하는 필드 편집기입니다. 탭이나 사이드바는 모델에 연결되며, 일치하는 모델의 레코드가 열려 있을 때 나타납니다.
레코드와 함께 작업하기
편집기 플레이스먼트는 Editor SDK로 콘솔과 통신합니다. 이 SDK는 @foir/sdk에 들어 있으며 React 18 이상이 필요합니다. 콘솔은 페이지가 로드될 때 레코드의 값, 스키마, 테마를 보내며, 저장, 게시, 버전 관리는 계속 콘솔이 맡습니다. 전체 페이지는 그것을 보고 있는 팀원으로 동작하며, 해당 플레이스먼트가 선언하고 그 사람도 가진 스코프만 사용합니다. 토큰은 한 번에 5분간 유지되고 로그아웃하면 끝납니다.
설치와 마켓플레이스
앱은 마켓플레이스에서 설치하거나 매니페스트 URL을 붙여 넣어 설치합니다. 마켓플레이스는 큐레이션되며, 목록에 없는 앱은 URL로 설치합니다. 어느 경우든 설치 미리 보기에는 앱의 각 오퍼레이션이 무엇을 읽거나 쓸 수 있는지 정확히 표시됩니다.
프로젝트 하나를 위한 도구
단일 프로젝트의 탭이나 사이드바는 foir.config.ts에 직접 선언한 뒤 푸시할 수 있습니다. 도구를 여러 프로젝트에서 재사용한다면 앱을 만드세요. 제공하는 페이지는 콘솔을 프레임 상위 요소로 허용해야 하며, 그렇지 않으면 브라우저가 빈 화면으로 렌더링합니다. SDK는 이를 위해 placementFrameAncestors를 제공합니다.