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
- 01
Package it
Export a .tar.gz from a Dukafi store that already has the plugin installed. That file is what merchants will install.
- 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.
- 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.
{
"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.