dkafi

For authors

Publishing a plugin

Sign in, describe the plugin, attach the gzip. We store the public archive, check its sha256, and serve it to stores.

How it goes

  1. 01

    Package it

    Export a .tar.gz from a Dukafi store that already has the plugin installed. That file is what merchants will install.

  2. 02

    Publish from your account

    Create an account, fill in the listing, and attach the gzip. We store it and queue it for review. You do not need your own host.

  3. 03

    Ship a new version

    Use Update on the listing. Same id; attach a new archive only if the files changed. An approved plugin stays approved — we do not re-litigate every release.

The archive

A gzipped tarball, at most 5 MB. In a Dukafi admin: Plugins → Export. We check the gzip magic, hash the bytes, and keep a copy. Stores then download from this registry and hash them again. You never paste a sha256.

The id, name, description, version and category on the listing are what the catalogue shows. Changing them later is another submit with the same id. A logo and screenshots are optional — upload them on the same form.

Paid and private plugins

A licensed listing carries no archive at all — only your redemption endpoint. Tick “Licensed” on the form and give us that URL. The store posts the customer's key to you; you hand back a short-lived link and its checksum. We never see the key, never proxy the file, and never sit between you and your customer. Entitlement, seats, refunds and expiry stay yours.

what a licensed listing stores
{
  "id": "hampay-pro",
  "name": "HamPay Pro",
  "version": "2.1.0",
  "category": "payments",
  "pricing": {
    "model": "paid",
    "price": "$49/year",
    "purchaseUrl": "https://hampay.example/buy"
  },
  "distribution": {
    "type": "licensed",
    "licenseUrl": "https://hampay.example/api/download",
    "checkUrl":   "https://hampay.example/api/verify"
  }
}

A private plugin is the same mechanism with nothing to buy: list it, and hand keys only to the people you mean to have it.

What gets turned down

  • A public plugin with no archive, a file that is not gzip, or an archive larger than 5 MB.
  • An id already listed by another account.
  • A category outside the fixed list.
  • A licensed listing with nowhere for a store to redeem a key.

Turning something down always comes with a reason, and it appears on your dashboard. Fix it, submit the same id again, and it goes back in the queue.