From fa680b24d1123f9de27fc752943e43c86c692314 Mon Sep 17 00:00:00 2001 From: UMTS at Teleco Date: Sun, 15 Feb 2026 15:53:50 +0100 Subject: JAYSON DERULO --- toolkits/overview.md | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 toolkits/overview.md (limited to 'toolkits/overview.md') diff --git a/toolkits/overview.md b/toolkits/overview.md new file mode 100644 index 0000000..93b955c --- /dev/null +++ b/toolkits/overview.md @@ -0,0 +1,42 @@ +# Toolkit Overview + +[back to toolkits](README.md) /// [home](../README.md) + +A toolkit is a bundle of tables, permissions, endpoints and optionally scheduled tasks that extends the server for a specific use case. + +## Types + +There are two toolkit types as of JsonDerulo API Spec v2: + +### Application + +Route prefix: `/tk/app/{toolkit}/{*path}` + +Application toolkits are full featured modules with their own UI or client (not intended to be handled by the JDE Server alone). Think of them as apps that use the server as a backend. A POS system, an inventory manager, a monitoring dashboard etc. + +### Library + +Route prefix: `/tk/lib/{toolkit}/{*path}` + +Library toolkits provide shared services or utilities. They exist to be used by application toolkits or serve as seperatable assignable permissions. Think of them as shared backend modules. + +The only functional difference is the route prefix. Everything else (permissions, endpoints, config) should work basically the same way. + +## What a toolkit can define + +- **tables**: database tables it owns. with option for the jde server to manage system columns on these and enforcing permissions +- **read_only_tables**: tables that reject all writes through the API (overwritable by powerlevel) +- **write_protected_columns**: extra columns besides system columns that cant be written by normal users +- **endpoints**: custom API routes backed by internal logic, HTTP services or executables +- **groups_table**: a database table holding toolkit specific group definitions with their own permissions +- **scheduled_queries**: SQL like queries that run periodically on a timer +- **auto_generation**: rules for auto generating field values (UUIDs, sequential codes, random strings etc) +- **system_column_overrides**: per table control over which system columns to skip + +## Config file structure + +Toolkits are one of the few which must follow a configured in TOML files. The main `toolkits.toml` sets global defaults and can define inline toolkits. Most toolkits live in individual files under the `toolkitd/` subdirectory (like `toolkitd/beepzone.toml`). + +## Enabling and disabling + +Each toolkit has an `enabled` field (default true). Disabled toolkits are completely ignored, their tables arent registered, their endpoints dont exist and their permissions arent loaded. -- cgit v1.2.3-70-g09d2