Safety Limits
Libertas-OS has built-in safety limits and implicit security measures.
Object Access Limits
A Thing-App Task can access Libertas-things through API, such as Device, LanDevice, VirtualDevice and User, provided that those Libertas-things are part of Task parameters from user input.
If a Thing-App task accesses an object that cannot be found in the input configuration data, it is a security violation, and the task will be terminated and marked as “disabled.”
Task Timeout/Irresponsive
If a Thing-App task is running irresponsive beyond a period, currently 1 second, e.g., an infinite loop without calling Libertas_Yield() to yield, the task will be terminated and marked as “disabled.”
Rate Limits
Some API has rate limits. So far Logging API, Data API and Messaging API enforce rate limit.
The limit is based on an exponential decay counter. There are two thresholds:
- Logging and Data - 100 per second and 1000 per hour.
- Messaging - 10 per second and 30 per hour.
If API is called too frequently, the task will be terminated and marked as “disabled.”