AiHummer
Հայերեն
Մուտք
v1.0.x
{ }Swagger

Փլագինի հրապարակում

v1.0.x · թարմացվել է 2026-06-27

Փլագին ստեղծե՞լ եք Փլագինի SDK-ով։ Կարող եք հրապարակել այն երկու ռեժիմով.

  • Մասնավոր (ձեզ համար) — side-load ձեր instance-ի մեջ։ Արտեֆակտը երբեք չի լքում այն։
  • Հանրային (բոլորի համար) — ներկայացրեք AiHummer-ի կուրացված պաշտոնական կատալոգին PR-ի միջոցով։

Անալոգիա. ձեռքով .vsix տեղադրելը (մասնավոր) ընդդեմ VS Code Marketplace-ում հրապարակելու (հանրային). մասնավոր npm registry ընդդեմ հանրայինի։

Մասնավոր ռեժիմ — side-load ձեր instance-ի մեջ

Օգտագործեք սա, երբ փլագինն անհրաժեշտ է միայն ձեզ. ներքին կոնեկտոր, հատուկ ինտեգրացիա, թեստային build։

Քայլեր

  1. Փաթեթավորեք և ստորագրեք փաթեթը.
    aihummer plugin package ./my-plugin
    aihummer plugin sign --key author.key --manifest ./my-plugin/manifest.json my-plugin-1.0.0.tar.gz
  2. Վերբեռնեք այն instance-ի մեջ երկու եղանակներից մեկով.
    • Ադմին UI → Plugins → “Upload plugin” — քաշեք փաթեթը. կամ
    • CLI:
      aihummer plugin publish --private --instance https://your-instance \
        --token <admin-token> my-plugin-1.0.0.tar.gz
  3. Կուլիսներում սա POST /v1/admin/modules/upload է (multipart, integrations:write). արտեֆակտը հայտնվում է instance-ի blob store-ում (AIHUMMER_BLOB_DIR) blob: ref-ի տակ, և կատալոգում գրանցվում է տող origin = local-private, visibility = private արժեքներով։
  4. Փլագինը հայտնվում է marketplace-ում Private պիտակով և տեղադրվում նորմալ ուղով — մեկուսացված systemd միավոր + առողջության դարպաս։

Վստահություն. ֆիքսված բանալին և trust store-ը

Մասնավոր արտեֆակտները պարտադիր պետք է ստորագրված լինեն։ Երբ վերբեռնում եք փլագին, որը ստորագրված է անհայտ բանալիով, Ադմին UI-ն ձեզ հուշում է հաստատել հեղինակի բանալին instance-ի trust store-ի մեջ (մեկ սեղմում)։ Հաստատվելուց հետո ստորագրությունը ստուգվում է ամեն տեղադրման և թարմացման ժամանակ։

  • Պաշտոնական աղբյուրից արտեֆակտները ստուգվում են core-ում ֆիքսված registry բանալու դեմ — վստահելի է լռելյայն, լրացուցիչ քայլ չկա։
  • Մասնավոր արտեֆակտները ստուգվում են instance-ի trust store-ի բանալիների դեմ։
  • Չստորագրված փաթեթները մերժվում են — բացառությամբ dev ռեժիմի լոկալ կրկնության համար. AIHUMMER_PLUGIN_DEV_UNSIGNED=1։

[!WARNING] AIHUMMER_PLUGIN_DEV_UNSIGNED=1-ն անջատում է ստորագրության ստուգումը և նախատեսված է միայն լոկալ մշակման համար։ Երբեք մի միացրեք այն արտաքինից հասանելի instance-ի վրա։

Հանրային ռեժիմ — հանրային registry

Փլագինը յուրաքանչյուր instance-ի համար հասանելի դարձնելու համար ներկայացրեք այն հանրային registry-ին AiHummer/marketplace-catalog PR-ի միջոցով. ավտոմատացված ստուգումներ + վերանայում, և հաստատման դեպքում AiHummer-ը հակա-ստորագրում է թողարկումը։

Քայլեր

  1. Մեկանգամյա — գրանցեք հրապարակողին։ Գեներացրեք բանալի և ամրագրեք namespace-ը.
    aihummer plugin keygen                # prints the public key (base64) and key id
    Սա ամրագրում է @you namespace-ը։ Մասնավոր բանալին պահեք ձեզ մոտ — այն ստորագրում է յուրաքանչյուր ներկայացում։
  2. Հոստավորեք արտեֆակտը կայուն HTTPS URL-ի վրա (արտեֆակտը հոսթավորվում է հեղինակի կողմից, ոչ թե AiHummer-ի)։
  3. Բացեք PR կատալոգի համար.
    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 (անհրաժեշտ է միայն ձեր առաջին ներկայացման ժամանակ)։
  4. CI դարպասները վավերացնում են ներկայացումը (տես ստորև), AI վերանայումը տեղադրում է ռիսկի վճիռ, և AiHummer-ի maintainer-ը վերանայում և merge է անում ձեռքով։
  5. Merge-ի դեպքում թողարկումը հակա-ստորագրվում է ֆիքսված registry բանալիով և հրապարակվում առանձին community-catalog.json-ում CDN-ի վրա։ Յուրաքանչյուր instance, որ ավելացրել է այս աղբյուրը, տեսնում է փլագինը. core-ը վստահում է դրան ֆիքսված բանալու միջոցով — ոչ մի օպերատորի վստահության քայլ չի պահանջվում։

Ներկայացման պայմանագիրը

PR-ն ավելացնում է երկու ֆայլ (ձևը գեներացվում է publish --public-ով և կայուն է).

publishers/<publisher>.json — մեկանգամյա գրանցում.

{
  "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 — ներկայացում (մեկը՝ յուրաքանչյուր տարբերակի գծի համար).

{
  "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>-ին։
  • channelstable | beta։
  • artifact_url.tar.gz-ն է, որ հոսթավորված է հեղինակի կողմից։
  • publisher_key_id-ն պետք է համապատասխանի գրանցված հրապարակողի key_id-ին։
  • Ստորագրված թողարկման ինքնությունը = slug \x00 version \x00 artifact_url բայթերը։
  • Հանրային ներկայացման համար ներդրված manifest-ը պետք է կրի description, icon (և ընտրովի՝ screenshots) — տես store-page դաշտեր։

[!TIP] aihummer plugin publish --public-ը հավաքում է այս ֆայլերը ճիշտ ձևով և ձեզ համար բացում է PR-ը — JSON-ը ձեռքով խմբագրելու կարիք չկա։

Մոդերացիա

Յուրաքանչյուր ներկայացում անցնում է ավտոմատացված ստուգում (ներկայացման պայմանագիր, ստորագրություն և անվտանգության սկան), այնուհետև խորհրդատվական AI ռիսկի վերանայում, և վերջում՝ պարտադիր մարդկային վերանայում AiHummer-ի թիմի կողմից։ Ոչ ավտոմատացումը, ոչ AI-ն երբեք ինքն իրեն merge չի անում — որոշումը միշտ maintainer-ինն է, և ոչինչ չի հասնում կատալոգ առանց նրա հաստատման։ Հրապարակված փլագինը, որը հետագայում հայտնաբերվում է որպես վնասակար կամ կոտրված, կարող է չեղարկվել և հանվել կատալոգից հաջորդ համաժամացման ժամանակ։

Համայնքային կատալոգը որպես լրացուցիչ աղբյուր

Հանրային փլագինները հրապարակվում են առանձին community-catalog.json-ում, որը չի վերագրում կուրացված առաջին կողմի կատալոգը։ Instance-ն ավելացնում է այն որպես լրացուցիչ աղբյուր Plugins → Sources-ում (կամ POST /v1/admin/modules/catalog/sources)։ Տես Տեղադրում և թարմացումներ և Ակնարկ և մակարդակներ։

Ո՞ւր հաջորդիվ