Skip to content

Applet Store

Install applets onto your own login from the catalogues an administrator has opened to you. Every install is for one login, never for the whole tenant, and a private catalogue appears here only because Tenant Admin linked you to it. Nothing here is bought or paid for: the store carries no price, plan or order, and a paid applet is arranged outside it.

Overview

The Applet Store is the platform screen where a signed-in user browses the applet catalogues their login has been granted and installs applets onto their own account. It is the screen every “install the X applet” instruction on this site points at.

Two things about it decide almost everything else on this page. First, installation is per user, not per tenant: each install writes one row linking your login to one applet in one catalogue, and the backend refuses an install submitted for anybody else’s login. Second, what you can see is decided elsewhere — a catalogue is public or private, and a private catalogue reaches you only because an administrator linked your login to it in the Tenant Admin Applet.

Its registry row is appletStore, name Applet Store, applet_type ROOT-USER, status ACTIVE. It has no settings of its own (see Configuration).

The store does not sell anything. There is no price, plan, tier, trial, order or payment anywhere in this applet’s code — no pricing field is requested from the API and none is rendered. The Terms of Use dialog it shows describes paid applets and Orders, and the platform database does carry edition/plugin pricing records against catalogue links, but no screen in this applet reads them. Treat any acquisition of a paid applet as an off-store commercial arrangement.

Where it fits

DirectionWhatWhy
UpstreamDeveloper SysAdmin AppletThe registry record it maintains is what the store lists — an applet’s name, icon, description, type, documentation URL and the module URL the shell loads. An applet the registry does not carry as ACTIVE never appears here.
UpstreamTenant Admin AppletBuilds catalogues, puts applets in them, and links a user’s login to a private catalogue. That link is the only reason a private catalogue appears on the Private tab. It can also bulk-install applets for other users in the tenant — the store cannot.
DownstreamThe platform launchpadAn installed applet becomes a tile on the launchpad; the store itself is reached from there.
AlongsideComplete Applet CatalogThe wiki’s own list of every applet that exists, generated from the same registry the store reads.

Screens and menus

Everything is mounted under applets/bigledger/akaun-platform/applet-store. There is no sidebar: navigation is the three-link bar at the top of the listing screens.

ScreenRouteState
Private catalogue listingcatalog-listing-privateWorking — this is the landing screen; an empty child path redirects here
Public catalogue listingcatalog-listingWorking
My Appletsmy-appletsWorking
Applet detailapplet-information/:guidWorking — :guid is the applet-to-catalogue link
Per-catalogue applet listapplet-listing/:guidLegacy — no link in any live template reaches it
Notificationsapplet-notificationsPlaceholder — a static card of repeated stock images, no data, not linked from anywhere
Subscriptionapplet-subscriptionBroken — reads a row object that is never populated and throws on load; not linked from anywhere

The Terms of Use gate

A guard runs before every screen in the store. It reads the signed-in user’s profile extensions and looks for a parameter whose code contains APPLET_STORE_TNC with a truthy numeric value. If it is there, you go straight through and never see the dialog again. If it is not, a full-height, non-dismissable dialog opens with the Akaun.com Marketplace Terms of Use, an I have read the terms and conditions checkbox, and Accept / Decline buttons. Accept is disabled until the checkbox is ticked. Accepting writes the acceptance to your user profile (see Lifecycle and effects); declining bounces you back to the launchpad.

Acceptance is recorded per login, not per tenant or per company. A new colleague sees the dialog on their first visit even though everyone else in the business has accepted.

The listing screens

All three listing screens render the same component, so they look alike:

  • A header bar reading Catalog, with links Public, Private and My Applets.
  • A Search for applets box. It filters the rows already loaded in the browser — it does not re-query the server. On the Public and My Applets tabs it matches the applet name; on the Private tab it matches the applet name or the catalogue name, after a short typing pause.
  • A grid of applet cards.
  • On the Public and Private tabs only, an Install All button. It is greyed out when every applet on screen is either already installed or blocked from installation.

The Public tab loads every public catalogue in one request and shows the applets as one flat grid, each card carrying its catalogue’s name. The same applet offered by the same tenant at the same rank is shown once even if it sits in two catalogues.

The Private tab loads one catalogue per request. Scrolling to the bottom — or pressing the Load More button below the grid — fetches the next one, so a user with many private catalogues reaches them a page at a time rather than all at once.

My Applets shows the heading My Installed Applets and lists what your login has installed. It has no Install All button and no uninstall control; uninstalling is done from the applet’s detail screen.

Below 500 px of viewport width the listings switch themselves to a dark theme. Above it they are light. This is a width test, not an operating-system preference test.

The applet detail screen

Clicking any card opens the detail screen, which is laid out like a consumer app-store listing:

  • Hero — icon (clickable, opens full size), name, and up to four stats: Rating (the average, or “No ratings”), Rank, Tenant, Status (Installed / Not installed).
  • Documentation button — opens the applet’s documentation URL in a new tab. It is disabled when the registry row for that applet has no documentation URL.
  • Share button — uses the browser’s native share sheet where one exists, otherwise copies the current page URL to the clipboard and confirms with a toast.
  • Install, or — once installed — Uninstall and Open.
  • Preview — a horizontally scrolling gallery of the applet’s screenshots, ordered by their sequence number. The whole section is hidden when the applet has no images.
  • About this app — the description, plus Version and Updated on when the registry carries them. With no description it reads No description is available for this applet yet.
  • Rate this applet / My review — a five-star row, and a Write a review / Edit your review link that opens a dialog with the stars and a comment box capped at 500 characters.
  • Ratings and reviews — the average, a five-bar histogram of one- to five-star counts, the total count, and other users’ reviews. Your own review is lifted out of that list into the section above it.
Rating is read-only when you arrive from the Public tab. The Public listing passes a read-only flag with the navigation; the Private and My Applets listings do not. The rating and review sections are also hidden entirely until the applet is installed — which matches the server, which rejects a rating from a user who has not installed the applet.

Configuration

Before you can use it

PrerequisiteWhere it is setWithout it
A platform loginPlatform user administration; see Tenant Admin AppletEvery screen in the store is behind an authenticated endpoint
Terms of Use acceptedThe store itself, once per loginThe dialog blocks every screen
The applet exists and is ACTIVE in the registryDeveloper SysAdmin AppletIt is filtered out of both listings
The applet is linked to a catalogue, and that link is ACTIVETenant Admin AppletNothing to install — the store lists catalogue membership, not the registry directly
The owning tenant record is ACTIVEPlatform administrationThe applet is filtered out of the public listing
For a private catalogue: your login is linked to itTenant Admin AppletThe catalogue does not appear on the Private tab

Applet settings

The store has no settings of any kind. The only per-user state it writes is your acceptance of the Terms of Use.

Settings in other applets that control this applet

SettingWhere it is setEffect here
Catalogue access type (PUBLIC / PRIVATE)Catalogue record, Tenant Admin AppletDecides which tab the catalogue’s applets appear on. The Public tab shows only active public catalogues.
Catalogue-to-user linkTenant Admin AppletThe Private tab lists exactly the catalogues your login has a link to. No link, no catalogue.
Applet-to-catalogue link rank, and the rank on your own catalogue linkTenant Admin AppletWhich one a card shows depends on the tab — see Rank under Fields. Whatever rank the card showed is the one copied onto your installed link. Values are OWNER, ADMIN, MEMBER.
The applet’s documentation linkDeveloper SysAdmin AppletEnables or disables the Documentation button on the detail screen.
The applet’s icon and imagesDeveloper SysAdmin AppletThe card icon and the Preview gallery. The icon is fetched from the registry each time a listing loads, so replacing it there changes every user’s card on their next visit; nothing is kept per catalogue. An applet with no icon, or one whose image fails to load, is not an error: the card shows the first letter of the applet’s name in a plain tile instead. A grid of letter tiles means the registry records have no icons, and the fix is in the Developer SysAdmin Applet, not here.
The applet’s loading detailsDeveloper SysAdmin AppletWhat Open hands to the shell to load the applet.

Feature visibility and permissions

The Applet Store has no client-side permissions. Nothing in the store is hidden or shown by a permission set. Authority is enforced on the server, per endpoint:

RuleEnforced byEffect
You may install only for yourselfInstall and multiple-install endpoints compare the submitted login against the token’s subjectA request naming another user is refused
You may uninstall only your own linkUninstall endpoint compares the link’s login against the token’s subjectA request for another user’s link is refused
Installing for other people is an administrator actionA separate tenant-admin endpoint requires either platform system-administrator status or OWNER/ADMIN rank in that tenantDone from the Tenant Admin Applet, not from the store
Two different things are both called “rank”. The rank shown on a store card is a catalogue rank — on the Public tab the applet-to-catalogue link’s, on the Private tab your own catalogue link’s until you install — and it travels onto your installed link; it is a label. The rank that decides whether you may administer a tenant lives on the login-to-tenant link and is what the tenant-admin endpoints check. Having ADMIN on a catalogue entry grants no administrative authority.

What an installed row actually buys you

The installed link is not decoration, and it is not a complete answer either. Both halves matter if you are deciding who may open what.

It is a real gate, once. An applet cannot talk to the platform with your ordinary login token. On start-up it exchanges that token for an applet token, and the server issues one only after checking that the applet is installed for your login in that tenant; without it the exchange is refused with One or more Applet/Tenant Code combination does not exist. So “uninstall it and they cannot use it” is true.

Past that gate, the API is not organised by applet. Server-side permission codes are named for the resource they protect — a customer, a document, an export — never for an applet, and the applet identity carried in the token is read almost exclusively to stamp the audit trail. Two endpoints on the whole platform require an applet token at all. The practical consequence for an access model: installing fewer applets tidies what a person can reach through the screens; it is not a restriction on what their login can do through the API. The restriction that survives a determined person is the permission set, not the applet list.

And an install can quietly admit somebody to a tenant. Granting an applet also makes sure the login exists in that applet’s tenant, and the tenant a grant lands in is taken from the applet-to-catalogue link row rather than from the tenant you were inviting into. A catalogue whose rows point at more than one tenant therefore admits the person to every one of them in a single invitation. Compose catalogues deliberately, and check the tenant on each row before you use one as the target of an invitation — this is the concrete reason behind the advice not to hand out a catalogue you have not looked inside.

Fields

The store has no create or edit form. These are the fields it displays and the one field it accepts.

Applet card (all three listings)

FieldMeaningNotes
IconThe registry icon imageServed from the platform’s public applet-icon endpoint by icon GUID; a missing or broken image shows the name’s first letter instead
PublisherThe tenant named on the catalogue entry — the tenant the applet opens in once installedCatalogue layout only (Public and Private tabs). The applet registry has no owner of its own; the tenant comes from the catalogue row, so the same applet can appear under two publishers, and the one you install from decides whose tenant you are admitted to (see What an installed row actually buys you). Two cards with the same title on the Public tab are the same applet offered by different tenants or at different ranks — duplicates are merged only when applet, tenant and rank all match. Check the publisher before you press Install. If you installed from the wrong card, uninstall it and tell whoever administers users in that tenant, because the install may also have admitted your login there
RankA catalogue rank, and which one depends on the tabPublic: the applet-to-catalogue link’s rank. Private: your own rank on that catalogue until you install, then the rank on your installed link. My Applets: the rank on your installed link. Installing copies the rank the card showed onto your link, so the same applet can carry different ranks for two colleagues. It is a label, not an authority — see the warning above
CatalogueThe catalogue the entry belongs toColour-coded; on My Applets this slot shows the catalogue the applet was installed from. The colours are picked at random each time the listing loads, so do not teach anyone “the blue ones”
RatingAverage ratingA star with one decimal; an outlined star with no number when the applet has never been rated
Installed tickYour login has an active link to this applet from this catalogue entryAn applet installed from a different catalogue shows no tick here; the card is blocked instead (see Lifecycle). On My Applets every card is ticked. Install All ticks the cards in your browser before the server answers, and an Error! reply does not take the ticks away, so after an error the ticks are not evidence. That is read from the code, not tried: after any Error! from Install All, reload the tab or open My Applets, and treat only what is still ticked as installed

On the Public and Private tabs the card’s title is the applet’s name from the registry, read afresh on every load; a catalogue cannot rename an applet, so a rename in the Developer SysAdmin Applet reaches those cards at once.

Applet detail screen

FieldMeaningNotes
RatingAverage, and the total rating count“No ratings” when the count is zero
RankCatalogue-link rankHidden when empty
TenantOwning tenant nameHidden when empty
StatusInstalled or Not installedDerived from your own installed link, not from the listing row
DescriptionRegistry descriptionFalls back to an explicit “no description” line
VersionRegistry versionHidden when empty
Updated onRegistry update date, else creation dateHidden when both are empty
PreviewScreenshots, ordered by sequenceWhole section hidden when there are none
ReviewsReviewer display name, photo, date, stars, commentYour own review is excluded from this list and shown separately

Review dialog

FieldMeaningRequiredNotes
StarsYour rating, 1–5YesSubmit review stays disabled until a star is chosen. The server rejects anything outside 1–5
CommentFree textNoCapped at 500 characters in the box, with a live counter; the server’s own limit is 4,000. A draft you type is kept locally so it survives a reload

Lifecycle and effects

The Applet Store is a utility applet. It posts no journals, moves no stock and writes nothing to any tenant ledger. Everything it changes lives in the platform (master) database.

ActionWhat it writes
Accept the Terms of UseA flag on your user profile
Install (detail screen)One applet-to-login link: your login, the applet, the catalogue and its entry, the owning tenant, and the rank copied from the catalogue entry
Install All (Public or Private tab)The same link for every applet on screen that is neither installed nor blocked, in one request
UninstallRemoves your applet-to-login link. Nothing inside the applet is deleted
RateOne rating per user per applet; the applet’s rating summary is recalculated, and that summary is what every listing card shows
Write or edit a reviewOne comment attached to your rating
OpenHands the shell what it needs to load the applet, in the browser session

Three consequences worth knowing:

  • Uninstall is reversible and destroys nothing. It deletes the link between your login and the applet. Reinstalling from the same catalogue entry gives you the applet back; the data the applet holds in the tenant is untouched either way.
  • Install All is not idempotent across catalogues. It skips anything already installed and anything blocked, so pressing it twice is safe, but it installs only what is on screen — on the Private tab that is the catalogues loaded so far, not all of them.
  • An applet already installed from one catalogue cannot be installed again from another. The listing marks such a card as blocked and refuses the click, with the tooltip This applet has been installed in another catalog!

There are no statuses to manage in this applet. An installed link is either present and ACTIVE or gone.

Related applets

  • Developer SysAdmin Applet — registers the applet and everything the store displays about it. If a listing looks wrong, the record behind it is edited there.
  • Tenant Admin Applet — builds catalogues, decides who sees a private one, and installs applets in bulk for other users in the tenant. It is the administrator’s counterpart to this user-facing screen.

Troubleshooting

SymptomCauseFix
The Terms of Use dialog appears again for one personAcceptance is stored on the individual login, not the tenantExpected. Have them accept it once
A catalogue a colleague can see is missing from your Private tabYour login has no link to that catalogueAn OWNER/ADMIN-ranked user adds the link in the Tenant Admin Applet
An applet the business has bought is in no catalogue at allThe applet is not ACTIVE in the registry, its catalogue link is not ACTIVE, or the owning tenant record is not ACTIVECheck the registry record, then the catalogue membership
A card is greyed out and does not openIt is already installed from a different catalogue — tooltip This applet has been installed in another catalog!Open it from My Applets, or uninstall the other copy first
Install reports The applet already exists!The install call failed — most often because a link for that applet and login already existsCheck My Applets; refresh before retrying
Install All is greyed outEverything on screen is already installed or blockedNothing to do
Rating fails with Install this applet before you can rate itThe server requires an installed link for the applet before it accepts a ratingInstall it, then rate it
Rating fails with You already rated this appletOnly one active rating per user per applet is allowedRefresh the page; the existing rating is then edited rather than created
Rating fails with Not logged in or Auth token is invalid or expiredThe store was opened without a valid session tokenSign in through the platform shell again
The Documentation button is greyed outThe applet’s registry record carries no documentation URLAdd it in the Developer SysAdmin Applet
The Private tab shows a spinner that never resolvesThe private-catalogue fetch has no error handling; a failed request leaves the loading state setReload the page. This is a known product defect, not a configuration problem

Related documentation

Last updated on