Registers dntof.sample_adapted with SLDataAPI:
- capabilities:
sample.hello - status:
{ "ok": true, "message": "sample online", "bumps": 0 } - route
hello:{ "ok": true, "plugin": "dntof.sample_adapted" }
Build after SLDataAPI Release build, then copy DLL to LabAPI plugins/global.
Registered via PluginEndpointRegistry.TryRegisterActions (SLDataAPI with beta support; older
builds are detected via MissingMethodException and the sample stays read-only):
| action | body | result |
|---|---|---|
echo |
any JSON | { "echo": <body>, "actor": "<key id>", "transport": "http|ws" } |
bump |
{ "by": 1..100 } (optional) |
{ "bumps": <new total> } |
Called through the control plane (HTTP POST /control/adapted/dntof.sample_adapted/echo, or WS
call with the same path). Requirements:
beta_adapted_plugin_actions: truein SLDataAPIconfig.yml(otherwise 404, andactionsis not listed in/plugins/adapted).- The API key needs an explicit grant —
/control/adapted/is never granted byadminduty orall_control_true. Useendpoints_override, e.g."/control/adapted/dntof.sample_adapted/": true(one plugin) or"/control/adapted/": true. - Every call is a write: it is recorded in
control_log(body redacted for secrets).
Handlers run on the Unity main thread with a 3 s timeout; throw AdaptedActionException(message, status)
to return a 4xx.