플러그인 레지스트리는 중앙 마켓플레이스의 탈중앙화된 후속입니다. 단일 기관이 소유하거나 어떤 플러그인이 나열될지 결정하지 않으며, 플러그인을 발견 가능하게 만드는 인덱스 — 애그리게이터 — 는 누구나 운영할 수 있습니다. 사이트를 레지스트리에 연결하면 관리 대시보드가 마켓플레이스 대신 그곳에서 플러그인을 탐색하고 설치합니다.
AT Protocol, Bluesky 뒤의 네트워크 위에 구축되었습니다.
레지스트리 vs. 마켓플레이스
마켓플레이스와 레지스트리 모두 관리자가 관리 대시보드에서 샌드박스 플러그인을 탐색, 설치, 업데이트, 제거할 수 있게 합니다. 설치 경험 — 기능 동의, 체크섬 검증, 샌드박스 러너 — 은 동일합니다. 카탈로그를 누가 제어하고 누구를 신뢰하는지가 다릅니다.
| 마켓플레이스 | 레지스트리 | |
|---|---|---|
| 통제 | 한 회사가 소유하고 운영 | 중앙 소유자 없음; 누구나 애그리게이터 운영 가능 |
| 발견 | 마켓플레이스 서비스가 제공 | 네트워크를 인덱싱하는 애그리게이터가 제공 |
| 관리 | 운영자가 목록을 심사하고 제거 가능 | 라벨러가 테이크다운 및 검증 라벨을 발행하며 수락 여부를 선택 |
| 신뢰 대상 | 마켓플레이스 운영자 | 지정한 애그리게이터와 수락한 라벨러 |
특정 사이트에 대해 둘 중 하나를 구성합니다. experimental.registry가 설정되면 관리자의 탐색 및 설치 플로우가 레지스트리를 사용합니다.
레지스트리 활성화
레지스트리 플러그인은 항상 샌드박스에서 실행되므로 sandboxRunner가 필요합니다. 러너 설정은 플러그인 설치를 참조하세요.
다음 구성은 사이트를 레퍼런스 애그리게이터에 연결합니다:
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
export default defineConfig({
integrations: [
emdash({
sandboxRunner: "@emdash-cms/sandbox-cloudflare",
experimental: {
registry: "https://registry.emdashcms.com",
},
}),
],
});
단순 URL 문자열은 약식입니다. 라벨러나 릴리스 경과 시간 정책이 필요한 경우 객체 형식을 사용합니다:
emdash({
sandboxRunner: "@emdash-cms/sandbox-cloudflare",
experimental: {
registry: {
aggregatorUrl: "https://registry.emdashcms.com",
acceptLabelers: "did:plc:emdashverification",
policy: {
minimumReleaseAge: "48h",
minimumReleaseAgeExclude: ["did:plc:yourfirstpartydid"],
},
},
},
})
애그리게이터 URL은 프로덕션에서 HTTPS여야 합니다(개발에서는 http://localhost가 허용됩니다).
구성 옵션
acceptLabelers— 애그리게이터에 전달되는 라벨러 DID의 쉼표 구분 목록. 라벨러는 테이크다운 및 검증 라벨을 적용하며, 애그리게이터는 수락한 것에 따라 결과를 필터링하고 주석을 답니다. 미설정 시 애그리게이터는 운영자 기본 세트를 적용합니다.policy.minimumReleaseAge— 설치 또는 업데이트할 버전을 선택할 때 이 경과 시간보다 새로운 릴리스를 보류하여, 손상된 릴리스가 사이트에 도달하기 전에 테이크다운이 이루어질 시간 창을 넓힙니다. 기간 문자열("24h","7d") 또는 초 단위 숫자를 수용합니다.policy.minimumReleaseAgeExclude— 보류에서 면제되는 DID. 릴리스 빈도를 명시적으로 수락한 퍼블리셔(자체 퍼스트파티 플러그인 등)용입니다. 각 항목은 퍼블리셔 DID 또는 단일 패키지를 면제하는<did>/<slug>쌍입니다. DID만 허용되며 핸들은 허용되지 않습니다.
탐색 및 설치
- 관리 패널을 열고 플러그인 > 레지스트리로 이동합니다.
- 탐색하거나 검색합니다. 각 결과에는 퍼블리셔의 검증된 핸들, 최신 버전, 라벨이 표시됩니다.
- 플러그인을 열어 README, 스크린샷, 선언된 접근 권한, 릴리스 이력을 확인합니다.
- 설치를 클릭하고 기능 동의 대화상자를 검토합니다.
- 확인합니다.
설치는 다운로드한 바이트를 릴리스 체크섬에 대해 검증하고, 번들의 플러그인 ID와 버전이 릴리스와 일치하는지 확인하며, 선언된 기능이 승인한 것과 일치하는지 확인합니다. 업데이트와 제거는 마켓플레이스 플러그인과 동일하게 작동합니다.
신뢰 모델
레지스트리는 탈중앙화되어 있으므로 신뢰는 명시적입니다. 플러그인을 활성화하기 전에 EmDash는 아티팩트 바이트 해시가 릴리스 체크섬과 일치하는지, 번들이 주장하는 플러그인 ID와 버전에 대응하는지, 그리고 기능이 동의 대화상자와 일치하는지를 독립적으로 검증합니다.