Fóir가 하는 모든 일

콘텐츠 API는 애플리케이션에 필요한 것 중 가장 작은 부분입니다. 이곳에 나머지가 있습니다.

콘텐츠

정보를 구성하는 방식입니다.

모델과 필드

리치 텍스트, 정확한 십진수, 미디어, 참조, 지오포인트를 포함한 열여섯 가지 기본 필드 유형으로 데이터의 형태를 콘솔 또는 코드에서 정의합니다.

관계

참조 필드로 한 모델이 다른 모델을 가리키게 하고 하나의 쿼리로 가로질러 읽습니다. 관계 유형에 따라 액세스와 삭제가 참조를 따라갈지 결정됩니다.

prose와 인라인 모델

단락 사이에 직접 정의한 모델을 순서에 관계없이 넣을 수 있는 리치 텍스트, 한 번 정의해 필드 유형으로 재사용하는 인라인 모델, 그리고 타입 지정 리스트.

계층 구조

참조 필드를 모델의 계층 구조로 선언하면 레코드가 트리를 이루며, 모든 읽기가 레코드의 경로와 상위 항목을 반환합니다.

로케일

텍스트와 prose 필드를 로케일별로 번역하며, 필드 단위로 대체 체인을 따라가고, 번역이 없는 필드를 알려 주는 엄격 모드가 있습니다.

개인화

서버가 읽기 요청에 전달된 컨텍스트와 로그인한 사용자가 속한 세그먼트를 바탕으로, 요청이 받을 레코드의 버전을 선택합니다. 실제 예시가 포함되어 있습니다.

변형

재사용 가능하고 우선순위가 있는 타기팅 규칙으로 서버에서 변형을 선택하여, 레코드 전체, 단일 필드, 단일 prose 항목을 오디언스별로 달리합니다.

오디언스와 세그먼트

기기, 플랫폼, 로케일, 로그인 상태 같은 컨텍스트 차원과, 서버가 모든 요청마다 평가하는 규칙 기반 세그먼트로 오디언스를 구성합니다.

자연 키와 룩업

읽기 쉬운 키로 레코드를 지정하고, 모델에 고유한 룩업 키를 추가로 선언하면 핸들이나 SKU로 타입 지정 쿼리 한 번에 찾을 수 있습니다.

디자인 토큰

색상, 서체, 간격을 프로젝트의 토큰으로 보관하고 API로 제공하므로, 런타임에 토큰을 읽는 앱은 게시되는 즉시 리브랜딩을 반영합니다.

게시

공개하고, 되돌리는 방법입니다.

초안

게시가 켜진 모델에서는 저장할 때마다 초안이 기록되고 API는 게시된 버전을 계속 제공합니다. 콘솔은 API가 제공할 모습 그대로 초안을 미리 보여 줍니다.

버전 이력

버전 관리 모델에서는 저장할 때마다 번호가 붙은 버전이 되며, 요금제가 정한 기간 동안 보관됩니다. 복원하면 새 버전이 추가되고, 드라이 런으로 먼저 영향을 확인할 수 있습니다.

예약 게시

레코드 버전에 게시 시각을 설정하고, 콘텐츠를 다시 내려야 한다면 게시 취소 시각도 설정합니다. 실행되기 전까지는 스케줄을 변경하거나 취소할 수 있습니다.

롤아웃

롤아웃은 이름을 붙인 레코드 버전 묶음을 예약한 한 시점에 게시합니다. 실패한 항목은 건너뛰고 다시 시도할 수 있으며, 묶음 전체를 롤백할 수 있습니다.

릴리스

모델과 설정의 변경은 초안으로 대기시킨 뒤 지금 또는 지정한 시각에 함께 릴리스되며, 호환성을 깨는 변경의 diff와 롤백을 제공합니다.

모델별 동작

버전 관리, 게시, 변형은 모델별로 켜며 기본값은 꺼짐입니다. 그래서 각 모델은 레코드에 필요한 워크플로만 갖습니다.

전송

애플리케이션에 도달하는 방식입니다.

타입 지정 GraphQL

Fóir는 모델에서 GraphQL 스키마를 생성합니다. 프로덕션은 게시된 스키마를 제공하고, 커밋된 타입이 프로젝트보다 뒤처지면 CLI 검사가 빌드를 실패시킵니다.

읽을 때 결정

읽기 요청은 로케일, 컨텍스트, 미리보기 플래그를 전달합니다. 서버가 로케일 대체를 적용하고, 변형을 선택하며, 초안 또는 게시된 버전을 고릅니다.

라이브 업데이트

WebSocket으로 구독하여 레코드가 변경될 때 알림을 받습니다. 이벤트에는 변경된 대상의 ID가 담기며, SDK의 라이브 모듈이 이를 쿼리 캐시에 적용합니다.

API 키

각 키는 공개 또는 시크릿이며 하나의 프로젝트에 속합니다. 부여한 스코프를 가지며, 선택한 모델과 오퍼레이션 또는 하나의 조직으로 범위를 좁힐 수 있습니다.

응답 캐싱

GraphQL API는 결정된 응답을 기본 60초 동안 캐시하고, 응답에 포함된 레코드가 기록되면 캐시를 폐기합니다. CLI 명령으로 수동 삭제할 수 있습니다.

SDK와 CLI

애플리케이션을 위한 GraphQL을 대신 작성하고 키별로 타입을 생성하는 타입 지정 클라이언트, 그리고 스크립트용 JSON 출력을 지원하며 콘텐츠, 스키마, 게시, 설정을 다루는 CLI.

자동 적용되는 한도

요청 속도는 요금제에 따라 키별로 설정되며, 쿼리 깊이, 필드 수, 별칭은 쿼리가 실행되기 전에 제한됩니다. 응답 헤더에 한도가 표시됩니다.

신원과 액세스

누가 무엇을 보고 할 수 있는지입니다.

호스팅 로그인

Fóir가 사용자를 위해 확인된 로그인 도메인에서 호스팅하는 로그인 페이지로, 프로젝트의 이름, 로고, 색상을 담고 비밀번호, 이메일 코드, 공급자 로그인을 지원합니다.

OpenID Connect 로그인

사용자는 OpenID Connect 디스커버리 문서를 게시하는 모든 ID 공급자로 로그인합니다. 디스커버리 URL과 클라이언트 자격 증명을 제공하면 Fóir가 교환을 처리합니다.

단계별 인증

민감한 오퍼레이션 전이나 앱에 로그인할 때마다, 비밀번호 다음 두 번째 단계로 패스키 또는 인증 앱 코드를 요구합니다.

역할

역할은 직접 구성하는 권한의 집합이며, 워크스페이스 전체 또는 하나의 프로젝트에 부여됩니다. 사용자의 역할은 프로젝트별로 설정 또는 CLI에서 선언합니다.

레코드 수준 액세스

모델이 레코드의 소유자를 선언하고, 각 레코드는 비공개 또는 공개입니다. 비공개 레코드는 해지할 수 있는 권한 부여로 지정한 사람과 공유할 수 있습니다.

필드 수준 액세스

필드마다 읽을 수 있는 호출자 유형과 쓸 수 있는 호출자 유형을 지정할 수 있습니다. 유형은 다섯 가지이며, 요청이 가진 자격 증명으로 결정됩니다.

세션 제어

콘솔은 사용자 지정 로그인 도메인에서 사용자가 유지 중인 세션을 로그인 앱별로 보여 주고, 원하는 세션을 해지할 수 있습니다. 그 밖의 로그인은 토큰 해지 또는 만료로 종료됩니다.

감사 추적

누가 언제 무엇을 했는지가 변경과 함께 기록되며, 권한을 가진 팀원이 콘솔에서 읽을 수 있습니다. 항목은 90일 동안 보관됩니다.

보안

데이터를 다른 모든 사용자와 분리하는 방식입니다.

데이터베이스에서 강제 적용

액세스 규칙은 Postgres 행 수준 보안으로 컴파일되므로, 요청이 읽을 수 있는 내용을 데이터베이스가 걸러내며 애플리케이션 코드에서 빠뜨린 검사가 행을 노출하지 않습니다.

워크스페이스 격리

워크스페이스는 사용자의 계정입니다. 관리되는 모든 행에는 워크스페이스 ID가 있고, 테이블의 정책은 다른 무엇보다 먼저 그 ID를 호출자의 세션과 비교합니다.

프로젝트 격리

프로젝트마다 고유한 콘텐츠, 사용자, 파일, 키, 시크릿, 로그인 도메인이 있습니다. API 키는 정확히 하나의 프로젝트에 속하며 다른 프로젝트를 가리키도록 바꿀 수 없습니다.

조직 격리

제품에 자체 테넌트가 있다면 각각이 하나의 조직입니다. 데이터베이스가 모든 행에 조직을 기록하고 모든 읽기를 그 기준으로 걸러냅니다.

승인을 거치는 지원 액세스

도움을 주기 위해 Fóir 직원이 워크스페이스 내부를 확인해야 할 때는 관리자 중 한 명이 일회용 코드로 요청을 승인합니다. 접속은 한 시간 동안 유지되며 기록됩니다.

Demesne

규칙을 컴파일하는 엔진은 오픈 소스이므로, 정책이 어떻게 작성되는지 직접 읽고 테스트를 직접 실행할 수 있습니다.

프로젝트와 조직

에이전시, 그리고 자체 테넌트가 있는 제품을 위한 기능입니다.

클라이언트별 프로젝트

클라이언트마다 고유한 콘텐츠, 키, 사용자, 로그인을 갖춘 프로젝트가 생깁니다. 하나의 워크스페이스가 모두를 관리하고, 초대한 클라이언트는 자신의 프로젝트에만 접근합니다.

조직

제품에 자체 테넌트를 부여합니다. 고객 각각이 프로젝트 안의 조직이 되며, 고유한 구성원, 사용자, 데이터, 한도를 갖습니다.

조직 트리

조직은 깊이 제한 없이 중첩됩니다. 상위 조직은 그 아래의 모든 것을 읽고 자신의 행만 변경하며, 모델과 설정은 트리를 따라 아래로 상속됩니다.

조직 프로비저닝

호출 한 번으로 브랜드, 설정, 첫 구성원, 해당 조직으로 제한된 키를 갖춘 조직이 생성됩니다. 두 번 실행해도 조직은 하나만 만들어집니다.

스테이징과 프로덕션

하나의 설정 파일에 스테이징과 프로덕션을 이름 있는 프로젝트로 선언하고, CLI는 실행마다 한쪽으로 푸시합니다. 선언된 대상을 제외하면 둘은 동일하게 유지되며, 차이는 보고됩니다.

사용자 지정 도메인

프로젝트는 확인한 도메인에서 API를 제공할 수 있고, 로그인 앱은 호스팅 로그인 페이지를 도메인에서 제공할 수 있습니다. 둘 다 선택 사항이며 TLS는 자동으로 발급됩니다.

미디어

파일과 그에 대한 작업입니다.

에셋 라이브러리

파일을 한 번 업로드하면 어느 레코드에서든 ID로 참조할 수 있으며, 업로드가 확인될 때 이미지에서 크기와 플레이스홀더를 읽어 둡니다.

이미지 변환

각 이미지는 이름이 있는 여덟 가지 크기와 네 가지 형식으로 제공되며, URL이 처음 요청될 때 렌더링되고, 용도별로 크롭과 초점을 설정합니다.

비공개 파일

파일에는 고유한 소유자와 공개 범위가 있습니다. 공개 파일은 일반 URL로, 비공개 파일은 만료되는 서명된 링크로 제공됩니다.

비디오

업로드된 모든 비디오에는 썸네일, 짧은 애니메이션 미리보기, 재생 시간이 생성되며, 일부 요금제에는 적응형 HLS 스트리밍이 포함됩니다.

자동화

사람 없이 이루어지는 작업입니다.

스케줄

스케줄은 지정한 시간대에서 크론 표현식에 따라 오퍼레이션 중 하나를 실행하며, 일시 중지, 재개, 수동 실행이 가능합니다.

라이프사이클 훅

훅은 레코드 게시 같은 일이 프로젝트에서 발생하면 오퍼레이션 중 하나를 실행하며, 모든 전송은 상태와 함께 저장됩니다.

오퍼레이션

오퍼레이션은 직접 호스팅하고 Fóir에 등록하는 HTTP 엔드포인트입니다. Fóir가 서명된 페이로드로 호출하고, 실패 시 재시도하며, 모든 실행을 기록합니다.

사용량 할당량

할당량은 롤링 윈도우 안에서 오퍼레이션을 실행할 수 있는 횟수를 로그인한 사용자별 또는 더 넓은 풀 단위로 제한하고, 작성한 메시지를 반환합니다.

사전 조건

사전 조건은 호출자의 세그먼트 소속 또는 입력에 대한 규칙에 따라 오퍼레이션 실행 여부를 결정하며, 작성한 메시지와 함께 거부합니다.

시크릿

오퍼레이션이 사용하는 자격 증명을 위한 볼트로, 암호화하여 저장하고 참조로 지정하며 재배포 없이 교체할 수 있습니다.

알림

이메일, 인앱 알림, 푸시 알림을 사용자에게 직접 또는 이벤트로부터 보내며, 사용자가 카테고리와 채널별로 환경설정을 지정합니다.

함께 일하기

사람, 그리고 에이전트입니다.

노트

팀이 레코드, 파일, 모델 등의 대상에 붙이는 스레드형 댓글로, 하나의 필드나 한 구절 단위까지 지정할 수 있으며 멘션과 프로젝트별 받은 편지함을 제공합니다.

작업

노트를 팀원에게 할당하면 마감일, 하위 작업, 사람별 큐를 갖춘 작업이 됩니다. 노트를 해결하면 완료로 표시됩니다.

Ask Fóir

로그인한 사람 본인의 권한으로 작동하는 콘솔 내 어시스턴트입니다. 편집 내용은 저장되지 않은 변경, 초안, 또는 승인 요청으로 도착합니다.

스레드를 Fóir에 맡기기

노트 스레드를 어시스턴트에 맡겨 짧게 한 번 무인으로 실행합니다. 프로젝트를 읽고 스레드에 답하며, 콘텐츠를 편집, 게시, 삭제할 수 없습니다.

모든 MCP 클라이언트

자체 에이전트를 Fóir의 호스팅 MCP 서버에 연결합니다. 에이전트는 연결한 사람의 권한 또는 부여받은 시크릿 키의 스코프 안에서 작동합니다.

사용자의 피드백

로그인한 사용자는 레코드에 대한 노트를 작성하고 팀의 답변을 읽을 수 있습니다. React 위젯이 노트를 대신 등록하며, 프로젝트는 방문자 피드백을 받을 수도 있습니다.

직접 보유

나가는 길, 그리고 확장입니다.

Postgres 내보내기

명령 하나로 프로젝트를 모델에서 생성된 타입 지정 Postgres 테이블로 내보내며, 외래 키, 게시된 콘텐츠, 파일 다운로드 링크가 포함됩니다.

내보내기에 포함되는 액세스 규칙

내보내기 번들에는 사용자별로 읽을 수 있는 행을 정하는 Postgres 행 수준 보안이 포함됩니다. 적용은 직접 합니다. 필드 권한, API 스코프, 쓰기 규칙은 포함되지 않습니다.

로직은 사용자의 것

Fóir는 코드를 호스팅하지 않습니다. 직접 호스팅하는 함수를 오퍼레이션으로 등록하면, Fóir가 서명되고 스코프가 지정된 토큰으로 호출하고, 실패 시 재시도하며, 실행마다 기록합니다.

앱

자체 도구로 콘솔을 확장합니다. 앱은 직접 호스팅하는 웹 페이지이며, 페이지, 편집기 탭, 사이드바, 필드 편집기로 삽입됩니다.

코드형 설정

모델, API 키, 훅, 로그인 공급자 등 프로젝트의 나머지 설정을 커밋하는 파일 하나에 담습니다. 푸시하면 초안이 대기되고 릴리스가 이를 게시합니다.

모델 하나로 시작하기

프로젝트를 만들고, 모델을 정의한 다음, API로 다시 읽어 보세요.