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.
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
| Direction | What | Why |
|---|---|---|
| Sibling | Developer SysAdmin Applet | The complete registry console; same bl_applet_hdr rows. |
| Downstream | Platform SysAdmin | Places a registered applet into catalogues and stores and installs it for users. |
| Downstream | Applet Store | Where the registered applet is eventually seen and installed. |
Screens and menus
Routes under applets/bigledger/akaun-platform/developer-applet:
| Route | Screen | What it does |
|---|---|---|
applet-listing | Applet Listing | GET /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-applet | New Applet | The registration form below; optional logo upload. |
edit-applet/:guid | Edit Applet | The same fields for an existing row, logo replacement, and Delete with a confirmation dialog. |
settings | Settings | One 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.
POSTandPUT /core2/platform/dm/appletsaccept a caller who is a platform system administrator (ADMIN / OWNER rank in the token), or holdsMST_API_APPLET_CREATE/MST_API_APPLET_UPDATEthrough the platform permission tables, or is a platform admin (AppletController.javaL86–L109, L151–L177). Delete requiresMST_PLATFORM_ADMIN,MST_API_APPLET_DELETEor 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 fromGET …/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
| Field | Meaning | Required | Notes |
|---|---|---|---|
| Applet Name | bl_applet_hdr.name — the registry name, which the wiki uses as the page title | Yes | |
| Applet Code | bl_applet_hdr.code — the key every settings and permission table joins on | Yes | No spaces (CannotContainSpace). Free text otherwise; two live codes contain a space, entered elsewhere. |
| Applet Short code | property_json.applet_shortcode | Yes | Intended 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 Type | ROOT-ADMIN, ROOT-USER, TNT-ADMIN, TNT-USER | Yes | The backend accepts more types (AppletDataConsistencyObject.java L31 lists ten, including TNT-APPLET, ETL-CLIENT, WEB-CLIENT); only four are offered here. |
| Applet Router | property_json.routerLink — the path the shell navigates to | Yes | |
| ES Module Url | property_json.es_module_url — the bundle the shell loads | Yes | Must be a URL (ValidateUrl). |
| Custom Element Tag | property_json.custom_element; applet_mf_html_tag is derived as <tag XXXXXXXX></tag XXXXXXXX> with the literal XXXXXXXX suffix | Yes | On Edit the field is labelled custom_element. |
| Applet Store | bl_applet_hdr.store_guid | Yes | |
| Applet Vendor | bl_applet_hdr.vendor_guid | Yes | |
| Description | Free text | – | |
| Required permissions | Multi-select of permission-definition codes, saved as a bl_applet_ext row REQUIRED_PERMISSIONS (JSON { required_permission: [...] }) | – | Loaded from GET …/permission-definitions. |
| Logo | Image file | – | Uploaded 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
| Action | Endpoint | Effect |
|---|---|---|
| New Applet → save | POST /core2/platform/dm/applets (JSON, AppletController.java L139), then PUT …/applets/icon/{guid} if a logo was chosen | One 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 → save | PUT /core2/platform/dm/applets | Updates the same columns; revision-checked. |
| Edit Applet → Delete | DELETE /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
- Developer SysAdmin Applet — the same rows with vendor, store, pricing and installation management; use it for anything beyond the bare row.
- Platform SysAdmin — catalogues, stores and installations for what is registered here.
- Applet Store — the end of the chain.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Listing is empty although the registry has applets | The listing endpoint filters by MST_API_APPLET_READ per row. | Assign the read permission, or an owner / admin link on the applets. |
| Save is refused | Neither 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 registration | es_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 characters | The numeric validators do not apply to text. | Enter two characters by convention. |
| Applet Store or Vendor drop-down is empty | No store / vendor rows visible to you. | Create them in the Developer SysAdmin Applet first. |
Related documentation
- Platform applets — the section hub.
- Applet Catalog — the registry-generated list every row here appears in.