work on auto-generating parts of docs from JSONSchema

This commit is contained in:
Joel Wetzell
2026-06-01 18:03:47 -05:00
parent e22e25afe2
commit f82b55963b
67 changed files with 2471 additions and 257 deletions
+6 -8
View File
@@ -3,24 +3,22 @@ title: SQLite
sidebar:
order: 1
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
The `db.sqlite` module can open/create SQLite databases
- **type**: `db.sqlite`
- **params**:
- **dsn**: the data source name, this can be a file path or the special `:memory:` name for an in-memory DB
<SchemaInfo type="module" id="db.sqlite"></SchemaInfo>
This module implements the `DatabaseModule` interface.
## Cap
### Example snippet
### Example
Opens an in-memory SQLite database
```yaml
- id: db
- id: myDatabase
type: db.sqlite
params:
dsn: ":memory:"
params:
dsn: ":memory:"
```
@@ -4,12 +4,11 @@ sidebar:
label: Server
order: 2
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
The `http.server` module emits a message for every HTTP request that is made to the server.
- **type**: `http.server`
- **params**:
- **port**: TCP port to listen for HTTP requests on
<SchemaInfo type="module" id="http.server"></SchemaInfo>
### Example
+2 -3
View File
@@ -6,6 +6,7 @@ sidebar:
---
import { Aside } from "@astrojs/starlight/components";
import SchemaInfo from '../../../../components/SchemaInfo.astro';
<Aside type="caution">
This module is not currently included in the docker builds of
@@ -14,9 +15,7 @@ import { Aside } from "@astrojs/starlight/components";
The `midi.input` module connects to a midi device (or virtual device) and emits MIDI messages that come in on that port. This module does not support output.
- **type**: `midi.input`
- **params**:
- **port**: name of the MIDI port to connect to
<SchemaInfo type="module" id="midi.input"></SchemaInfo>
### Example
+2 -3
View File
@@ -6,6 +6,7 @@ sidebar:
---
import { Aside } from "@astrojs/starlight/components";
import SchemaInfo from '../../../../components/SchemaInfo.astro';
<Aside type="caution">
This module is not currently included in the docker builds of
@@ -14,9 +15,7 @@ import { Aside } from "@astrojs/starlight/components";
The `midi.output` module connects to a midi device (or virtual device) and allows sending MIDI messages out to that device. This module does not produce any messages and so using it as an `input` to a [route](/concepts/routes) would be pointless.
- **type**: `midi.output`
- **params**:
- **port**: name of the MIDI port to connect to
<SchemaInfo type="module" id="midi.output"></SchemaInfo>
### Example
+2 -5
View File
@@ -4,14 +4,11 @@ sidebar:
label: Client
order: 1
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
The `mqtt.client` module connects to a MQTT broker and emits a message messages based on the subscribed topic it receives from the port. This module is also capable of publishing MQTT messages to the connected broker.
- **type**: `mqtt.client`
- **params**:
- **broker**: connection string for the mqtt broker (`mqtt://test.mosquitto.org:1833`)
- **topic** mqtt topic to subscribe to
- **clientId** client ID for this connection to the broker
<SchemaInfo type="module" id="mqtt.client"></SchemaInfo>
This module implements the `PubSubModule` interface.
+2 -4
View File
@@ -4,13 +4,11 @@ sidebar:
label: Client
order: 1
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
This module connects to a [NATS](https://nats.io/) server and subscribes to a subject.
- **type**: `nats.client`
- **params**:
- **url**: the URL of the NATS server to connect to (e.g. `nats://localhost:4222`)
- **subject**: the subject to subscribe to
<SchemaInfo type="module" id="nats.client"></SchemaInfo>
This module implements the `PubSubModule` interface.
+5 -7
View File
@@ -4,22 +4,20 @@ sidebar:
label: Server
order: 2
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
This module starts a NATS server that listens for incoming connections.
- **type**: `nats.server`
- **params**:
- **ip**: (optional) the IP address to bind the server to defaults to `0.0.0.0`
- **port**: (optional) the port to listen on defaults to `4222`
<SchemaInfo type="module" id="nats.server"></SchemaInfo>
### Example
Start a local NATS server listening on port 5555
```yaml
- id: httpServer
type: http.server
- id: natsServer
type: nats.server
params:
ip: 127.0.0.1
port: 5555
port: 4222
```
+2 -10
View File
@@ -4,19 +4,11 @@ sidebar:
label: Client
order: 1
---
import SchemaInfo from '../../../../../components/SchemaInfo.astro';
The `net.tcp.client` module connects to TCP server and emits messages based on the data it receives from the server that it connects to. Messages are determined by "framing" techniques as TCP is a stream based protocol. The module will attempt to reconnect anytime the connection is closed.
- **type**: `net.tcp.client`
- **params**:
- **host**: IP or FQDN to connect to
- **port**: TCP port to connect to
- **framing**: how to chunk the TCP stream into "messages"
- LF `\n`
- CR `\r`
- CRLF `\r\n`
- [SLIP](https://en.wikipedia.org/wiki/Serial_Line_Internet_Protocol)
- RAW (no framing is done bytes are sent out as they are received)
<SchemaInfo type="module" id="net.tcp.client"></SchemaInfo>
### Example
+2 -10
View File
@@ -4,19 +4,11 @@ sidebar:
label: Server
order: 2
---
import SchemaInfo from '../../../../../components/SchemaInfo.astro';
The `net.tcp.server` module emits a message messages based on the data it receives from clients that connect to it. Messages are determined by "framing" techniques as TCP is a stream based protocol.
- **type**: `net.tcp.server`
- **params**:
- **ip**: (optional) IP address to bind the TCP server to, if left out it will listen on all interfaces
- **port**: TCP port to listen on
- **framing**: how to chunk of the incoming TCP stream into "messages"
- LF `\n`
- CR `\r`
- CRLF `\r\n`
- [SLIP](https://en.wikipedia.org/wiki/Serial_Line_Internet_Protocol)
- RAW (no framing is done bytes are sent out as they are received)
<SchemaInfo type="module" id="net.tcp.server"></SchemaInfo>
### Example
+2 -4
View File
@@ -4,13 +4,11 @@ sidebar:
label: Client
order: 1
---
import SchemaInfo from '../../../../../components/SchemaInfo.astro';
The `net.udp.client` module sends messages to a the configured `host` and `port`. This module does not produce any messages and so using it as an `input` to a [route](/concepts/routes) would be pointless.
- **type**: `net.udp.client`
- **params**:
- **host**: IP or FQDN to send message to
- **port**: UDP port to send messages to
<SchemaInfo type="module" id="net.udp.client"></SchemaInfo>
### Example
@@ -4,11 +4,9 @@ sidebar:
label: Multicast
order: 3
---
import SchemaInfo from '../../../../../components/SchemaInfo.astro';
- **type**: `net.udp.multicast`
- **params**:
- **ip**: the multicast IP address to listen to
- **port**: the port to listen on
<SchemaInfo type="module" id="net.udp.multicast"></SchemaInfo>
### Example
+2 -5
View File
@@ -4,14 +4,11 @@ sidebar:
label: Server
order: 2
---
import SchemaInfo from '../../../../../components/SchemaInfo.astro';
The `net.udp.server` module emits a message for every incoming UDP datagram.
- **type**: `net.udp.server`
- **params**:
- **ip**: (optional) IP address to bind the UDP server to, if left out it will listen on all interfaces
- **port**: UDP port to listen on
- **bufferSize**: (optional) Size of the read buffer for incoming UDP datagrams, defaults to `2048`
<SchemaInfo type="module" id="net.udp.server"></SchemaInfo>
### Example
+3 -2
View File
@@ -4,11 +4,12 @@ sidebar:
label: Client
order: 1
---
- **type**: `psn.client`
import SchemaInfo from '../../../../components/SchemaInfo.astro';
This module listens on the [PosiStageNet](http://posistage.net/) multicast address and emits tracker states anytime a new PSN message is received.
<SchemaInfo type="module" id="psn.client"></SchemaInfo>
### Example
```yaml
+2 -4
View File
@@ -4,13 +4,11 @@ sidebar:
label: Client
order: 1
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
The `redis.client` module connects to a Redis server. This module does not produce any messages and so using it as an `input` to a [route](/concepts/routes) would be pointless.
- **type**: `redis.client`
- **params**:
- **host**: the Redis server host
- **port**: the Redis server port
<SchemaInfo type="module" id="redis.client"></SchemaInfo>
This module implements the `KeyValueModule` interface.
+2 -11
View File
@@ -4,7 +4,7 @@ sidebar:
label: Client
order: 1
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
import { Aside } from "@astrojs/starlight/components";
<Aside type="caution">
@@ -14,16 +14,7 @@ import { Aside } from "@astrojs/starlight/components";
The `serial.client` module connects to a serial device and emits a message messages based on the data it receives from the port. Messages are determined by "framing" techniques as serial is a stream based protocol.
- **type**: `serial.client`
- **params**:
- **port**: serial port to connect to i.e `/dev/ttyS0`
- **baudRate** baud rate to use when connecting to serial port
- **framing**: how to chunk the serial stream into "messages"
- LF `\n`
- CR `\r`
- CRLF `\r\n`
- [SLIP](https://en.wikipedia.org/wiki/Serial_Line_Internet_Protocol)
- RAW (no framing is done bytes are sent out as they are received)
<SchemaInfo type="module" id="serial.client"></SchemaInfo>
### Example
+2 -6
View File
@@ -4,15 +4,11 @@ sidebar:
label: Server
order: 1
---
import SchemaInfo from '../../../../../components/SchemaInfo.astro';
This module starts a [SIP](https://en.wikipedia.org/wiki/Session_Initiation_Protocol) server that listens for incoming connections and emits call events when a new call is received. This can be used with cheap SIP gateway devices to connect an analog phone line and do interesting things like [firing QLab cues with phone calls](/examples/dial-a-cue).
- **type**: `sip.call.server`
- **params**:
- **ip**: (optional) the IP address to bind the server to defaults to `0.0.0.0`
- **port**: (optional) the port to listen on defaults to `5060`
- **transport**: (optional) the transport protocol to use (e.g. `udp`, `tcp`, `ws`) defaults to `udp`
- **userAgent**: (optional) the User-Agent string to use in SIP responses defaults to `showbridge`
<SchemaInfo type="module" id="sip.call.server"></SchemaInfo>
### Example
+2 -7
View File
@@ -4,16 +4,11 @@ sidebar:
label: Server
order: 1
---
import SchemaInfo from '../../../../../components/SchemaInfo.astro';
This module starts a [SIP](https://en.wikipedia.org/wiki/Session_Initiation_Protocol) server that listens for incoming connections. When a call is received this module will emit events based on the touch tones (DTMF) received during the call. The event is sent out whenever the use presses the separator key defined in the params.
- **type**: `sip.dtmf.server`
- **params**:
- **ip**: (optional) the IP address to bind the server to defaults to `0.0.0.0`
- **port**: (optional) the port to listen on defaults to `5060`
- **transport**: (optional) the transport protocol to use (e.g. `udp`, `tcp`, `ws`) defaults to `udp`
- **userAgent**: (optional) the User-Agent string to use in SIP responses defaults to `showbridge`
- **separator**: the DTMF separator key to know when to emit events
<SchemaInfo type="module" id="sip.dtmf.server"></SchemaInfo>
### Example
+2 -3
View File
@@ -3,12 +3,11 @@ title: Interval
sidebar:
order: 2
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
The `time.interval` module emits a message at a specified duration. Sending any message to this module will reset the interval timer.
- **type**: `time.interval`
- **params**:
- **duration**: time in milliseconds between messsages
<SchemaInfo type="module" id="time.interval"/>
### Example snippet
+2 -3
View File
@@ -3,12 +3,11 @@ title: Timer
sidebar:
order: 1
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
The `time.timer` module emits only one message after a specified duration. Sending any message to this module will reset the timer.
- **type**: `time.timer`
- **params**:
- **duration**: time in milliseconds to wait before emitting message
<SchemaInfo type="module" id="time.timer"></SchemaInfo>
### Example snippet
@@ -4,12 +4,11 @@ sidebar:
label: Client
order: 1
---
import SchemaInfo from '../../../../components/SchemaInfo.astro';
The `websocket.client` module opens a websocket connection to the specified URL. This module supports both text and binary websocket messages.
- **type**: `websocket.client`
- **params**:
- **url**: the full url to connect to (`wss://echo.websocket.org`)
<SchemaInfo type="module" id="websocket.client"></SchemaInfo>
### Example