🔌 LMS Extensions API

Complete extension management system for UI and server-side extensions

v1.0.0 OpenAPI 3.1 Cloudflare Workers

Welcome to the LMS Extensions API

This API provides a complete extension management system supporting UI extensions (HTML/CSS/JS), server extensions (Go/WASM/exec), and hybrid extensions combining both.

API Endpoints

GET /api/extensions

List all installed extensions. Supports optional filtering by type and enabled status.

View Example
curl https://extensions.lms.link.blacklink.net/api/extensions?type=ui&enabled=true
POST /api/extensions/install

Install an extension from zip file or URL

View Example (File Upload)
curl -X POST https://extensions.lms.link.blacklink.net/api/extensions/install \
  -F "package=@extension.zip"
View Example (URL)
curl -X POST https://extensions.lms.link.blacklink.net/api/extensions/install \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/extension.zip"}'
POST /api/extensions/enable

Enable or disable an extension

View Example
curl -X POST https://extensions.lms.link.blacklink.net/api/extensions/enable \
  -H "Content-Type: application/json" \
  -d '{"id": "my-extension", "enabled": true}'
POST /api/extensions/remove

Remove an extension

View Example
curl -X POST https://extensions.lms.link.blacklink.net/api/extensions/remove \
  -H "Content-Type: application/json" \
  -d '{"id": "my-extension"}'
POST /api/extensions/update

Update an existing extension

View Example
curl -X POST https://extensions.lms.link.blacklink.net/api/extensions/update \
  -F "package=@extension-v2.zip"

Extension Manifest Schema

Every extension must include an extension.json file:

{
  "id": "my-extension",
  "name": "My Extension",
  "version": "1.0.0",
  "description": "Description of my extension",
  "author": "Your Name",
  "type": "ui|server|hybrid",
  "entry": "index.html",
  "public_dir": "public",
  "server": {
    "runtime": "go|wasm|exec",
    "entry": "server/extension.wasm"
  },
  "enabled": false
}

Security Features