Extension registry for LegionIO. Persists extension, runner, and function metadata to the database when LEX gems load.
When LegionIO loads extensions, it publishes LexRegister messages to RabbitMQ. This extension:
- Consumes those messages via a subscription actor
- Persists extension/runner/function records to
legion-datamodels - Syncs in-memory extension state with the database on startup
Without lex-lex, the REST API (/api/extensions), MCP tools (legion.list_extensions), and CLI (legion lex list) return empty results.
| Runner | Methods | Purpose |
|---|---|---|
| Extension | create, update, get, delete | CRUD for extensions |
| Runner | create, update, get, delete | CRUD for runners |
| Function | create, update, get, delete, build_args | CRUD for functions + arg schema |
| Register | save | Persist full extension descriptor |
| Sync | sync | Reconcile in-memory state with DB |
- Ruby >= 3.4
legion-datamust be connected (data_required? true)
bundle install
bundle exec rspec
bundle exec rubocopMIT