Plagin nəşri
Plagin SDK ilə plagin qurdunuz? Onu iki rejimdə nəşr edə bilərsiniz:
- Şəxsi (özünüz üçün) — öz instance-inizə yan yükləyin. Artefakt heç vaxt oradan çıxmır.
- İctimai (hər kəs üçün) — PR vasitəsilə kuratorluq edilən rəsmi AiHummer kataloquna təqdim edin.
Analogiya: .vsix-i əl ilə quraşdırmaq (şəxsi) vs VS Code Marketplace-ə nəşr
etmək (ictimai); şəxsi npm registry vs ictimai olanı.
Şəxsi rejim — instance-inizə yan yükləmə
Bunu yalnız sizə plagin lazım olduqda istifadə edin: daxili konnektor, xüsusi inteqrasiya, test build-i.
Addımlar
- Bundle-ı paketləyin və imzalayın:
aihummer plugin package ./my-plugin aihummer plugin sign --key author.key --manifest ./my-plugin/manifest.json my-plugin-1.0.0.tar.gz - Onu instance-ə iki yoldan biri ilə yükləyin:
- Admin UI → Plugins → “Upload plugin” — bundle-ı sürükləyin; və ya
- CLI:
aihummer plugin publish --private --instance https://your-instance \ --token <admin-token> my-plugin-1.0.0.tar.gz
- Daxili tərəfdə bu
POST /v1/admin/modules/upload-dur (multipart,integrations:write): artefaktblob:ref altında instance blob store-a (AIHUMMER_BLOB_DIR) düşür vəorigin = local-private,visibility = privateilə kataloq sətri qeydiyyata alınır. - Plagin marketplace-də Private kimi etiketlənmiş şəkildə görünür və normal yolla quraşdırılır — sandbox-laşdırılmış systemd vahidi + sağlamlıq gate-i.
Etibar: sabitlənmiş açar və trust store
Şəxsi artefaktlar mütləq imzalanmalıdır. Naməlum açarla imzalanmış plagin yüklədiyiniz zaman, Admin UI sizdən müəllifin açarını instance trust store-a təsdiqləməyi istəyir (bir klik). Təsdiqləndikdən sonra imza hər quraşdırma və yeniləmədə yoxlanılır.
- Rəsmi mənbədən olan artefaktlar core-da sabitlənmiş registry açarına qarşı yoxlanılır — standart olaraq etibarlı, əlavə addım yoxdur.
- Şəxsi artefaktlar instance trust store-dakı açarlara qarşı yoxlanılır.
- İmzasız bundle-lar rədd edilir — lokal iterasiya üçün dev rejimi istisna
olmaqla:
AIHUMMER_PLUGIN_DEV_UNSIGNED=1.
[!WARNING]
AIHUMMER_PLUGIN_DEV_UNSIGNED=1imza yoxlamasını söndürür və yalnız lokal inkişaf üçün nəzərdə tutulub. Onu xarici əlçatan instance-də heç vaxt aktivləşdirməyin.
İctimai rejim — ictimai registry
Plagini hər instance üçün əlçatan etmək üçün, onu PR vasitəsilə ictimai
registry-yə
AiHummer/marketplace-catalog
təqdim edin: avtomatik yoxlamalar + baxış, və təsdiqdə AiHummer release-i əks
imzalayır.
Addımlar
- Birdəfəlik — nəşr edəni qeydiyyatdan keçirin. Açar yaradın və namespace-i
rezerv edin:
Buaihummer plugin keygen # prints the public key (base64) and key id@younamespace-ini rezerv edir. Şəxsi açarı özünüzdə saxlayın — o hər təqdimatı imzalayır. - Artefaktı sabit HTTPS URL-də host edin (artefakt AiHummer tərəfindən deyil, müəllif tərəfindən host edilir).
- Kataloqa PR açın:
aihummer plugin publish --public --dir ./my-plugin --key author.key \ --artifact-url https://you.example.com/my-plugin-1.0.0.tar.gz \ --publisher you --description "What the plugin does" --icon https://you.example.com/icon.svg \ [--screenshot https://you.example.com/1.png ...] [--channel stable|beta] \ [--register-key author.pub]--register-keypublishers/<you>.jsonəlavə edir (yalnız ilk təqdimatınızda lazımdır). - CI gate-ləri təqdimatı yoxlayır (aşağıya baxın), AI baxış risk hökmü dərc edir və AiHummer maintainer-i əl ilə baxır və birləşdirir.
- Birləşdirmədə release sabitlənmiş registry açarı ilə əks imzalanır və
CDN-də ayrı
community-catalog.json-a nəşr edilir. Bu mənbəni əlavə etmiş hər instance plagini görür; core onu sabitlənmiş açar vasitəsilə etibar edir — operator başına etibar addımı lazım deyil.
Təqdimat müqaviləsi
PR iki fayl əlavə edir (forma publish --public tərəfindən yaradılır və
sabitdir):
publishers/<publisher>.json — birdəfəlik qeydiyyat:
{
"publisher": "acme",
"public_key": "<base64 std ed25519 public key>",
"key_id": "<sha256(public_key)[:16] in hex>",
"contact": "you@example.com"
}
catalog/<publisher>/<slug>/plugin.json — təqdimat (hər versiya xətti üçün bir):
{
"publisher": "acme",
"slug": "hello-tool",
"namespaced_slug": "@acme/hello-tool",
"version": "1.0.0",
"channel": "stable",
"artifact_url": "https://acme.example.com/hello-tool-1.0.0.tar.gz",
"license": "MIT",
"publisher_key_id": "bd68f2deedad25b1",
"signature": "<base64 ed25519 over the release identity>",
"manifest": { "...the full Manifest object..." }
}
namespaced_slug@<publisher>/<slug>-ə bərabər olmalıdır.channel∈stable | beta.artifact_urlmüəllif tərəfindən host edilən.tar.gz-dir.publisher_key_idqeydiyyatdan keçmiş nəşr edəninkey_id-i ilə uyğun olmalıdır.- İmzalanan release identity =
slug \x00 version \x00 artifact_urlbaytları. - İctimai təqdimat üçün daxil edilmiş
manifestdescription,icon(və istəyə bağlıscreenshots) daşımalıdır — baxın: store səhifəsi sahələri.
[!TIP]
aihummer plugin publish --publicbu faylları düzgün formada yığır və PR-ı sizin üçün açır — JSON-u əl ilə redaktə etməyə ehtiyac yoxdur.
Moderasiya
Hər təqdimat avtomatik yoxlamadan keçir (təqdimat müqaviləsi, imza və təhlükəsizlik skanı), sonra məsləhətçi AI risk baxışından və nəhayət AiHummer komandası tərəfindən məcburi insan baxışından. Nə avtomatika, nə də AI heç vaxt öz-özünə birləşdirmir — qərar həmişə maintainer-indir və onların təsdiqi olmadan heç nə kataloqa çatmır. Sonradan zərərli və ya sınıq olduğu aşkar edilən nəşr edilmiş plagin ləğv edilə və növbəti sinxronizasiyada kataloqdan çıxarıla bilər.
İcma kataloqu əlavə mənbə kimi
İctimai plaginlər kuratorluq edilən birinci tərəf kataloqunu üzərinə
yazmayan ayrı community-catalog.json-a nəşr edilir. Instance onu
Plugins → Sources-da (və ya POST /v1/admin/modules/catalog/sources) əlavə
mənbə kimi əlavə edir. Baxın:
Quraşdırma və yeniləmələr və
İcmal və səviyyələr.
Sonra haraya
- Plagin SDK — manifest sahələri və
aihummer pluginəmrləri. - Quraşdırma və yeniləmələr — çoxmənbəlilik, etibar modeli, imzalanmış yeniləmələr, sıralama.
- Marketplace: icmal və səviyyələr — rəsmi vs icma registry-si.