본문으로 건너뛰기

웹 스토리지 API

정적 웹사이트(HTML/CSS/JS) 호스팅 엔드포인트입니다.

🔐 배포 계열 엔드포인트는 Secret Key 가 필요합니다.

X-Public-Key(cb_pk_*) 는 브라우저 번들에 그대로 실려 나가는 공개 식별자입니다. 공개된 사이트의 JS 에서 누구나 뽑아낼 수 있으므로, "이 앱을 다룰 자격이 있는가" 를 증명하지 못합니다. 그래서 아래 8개 라우트는 X-Public-Key함께 Authorization: Bearer cb_sk_* 를 요구합니다.

  • GET /v1/public/storages/webs (목록)
  • POST /v1/public/storages/webs (생성)
  • POST /v1/public/storages/webs/:storageID/deploy
  • GET /v1/public/storages/webs/:storageID/deploy/manifest
  • POST /v1/public/storages/webs/:storageID/deploy/incremental
  • POST /v1/public/storages/webs/:storageID/deploy/presign
  • GET /v1/public/storages/webs/:storageID/deployments
  • POST /v1/public/storages/webs/:storageID/promote

X-Public-Key 도 계속 보내야 합니다. 서버가 어느 앱인지 식별하고, 그 Secret Key 의 사용자가 이 앱에 권한이 있는지 대조하는 데 씁니다. 둘은 대체 관계가 아니라 짝입니다. 누락하면 401 SECRET_KEY_REQUIRED 를 반환합니다.

Secret Key 는 절대 클라이언트 코드나 저장소에 넣지 마세요. CI 시크릿이나 환경변수 (CONNECTBASE_SECRET_KEY)로 주입하세요.

CLI 를 쓰신다면 최신 버전으로 업데이트만 하면 됩니다 (npm i -g connectbase-client@latest). .connectbasercsecretKey 또는 CONNECTBASE_SECRET_KEY 를 자동으로 실어 보냅니다.

페이지 메타(page-metas) 계열은 브라우저 SDK 의 정규 경로라 변경 없이 Public Key 만으로 동작합니다.

웹 스토리지 목록 조회

GET /v1/public/storages/webs

bash
curl -X GET "https://api.connectbase.world/v1/public/storages/webs" \
  -H "X-Public-Key: cb_pk_your_public_key" \
  -H "Authorization: Bearer cb_sk_your_secret_key"

웹 스토리지 생성

POST /v1/public/storages/webs

bash
curl -X POST "https://api.connectbase.world/v1/public/storages/webs" \
  -H "X-Public-Key: cb_pk_your_public_key" \
  -H "Authorization: Bearer cb_sk_your_secret_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-website",
    "description": "내 웹사이트"
  }'

CLI 배포

POST /v1/public/storages/webs/:storageID/deploy — 배포 (auto: production 즉시 / manual: QA 환경) POST /v1/public/storages/webs/:storageID/deploy?target=qa — QA 채널 배포 (promote_mode 무관 QA-only, --dev 별칭) GET /v1/public/storages/webs/:storageID/deploy/manifest — 증분 배포용 현재 파일 manifest (경로 + 해시) POST /v1/public/storages/webs/:storageID/deploy/incremental — 증분 배포 (변경된 파일만) POST /v1/public/storages/webs/:storageID/deploy/presign — 대용량 바이너리 직접 업로드용 presigned URL 발급 GET /v1/public/storages/webs/:storageID/deployments — 릴리스 이력 + production/QA 포인터 POST /v1/public/storages/webs/:storageID/promote — production 승격 (body deployment_id 미지정 시 최신 ready, 과거 id = 롤백)

bash
curl -X POST "https://api.connectbase.world/v1/public/storages/webs/stg_xxx/deploy" \
  -H "X-Public-Key: cb_pk_your_public_key" \
  -H "Authorization: Bearer cb_sk_your_secret_key" \
  -F "[email protected]"

보통 이 엔드포인트는 npx connectbase-client deploy [dir] CLI 가 자동으로 호출합니다. 직접 호출하려면 multipart/form-data 로 빌드된 정적 파일을 업로드합니다. 이 계열은 모두 위의 Secret Key 헤더가 필요합니다.

페이지 메타 (SEO)

웹 스토리지에 배포된 페이지마다 OG 태그/JSON-LD 를 설정할 수 있습니다.

페이지 메타 설정 (Upsert)

PUT /v1/public/storages/webs/:storageID/page-metas

bash
curl -X PUT "https://api.connectbase.world/v1/public/storages/webs/stg_xxx/page-metas" \
  -H "X-Public-Key: cb_pk_your_public_key" \
  -H "Content-Type: application/json" \
  -d '{
    "path": "/products/123",
    "title": "최신 스마트폰",
    "description": "최고의 성능, 최저가 보장",
    "image": "https://example.com/product.jpg",
    "og_type": "product"
  }'

일괄 설정 (최대 100개)

POST /v1/public/storages/webs/:storageID/page-metas/batch

bash
curl -X POST "https://api.connectbase.world/v1/public/storages/webs/stg_xxx/page-metas/batch" \
  -H "X-Public-Key: cb_pk_your_public_key" \
  -H "Content-Type: application/json" \
  -d '{
    "pages": [
      { "path": "/products/1", "title": "상품 1", "description": "설명 1" },
      { "path": "/products/2", "title": "상품 2", "description": "설명 2" }
    ]
  }'

페이지 메타 목록 조회

GET /v1/public/storages/webs/:storageID/page-metas?limit=20&offset=0

특정 경로 메타 조회

GET /v1/public/storages/webs/:storageID/page-metas/get?path=/products/123

특정 경로 메타 삭제

DELETE /v1/public/storages/webs/:storageID/page-metas?path=/products/123

전체 메타 삭제

DELETE /v1/public/storages/webs/:storageID/page-metas/all