AiHummer
Azərbaycanca
Daxil ol
v1.0.x
{ }Swagger

Plagin nəşri

v1.0.x · yeniləndi 2026-06-27

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

  1. 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
  2. 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
  3. Daxili tərəfdə bu POST /v1/admin/modules/upload-dur (multipart, integrations:write): artefakt blob: ref altında instance blob store-a (AIHUMMER_BLOB_DIR) düşür və origin = local-private, visibility = private ilə kataloq sətri qeydiyyata alınır.
  4. 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=1 imza 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

  1. Birdəfəlik — nəşr edəni qeydiyyatdan keçirin. Açar yaradın və namespace-i rezerv edin:
    aihummer plugin keygen                # prints the public key (base64) and key id
    Bu @you namespace-ini rezerv edir. Şəxsi açarı özünüzdə saxlayın — o hər təqdimatı imzalayır.
  2. Artefaktı sabit HTTPS URL-də host edin (artefakt AiHummer tərəfindən deyil, müəllif tərəfindən host edilir).
  3. 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-key publishers/<you>.json əlavə edir (yalnız ilk təqdimatınızda lazımdır).
  4. 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.
  5. 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.
  • channelstable | beta.
  • artifact_url müəllif tərəfindən host edilən .tar.gz-dir.
  • publisher_key_id qeydiyyatdan keçmiş nəşr edənin key_id-i ilə uyğun olmalıdır.
  • İmzalanan release identity = slug \x00 version \x00 artifact_url baytları.
  • İctimai təqdimat üçün daxil edilmiş manifest description, icon (və istəyə bağlı screenshots) daşımalıdır — baxın: store səhifəsi sahələri.

[!TIP] aihummer plugin publish --public bu 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İcmal və səviyyələr.

Sonra haraya