iVendNextDevelopers Request a sandbox

Publish your app

This site helps you build an app. The App library (https://library.ivendnext.app) is where shops find it and install it from iVendNext Desk. You publish it yourself, with one command, from any computer: your laptop or your own build server, with or without GitHub, whatever language your app is written in.

We take only your app's files for the library: its manifest and its card (and, if CitiXsys hosts your app, its built image). We never take or keep your source code, and your repository stays wherever you keep it.

How it works

  1. Make your signing key, once. On your computer, from the kit's folder:

    python3 tools/publish/publish.py keygen
    

    It keeps the private half in ~/.ivendnext/library-signing.key and prints one line starting ivn-ed25519:. That line is public.

  2. We register your company once. Send us, through Help (https://help.ivendnext.com) or your account manager: your company's name as shops see it, the line keygen printed, your recipient.pem (below) and the first word you would like for your company (for example acme: letters and digits, starting with a letter, 2 to 12 in all; not one that is ours or another company's). We give each company its own word, once, and a company registered before we gave words asks for its word through Help; you then name every app under it yourself (ACME LOYALTY → acme_loyalty), with no wait on us, and no other company can take a name under it. The App listing request form is for your first app's listing; send the key line and recipient.pem through Help, not in the form.

  3. You publish. From your project's folder:

    python3 <the kit>/tools/publish/publish.py publish . --partner <your company's code>
    

    It runs the kit's checks on your library/ folder and your licence files, signs what it sends with your key, and uploads it. Nothing is sent if a check refuses.

  4. Your preview shelf has the version at once. Only the test sites you name see it: each one opens it with its shelf key, pasted once under App library → Open your shelf.

  5. The App library, for every shop: your app is listed with your company as its maker.

    • The first time, the listing waits for one approval by us. The command says so, with the request's id.
    • A later version is listed at once, unless it does more than the one before: a new outside address, an outside service with its own user, or more Desk users. That waits for one approval again.
  6. An app made for one customer goes to that customer's own Made for you shelf, with no approval by us. Their administrator pastes the shelf key you send them, once on their test site and once on their live site, and agrees to each install.

    • ⚠ For now a site holds one shelf. If another company's shelf key is pasted on the same site, it replaces yours there. Your installed apps keep working, but their updates wait until your key is pasted again. Several shelves on one site are planned.

A listed version never changes: any change, even a word, is a higher version with a changelog line.

What goes in your project

What a shop must be able to read

A shop decides from your card and finds its way from your guide, so the library lists an app only when both can help. Write them before you publish, in shop words, for the owner or the manager.

The shapes, the template and the exact words are in the manifest recipe, What a shop reads: the card and the guide.

Your customers' sites and your keys

Never in your project or the kit: give them to the command from the environment or from a file you name.

From a build server

The same command runs in any build system. Keep the key's line (the content of ~/.ivendnext/library-signing.key) in the build system's secrets as IVN_LIBRARY_KEY, and the customers' sites as LIBRARY_DELIVERIES and LIBRARY_KEYS. Keep library-keys.json out of anything others can read.

What we check, and what we refuse

Our service checks your app again when you publish, whatever your computer says. The refusals you are most likely to meet:

Each refusal is printed by the command, in words. A public listing is also refused, in these words, when it cannot help a shop (<app> is your app's name; the recipe has the same table):

A guide address on any other site is refused as bad_entry.

If your key is lost or copied

Tell us at once through Help. We register a new key for your company, and the old one stops working the moment we do. We confirm every new or changed key (signing key or recipient.pem) with your company's registered contact, and read its key id back to you, before we register it. You can hold up to three keys (one per build server, say) and we remove any of them on request.

What a shop sees

Each listed app has a card in the App library: what it does, who uses it, whether it is free or needs a key, whether anything leaves the shop, the steps the shop takes first, and a link to the app's guide. Browse the cards at library.ivendnext.app.