Skip to content

Custom modules

Custom modules keeps the modules your organization writes itself, in Python or TypeScript: their files, their versions and the check of each. It runs none of them itself; a version runs only after a person approved exactly that code.

The page in the app: Custom modules. How to write one: Python and TypeScript modules.

  • workspace_id: the workspace where the modules’ files and versions are kept;
  • board: the board where their approvals go. Without one nothing can be approved, so an install is refused.

A custom module itself has no settings: it keeps its parameters in its own documents, and a credential in a connection.

  1. Installed: an author names a directory, or sends the files. A bundle holds module.py or module.ts, its protos under proto/, its lock file and its tests under tests/.
  2. Prepared: its packages are installed from the lock file only, each checked by its hash, and its message code is generated from its protos.
  3. Checked: its code runs with nothing (no network, no other module, an empty folder, 60 seconds in all), and its tests run. A failure refuses the version and is kept in its log.
  4. Approved: a new module, a new version or wider grants is a decision with the risk code on the board. Until a person approves it, the version approved before goes on.
  5. Run: for the whole organization, while the organization runs.
Tool What
dynamic_install install a module or a new version of it, from a directory or from files
dynamic_list the organization’s custom modules
dynamic_get a module’s latest files, approved or not, with its check
dynamic_remove remove a module

Installing runs the bundle’s code in the check, so it is an external action; removing is a write. Changing one file from the page in the app is a person’s, never an agent’s.

It has no network, starts no process and reads no files of yours; it reaches outside only through the API module, with its connections and its log. It never asks for every module, for installing modules, or for the network, processes or files. Limits per module: 256 MB of memory unless its grants ask for more, 10 seconds a call, 256 open files, 8 calls at once. How many an organization may keep depends on its plan: Plans and limits.