사양 우선, 나중에 문서화되지 않음
OpenAPI 스펙이 진실의 원천이며, 스펙에 포함되지 않은 엔드포인트는 절대 배포되지 않습니다. 이 단 하나의 규칙 덕분에 공개 API는 사후 문서화가 아닌 빌드 시점에 완벽하게 문서화될 수 있으며, 문서화되지 않은 엔드포인트는 존재할 수 없으므로 사각지대가 없습니다.
개발자용
Zinn Digital®은 API 중심 플랫폼입니다. 당사 대시보드를 구동하는 것과 동일한 엔진 API가 버전 관리되고 스펙 우선이며 빌드 시점에 100% 문서화되어 제공되며, 여기에 생성된 SDK, CLI, Terraform 프로바이더, 서명된 웹훅 및 MCP 서버가 추가됩니다. 터미널, 파이프라인, 상태 파일, AI 에이전트 등 작업에 사용하는 도구가 무엇이든 플랫폼은 그에 응답합니다.
대부분의 호스팅 업체는 제어판에 나중에 API를 덧붙이며, 그 결과 제어판 기능의 절반은 제대로 구현되지 않습니다. 저희는 반대로 만들었습니다. 대시보드, 관리자 콘솔, CLI, Terraform 공급자, MCP 서버 및 사용자 고유의 통합 기능 모두가 동일한 엔진 API를 사용합니다. 제어판에서 할 수 있는 일이라면 코드로도 할 수 있습니다.
OpenAPI 스펙이 진실의 원천이며, 스펙에 포함되지 않은 엔드포인트는 절대 배포되지 않습니다. 이 단 하나의 규칙 덕분에 공개 API는 사후 문서화가 아닌 빌드 시점에 완벽하게 문서화될 수 있으며, 문서화되지 않은 엔드포인트는 존재할 수 없으므로 사각지대가 없습니다.
인터랙티브 레퍼런스 문서, 4개의 클라이언트 SDK, CLI의 상당 부분 및 Terraform 프로바이더 스캐폴딩이 모두 단 하나의 스펙에서 생성됩니다. 하나의 소스, 다양한 결과물, 항상 동기화 — 구현과 멀어진 문서를 찾아 헤맬 일이 없습니다.
엔드포인트는 공개된 지원 중단 정책 및 변경 내역과 함께 /v1 아래에 위치합니다. 빌드 실패를 통해 뒤늦게 발견하는 대신, 변경 사항이 있기 전에 서면으로 미리 안내받으실 수 있습니다.
구현과 명세 간의 계약 테스트와 OpenAPI 린팅이 모든 변경 사항마다 실행됩니다. 코드와 계약 간의 차이가 발생하면 빌드가 실패하므로, 클라이언트를 생성하는 데 사용하는 명세는 서버가 실제로 준수하는 명세가 됩니다.
접속 방법은 두 가지이지만, 그 이면에는 하나의 일관된 원칙이 적용됩니다. 어떤 방법을 사용하든 동일한 권한 검사와 동일한 데이터베이스 수준의 격리가 보장됩니다.
키 형식은 zdk_<mode>_<prefix>_<secret>입니다. 비밀 값은 SHA-256 해시로만 저장되므로, 발급 후에는 저희도, 데이터베이스에 접근하는 그 누구도 키를 다시 보여드릴 수 없습니다. 키에는 권한 범위가 지정되며, 취소할 수 있고, 개인별이 아닌 조직별로 발급됩니다.
샌드박스 키는 프로덕션 키와 분리되어 있으며 샌드박스 모드로 실행됩니다. 실제 청구나 프로비저닝이 발생하지 않습니다. 통합 테스트 시 비용을 들이거나 서버를 구축하지 않고도 API를 마음껏 호출할 수 있습니다.
사용자 세션은 Keycloak에서 발급한 JWT로 인증되며 렘 공개 키로 검증되고, API 키와 동일한 Principal 객체로 확인됩니다. 엔드포인트는 조직별로 검사되는 sites.create 또는 apikeys.manage와 같은 세분화된 권한 키를 기준으로 접근을 제어합니다. 한 조직의 권한은 하위 조직에는 적용되지만, 별도의 관련 없는 조직에서는 어떠한 접근 권한도 부여하지 않습니다.
모든 테넌트 요청은 주체(principal)로부터 설정된 Postgres org 스코프와 함께 트랜잭션 내에서 실행되므로, 누군가 깜빡할 수 있는 ORM 필터가 아니라 데이터베이스에 의해 격리가 강제됩니다. 쿼리셋 필터는 심층 방어(defence in depth)를 위해 여전히 유지됩니다.
README에서는 API를 그럴싸하게 보이게 만들기 쉽지만, 실제 트래픽 환경에서 제대로 작동하게 만들기는 어렵습니다. 바로 이 부분들을 우리가 공들여 해결했습니다. 새벽 세 시에 연동을 깨뜨리는 주범이 바로 이 지점들이기 때문입니다.
대량 작업의 작동 방식에 영향을 미치므로 짚고 넘어가야 할 세부 사항이 있습니다. 중복 도메인에 대한 409 응답은 모든 테넌트를 대상으로 "이 호스트 이름이 여기에 호스팅되어 있는가?"에 답하며, 이는 열거 오라클(enumeration oracle)이자 Footprint-Free에 대한 실제적인 비익명화 위험입니다. 사이트 생성을 제한하는 것은 게으른 해결책이었을 것이며 대량 프로비저닝 제품을 완전히 망가뜨렸을 것입니다. 대신 거부된 중복 도메인 시도에 대해서만 주체(principal)별로 예산이 부과됩니다. 성공적인 생성에는 절대 부과되지 않으므로 하루 종일 대량으로 프로비저닝할 수 있으며, 탐색 시도는 거의 즉시 차단됩니다.
동일한 사양을 가진 세 가지 소비 형태, 세 가지 다른 작업 방식.
TypeScript, Python, PHP 및 Go용으로 생성되며 사양을 추적하므로 수동으로 작성된 래퍼를 기다릴 필요 없이 새로운 엔드포인트가 귀하의 언어로 제공됩니다.
WordPress 사이트를 구축하고, Node 외에 아무것도 설치하지 않은 상태에서 로컬로 실행한 후 배포하세요. Zinnector®는 배포하려는 슬롯(PHP 버전, 디스크, 파일 수)을 기준으로 프로젝트를 사전 점검하여, 푸시한 후가 아니라 푸시하기 전에 경고합니다. 또한 로그인, 사이트 나열, 배포, 도메인 및 DNS 관리, 메일 서비스 읽기, 백업 수행, 화이트리스트에 등록된 WP-CLI 실행, 로그 테일링, 대량 작업 실행 기능을 제공합니다. 무료이며 MIT 라이선스가 적용되고 동일한 공개 API를 기반으로 제작되었습니다.
사이트, 도메인, DNS 레코드, 사서함 및 플랜을 코드로 인프라를 관리하듯 관리하세요. terraform apply를 통해 호스팅을 프로비저닝하면, 기록되지 않은 클릭 작업의 연속 대신 환경을 재현 가능하고 검토 가능한 상태로 만들 수 있습니다.
동일한 스펙에서 비롯되었으므로, 서버가 구현하는 엔드포인트를 정확히 설명하며 브라우저에서 읽고 호출할 수 있는 생성된 문서입니다.
플랫폼의 이면에는 견고한 이벤트 스파인(event spine)이 자리 잡고 있습니다. 모든 상태 변경은 데이터베이스 변경과 원자적으로 Postgres의 트랜잭셔널 아웃박스(transactional outbox)에 이벤트를 기록하고, 릴레이가 이를 NATS JetStream으로 발행합니다. 이벤트는 타입과 버전이 지정되어 있으며 site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending 및 기타 항목들이 이에 해당합니다.
엔드포인트를 WebhookSubscription으로 등록하고 수신할 이벤트 유형을 선택하세요. 하나의 스트림으로 알림, 분석, 자동화 및 귀하의 통합 기능이 모두 피드되며, 당사가 사용하는 것과 동일한 이벤트를 소비하게 됩니다.
모든 전송은 HMAC 서명되므로 조치를 취하기 전에 당사에서 보낸 것인지 확인할 수 있습니다.
실패한 전송은 지연 간격을 두어 재시도되며, 각 시도는 WebhookDelivery로 기록됩니다. 전송 내역은 지원 팀에 무엇을 보냈는지 이메일로 문의하는 대신 대시보드에서 직접 확인하고 다시 보낼 수 있습니다.
이 파이프라인은 정확히 한 번(exactly-once)인 척하는 대신 의도적으로 최소 한 번(at-least-once) 전달을 보장합니다. 발행 중에 중단된 릴레이는 클레임 임대 기간이 만료되어 이벤트가 다시 발행됩니다. 봉투(envelope) ID를 기준으로 중복을 제거하면 소비자는 구조적으로 올바르게 작동합니다.
API는 개발자 이야기의 절반에 불과합니다. 나머지 절반은 배포입니다.
당사는 본 플랫폼을 호스팅된 MCP 서버 형태로 제공합니다. 이는 엔진 API 위에 구축된 얇은 프로토콜 어댑터로서, 동일한 액션 카탈로그, RBAC 및 감사 추적을 그대로 재사용합니다. Claude Code, Cursor, ChatGPT, Claude Desktop 또는 기타 MCP 호환 클라이언트를 한 번만 연결하면, 당사가 API에 추가하는 모든 기능이 자동으로 해당 클라이언트에서 사용 가능해집니다.
에이전트는 세 가지 요소를 받습니다. 도구(동일한 API 엔드포인트, 분산될 병렬 로직 없음), 리소스(실제 데이터를 기반으로 조치 전에 진단할 수 있도록 읽기 전용 사이트 상태, 설정, 최근 로그, 지표, 가동 시간 및 KB 문서 제공), 그리고 프롬프트(이 사이트 진단 또는 마이그레이션 준비와 같은 게시된 워크플로 템플릿)입니다.
보안도 인증과 마찬가지입니다. OAuth 2.1, 조직에 바인딩된 토큰 및 행 수준 보안이 적용된 RBAC 권한, 도구별로 범위가 지정되고 철회 가능한 권한, 프로덕션과 격리된 샌드박스가 적용됩니다. 삭제, 일시 중지, 결제, 대규모 지출과 같은 파괴적인 작업에는 명시적 확인 또는 사람의 승인 정책이 필요합니다. 속도 제한과 지출 상한선이 AI가 트리거하는 유료 작업을 제한하며, 모든 MCP 호출은 신원, 도구, 인자 및 결과와 함께 감사 로깅됩니다.
우리는 개별 앱을 하나씩 연동하는 대신 프로토콜을 지원하므로, 호스팅 연동을 변경하지 않고도 원하는 AI 툴링을 자유롭게 바꿀 수 있습니다.
예 — 동일한 엔진 API이며, 정식 출시되어 안정화된 버전입니다. 대시보드, 관리자 콘솔, CLI, Terraform 공급자, MCP 서버 및 웹훅 모두 동일한 인터페이스를 사용하므로 API가 제어판보다 뒤처지지 않습니다.
네. 샌드박스 키는 운영(프로덕션) 키와 별도로 발급되며 테스트 모드로 실행되므로 실제 결제나 프로비저닝이 이루어지지 않습니다. CI 환경을 샌드박스 자격 증명에 연결하여 전체 요청 및 응답 주기를 안전하게 테스트해 보세요.
POST 요청 시 Idempotency-Key를 전송하세요. 재시도 레코드는 인라인이 아닌 커밋 시점에 기록되므로, 실제로 커밋되지 않은 행에 대해 캐시된 성공 결과를 재시도 시 재생할 수 없으며, 실패한 요청은 잠금을 즉시 해제하므로 수정된 재시도가 지연되지 않습니다. 웹훅 전송은 설계상 최소 한 번(at-least-once) 이루어지므로, 수신 측에서 엔벨로프 ID를 기준으로 중복을 제거하세요.
오늘은 아닙니다. API 키는 조직별로 발급되므로 여러 클라이언트 조직에 걸친 연동 작업에는 각 조직의 키가 각각 필요합니다. 또한 사용자 주체에 대한 권한도 조직별로 확인됩니다. 즉, 한 조직에서 sites.create 권한을 가지고 있다고 해서 별개의 무관한 조직에 대한 접근 권한이 부여되지는 않지만, 해당 조직의 하위에 중첩된 조직에는 적용됩니다. 이는 의도된 설계로, 유출된 키가 플랫폼 전체가 아닌 해당 조직 및 그 하위 조직에만 국한되도록 제한합니다.
개발자 역할은 조직 읽기, API 키 관리, 사이트 조회 및 생성, 사이트 재시작, 캐시 삭제, 티켓 조회 및 답변을 포함합니다. 결제 제어는 의도적으로 제외되어 있습니다. 배포 및 라이브 푸시 권한은 이 역할에 포함되지 않으므로 참고하세요. 팀원에게 해당 권한이 필요한 경우, 개발자가 가장 광범위한 기술 역할이라고 가정하지 말고 해당 권한이 포함된 역할을 할당하세요.
백오프를 통한 전송 재시도가 이루어지며, 각 시도는 검사 가능한 WebhookDelivery로 기록됩니다. 업스트림에서는 변경 작업과 동일한 데이터베이스 트랜잭션 내에서 이벤트가 트랜잭셔널 아웃박스(transactional outbox)에 기록되므로, 컨슈머를 사용할 수 없는 동안에도 데이터가 손실되지 않습니다. 컨슈머가 다운되면 지연은 발생할 수 있지만 프로듀서는 결코 중단되지 않으며, 복구된 후 대시보드에서 전송을 다시 재생할 수 있습니다.
신용카드 등록 없는 14일간의 Footprint-Free Hosting 무료 체험을 시작하세요. 결제 정보가 필요 없으며 최대 5개의 사이트를 지원합니다. 유료 Footprint-Free 요금제는 PBN 5 기준 월 $6부터 시작됩니다. 모든 플랜에는 30일 환불 보장, 무료 이전, 그리고 벤더 종속 없음이 적용됩니다.
사양 우선 API, 생성된 SDK, CLI, Terraform 공급자, 서명된 웹훅 및 MCP 서버 — 전 세계 650,000개 이상의 사이트를 위해 구축된 호스팅에서 제공됩니다. 결제 정보 없이 14일 동안 무료로 체험을 시작하세요.
무료로 시작하기