Skip to content

Developer

Overview

The Developer applet is the original, four-screen registration console for the applet registry (akaun_master.bl_applet_hdr): a listing of every applet the caller may read, a New Applet form, an Edit Applet form with a delete button, and a one-toggle settings page. It is a ROOT-USER applet: a platform developer opens it to register the code, router link, bundle URL and custom element tag of an applet so that the shell can load it.

The fuller console is the Developer SysAdmin Applet, which adds vendors, store listings, pricing, images and installations. This applet still ships (3 catalogues, 1 tenant, measured 2026-09-16) and is the quicker way to register a bare applet row.

Two repositories, one bundle. The registry serves bigledger/akaun-platform/akaun-developer-applet/prod/akaun-developer-applet-elements.js, which is built by blg-applet-core-akaun-platform-akaun-developer-applet (its bin/prod/akaun_developer_applet_publish.sh names that path). The sibling repository blg-applet-core-akaun-platform-developer-applet builds a different bundle, developer-applet, that no registry row serves. Read the first.

Where it fits

DirectionWhatWhy
SiblingDeveloper SysAdmin AppletThe complete registry console; same bl_applet_hdr rows.
DownstreamPlatform SysAdminPlaces a registered applet into catalogues and stores and installs it for users.
DownstreamApplet StoreWhere the registered applet is eventually seen and installed.

Screens and menus

Routes under applets/bigledger/akaun-platform/developer-applet:

RouteScreenWhat it does
applet-listingApplet ListingGET /core2/platform/dm/applets — Code, Name, Type, Status, RouterLink, AppletUrl. The backend returns only applets the caller holds MST_API_APPLET_READ (or owner / admin) on (AppletController.java L263, L279).
new-appletNew AppletThe registration form below; optional logo upload.
edit-applet/:guidEdit AppletThe same fields for an existing row, logo replacement, and Delete with a confirmation dialog.
settingsSettingsOne slide-toggle, 3 UI Column View, held in an in-memory DataSharingService; it is not persisted and resets on reload.

Configuration

Before you can use it

  • A platform permission or sysadmin rank. POST and PUT /core2/platform/dm/applets accept a caller who is a platform system administrator (ADMIN / OWNER rank in the token), or holds MST_API_APPLET_CREATE / MST_API_APPLET_UPDATE through the platform permission tables, or is a platform admin (AppletController.java L86–L109, L151–L177). Delete requires MST_PLATFORM_ADMIN, MST_API_APPLET_DELETE or an owner / admin link on the applet (L221–L233). This is one of the few platform controllers that honours both authorisation models.
  • An applet store and a vendor must exist, because both drop-downs are required on the form (stores from GET …/stores, vendors from GET …/vendors). Create them in the Developer SysAdmin Applet.

Applet settings

No exposed control found (routes and the settings component checked at commit de12d4a). The Settings screen’s single toggle is a client-side layout preference that is never saved.

Settings in other applets that control this applet

None found.

Feature visibility / permissions

bl_applet_client_side_perm_dfn has 0 rows for developerApplet (queried 2026-09-16) and the applet checks no client-side code. Row visibility in the listing is the backend’s read permission, per row.

Fields

New Applet / Edit Applet

FieldMeaningRequiredNotes
Applet Namebl_applet_hdr.name — the registry name, which the wiki uses as the page titleYes
Applet Codebl_applet_hdr.code — the key every settings and permission table joins onYesNo spaces (CannotContainSpace). Free text otherwise; two live codes contain a space, entered elsewhere.
Applet Short codeproperty_json.applet_shortcodeYesIntended to be two characters. The Validators.max(2) / min(2) attached are numeric validators and do not constrain a text value; only no spaces is enforced.
Applet TypeROOT-ADMIN, ROOT-USER, TNT-ADMIN, TNT-USERYesThe backend accepts more types (AppletDataConsistencyObject.java L31 lists ten, including TNT-APPLET, ETL-CLIENT, WEB-CLIENT); only four are offered here.
Applet Routerproperty_json.routerLink — the path the shell navigates toYes
ES Module Urlproperty_json.es_module_url — the bundle the shell loadsYesMust be a URL (ValidateUrl).
Custom Element Tagproperty_json.custom_element; applet_mf_html_tag is derived as <tag XXXXXXXX></tag XXXXXXXX> with the literal XXXXXXXX suffixYesOn Edit the field is labelled custom_element.
Applet Storebl_applet_hdr.store_guidYes
Applet Vendorbl_applet_hdr.vendor_guidYes
DescriptionFree text
Required permissionsMulti-select of permission-definition codes, saved as a bl_applet_ext row REQUIRED_PERMISSIONS (JSON { required_permission: [...] })Loaded from GET …/permission-definitions.
LogoImage fileUploaded after the row is created (PUT …/applets/icon/{guid}).

Status is set to ACTIVE on create and is not editable on the form.

Lifecycle and effects

ActionEndpointEffect
New Applet → savePOST /core2/platform/dm/applets (JSON, AppletController.java L139), then PUT …/applets/icon/{guid} if a logo was chosenOne bl_applet_hdr row with status = ACTIVE and its property_json; one bl_applet_ext row for required permissions. The applet is registered but in no catalogue and installed for nobody — that is Platform SysAdmin’s job.
Edit Applet → savePUT /core2/platform/dm/appletsUpdates the same columns; revision-checked.
Edit Applet → DeleteDELETE /core2/platform/dm/applets/{guid}Removes the row after a confirmation dialog. Catalogue links and installations that point at it are not shown before deletion.

Nothing is posted; the applet only maintains registry rows.

Related applets

Troubleshooting

SymptomCauseFix
Listing is empty although the registry has appletsThe listing endpoint filters by MST_API_APPLET_READ per row.Assign the read permission, or an owner / admin link on the applets.
Save is refusedNeither sysadmin rank nor MST_API_APPLET_CREATE / UPDATE held; for delete, none of MST_PLATFORM_ADMIN, MST_API_APPLET_DELETE or an owner / admin link.Obtain one of them.
The shell cannot load the applet after registrationes_module_url or custom_element wrong; the shell loads the script at the URL and then creates the element named in custom_element.Check the values against the bundle’s own elements-build script.
Short code accepted with more than two charactersThe numeric validators do not apply to text.Enter two characters by convention.
Applet Store or Vendor drop-down is emptyNo store / vendor rows visible to you.Create them in the Developer SysAdmin Applet first.

Related documentation

Last updated on