Signed package को सीमित hardware, MAVLink, telemetry, mission और network capabilities मिलती हैं; यह अलग process में चलता है और verified IPC द्वारा host से बात करता है। Extension की त्रुटि से flight-critical services बंद नहीं होनी चाहिए।
Extension model और CLI लक्षित contract के रूप में वर्णित हैं; KairOS registry, signing root और public SDK अभी release नहीं हुए हैं।
KairOS repository ↗इस पृष्ठ पर +
सुरक्षा की पाँच सीमाएँ
पैकेज
Extension .kairosplug में manifest, version, entry point, requested capabilities और signature के साथ packed होता है।
विश्वास
Unpack करने से पहले Ed25519 signature जाँचा जाता है; boot पर revocation list लागू होती है। Unsigned केवल developer mode में अनुमत है।
Operator की अनुमति
Installation से पहले permissions व्यक्ति को दिखाई जाती हैं; sensitive permissions के लिए अलग पुनः पुष्टि चाहिए।
Process सीमा
हर plugin अपने subprocess/cgroup में CPU, memory और PID limits के साथ चलता है।
Capability IPC
Unix socket पर msgpack RPC हर host API call में capability token जाँचता है।
Permissions वास्तविक resource के अनुसार समूहित हैं
| समूह | Capability के उदाहरण |
|---|---|
| हार्डवेयर | UART, I²C, SPI, GPIO, USB serial/UVC, CSI |
| MAVLink | Read, write और अपने component का registration |
| टेलीमेट्री | Subscribe, extend और event publish करना |
| Sensors / payload | Sensor या payload interface का registration |
| मिशन | Mission data पढ़ना, लिखना और record करना |
| नेटवर्क | केवल manifest allowlist तक HTTPS egress |
Permission का अर्थ पूरे system तक सीधी पहुँच नहीं है। उदाहरण के लिए UART permission को specific device या brokered handle देना चाहिए, और network egress केवल पहले घोषित domains तक होना चाहिए। Operator Mission Control से grant revoke कर सकता है।
Manifest और न्यूनतम plugin context
name: cell-balance-monitor
version: 0.1.0
agent:
entry: cell_balance:run
capabilities:
- telemetry.read
- event.publishfrom kairos_sdk import PluginContext
async def run(ctx: PluginContext):
async for battery in ctx.telemetry.subscribe("telemetry.battery"):
cells = battery.get("cells", [])
if cells and max(cells) - min(cells) > 0.15:
await ctx.events.publish(
"alert.cell_imbalance",
{"spread_v": max(cells) - min(cells)},
)Installation, permissions, logs और tests
kairos plugin install ./thermal-cam.kairosplug
kairos plugin enable thermal-cam
kairos plugin list
kairos plugin disable <name>
kairos plugin remove <name>
kairos plugin info <name>
kairos plugin perms <name>
kairos plugin logs <name>
kairos plugin test <path>install package और signature जाँचकर requested permissions दिखाता है। enable केवल grant के बाद process शुरू करता है। info और perms audit के लिए, logs diagnostics के लिए और test local author workflow के लिए हैं। Removal को process रोककर केवल उसका scoped state साफ़ करना चाहिए, अन्य extensions को नहीं छूना चाहिए।
तीन मूल plugins और device extensions
geofence
अनुमत क्षेत्रों के सापेक्ष position जाँचता है और दिखाई देने वाला event प्रकाशित करता है।
telemetry-logger
चुनी हुई telemetry streams को volume limits और स्पष्ट lifecycle के साथ record करता है।
mavlink-inspector
डिफ़ॉल्ट रूप से flight state बदले बिना diagnostics के लिए frames दिखाता है।
Thermal कैमरा
FLIR Lepton USB UVC, radiometric Y16, Celsius, palette/isotherm और MAVLink camera interface।
MAVLink Gimbal v2
बाहरी controller bridge, attitude command/status और component 154।
पहला release और आगे के चरण अलग हैं
| पहला लक्षित release | अगला चरण |
|---|---|
| स्थानीय signed installation | खोज योग्य hosted registry |
| हर IPC पर capability enforcement | Public standalone kairos_sdk package |
| Built-ins और CLI | Scaffolder और templates |
| Permission review और revoke | Git URL से installation |
| परीक्षण runner | Shared driver layer और पूर्ण author documentation |