From 65a9be5a75f47dc106374ef2a338ba28752a601c Mon Sep 17 00:00:00 2001
From: Michael Fyffe <6224270+TraGicCode@users.noreply.github.com>
Date: Sat, 29 Nov 2025 23:06:11 -0600
Subject: [PATCH] Add documentation for configuring the learning transport
within busly
---
website/docs/configuration/_category_.json | 4 ++
website/docs/configuration/configuration.md | 3 +
website/docs/getting-started/_category_.json | 7 +--
.../docs/getting-started/getting-started.mdx | 7 +++
website/docs/getting-started/quick-start.mdx | 2 +-
website/docs/introduction.md | 27 ---------
website/docs/transports/_category_.json | 4 ++
website/docs/transports/learning.md | 58 +++++++++++++++++++
website/docs/transports/transports.mdx | 9 +++
website/docusaurus.config.js | 2 +-
website/package-lock.json | 29 +---------
website/src/pages/index.js | 2 +-
12 files changed, 90 insertions(+), 64 deletions(-)
create mode 100644 website/docs/configuration/_category_.json
create mode 100644 website/docs/configuration/configuration.md
create mode 100644 website/docs/getting-started/getting-started.mdx
delete mode 100644 website/docs/introduction.md
create mode 100644 website/docs/transports/_category_.json
create mode 100644 website/docs/transports/learning.md
create mode 100644 website/docs/transports/transports.mdx
diff --git a/website/docs/configuration/_category_.json b/website/docs/configuration/_category_.json
new file mode 100644
index 0000000..8ab522c
--- /dev/null
+++ b/website/docs/configuration/_category_.json
@@ -0,0 +1,4 @@
+ο»Ώ{
+ "label": "Configuration",
+ "position": 3
+}
diff --git a/website/docs/configuration/configuration.md b/website/docs/configuration/configuration.md
new file mode 100644
index 0000000..c5af6cb
--- /dev/null
+++ b/website/docs/configuration/configuration.md
@@ -0,0 +1,3 @@
+ο»Ώ# Configuration
+
+busly-cli uses an application-specific configuration file to store settings such as transport configuration and operational parameters. By default, the CLI looks for the configuration file at `~/.busly-cli/config.yaml`
diff --git a/website/docs/getting-started/_category_.json b/website/docs/getting-started/_category_.json
index 4ddced6..818afe3 100644
--- a/website/docs/getting-started/_category_.json
+++ b/website/docs/getting-started/_category_.json
@@ -1,8 +1,3 @@
{
- "label": "Getting Started",
- "position": 2,
- "link": {
- "type": "generated-index",
- "description": "Everything you need for getting started with this tool."
- }
+ "position": 1
}
diff --git a/website/docs/getting-started/getting-started.mdx b/website/docs/getting-started/getting-started.mdx
new file mode 100644
index 0000000..5b6642a
--- /dev/null
+++ b/website/docs/getting-started/getting-started.mdx
@@ -0,0 +1,7 @@
+import DocCardList from "@theme/DocCardList";
+
+# Getting Started
+
+Everything you need for getting started with this tool.
+
+
diff --git a/website/docs/getting-started/quick-start.mdx b/website/docs/getting-started/quick-start.mdx
index b36176f..629372f 100644
--- a/website/docs/getting-started/quick-start.mdx
+++ b/website/docs/getting-started/quick-start.mdx
@@ -67,7 +67,7 @@ busly transport current
:::note
This guide uses RabbitMQ for simplicity, but Busly supports multiple NServiceBus transports.
-Check out the [Transports section](#) for other options.
+Check out the [Transports section](../transports/) for other options.
:::
## Run RabbitMQ
diff --git a/website/docs/introduction.md b/website/docs/introduction.md
deleted file mode 100644
index fc6cfd5..0000000
--- a/website/docs/introduction.md
+++ /dev/null
@@ -1,27 +0,0 @@
----
-sidebar_position: 1
-title: Introduction
----
-
-import BuslyLogoImageUrl from '@site/static/img/busly-logo.png';
-
-
-

-
-
-# Introduction
-
-**Busly CLI** is a lightweight, open source command-line tool that **allows developers to send messages to an NServiceBus endpoint at the power of their fingertips** β no boilerplate code, no host applications, just quick and reliable messaging from your terminal.
-
-Built for speed and simplicity, this tool streamlines common **messaging**, **testing**, and **debugging** scenarios when working with **NServiceBus** and **message-driven architectures**. **NServiceBus CLI** is fully **cross-platform**, running on Windows, macOS, and Linux, and offers **multiple installation options** to suit your workflow. Whether youβre validating endpoints, simulating events, or quickly **implementing a proof of concept (POC)** for a new messaging solution, this CLI lets you publish or send messages instantly, giving you full control of your distributed system from the command line.
-
----
-
-## Key Features
-
-- π **Send messages via CLI** β Quickly send commands or publish events to NServiceBus endpoints.
-- π§© **Supports custom message types** β Define and send serialized payloads that match your message contracts.
-- π **Supported transports** β Works with **Azure Service Bus**, **RabbitMQ**, and **AWS SQS**.
-- βοΈ **Transport configuration file** β Configure and easily switch between multiple transports. Transports can run on your **local machine** or be pointed to **development**, **staging**, or **production** environments.
-- π» **Cross-platform support** β Works seamlessly on Windows, macOS, and Linux.
-- π¦ **Multiple installation options** β Install via **Chocolatey**, **Docker**, **.NET tool (via NuGet)**, or by **downloading the binary directly from GitHub Releases**.
diff --git a/website/docs/transports/_category_.json b/website/docs/transports/_category_.json
new file mode 100644
index 0000000..948bfea
--- /dev/null
+++ b/website/docs/transports/_category_.json
@@ -0,0 +1,4 @@
+ο»Ώ{
+
+ "position": 3
+}
diff --git a/website/docs/transports/learning.md b/website/docs/transports/learning.md
new file mode 100644
index 0000000..fb19c88
--- /dev/null
+++ b/website/docs/transports/learning.md
@@ -0,0 +1,58 @@
+# Learning Transport
+
+The **Learning Transport** is a simple file-based transport used mainly for local development and tutorials.
+
+## Configuration
+
+To use the Learning Transport, define it under `transports` and reference it as `current-transport`.
+
+### Example
+
+```yaml
+current-transport: local-learning
+
+transports:
+ - name: local-learning
+ learning-transport-config:
+ storage-directory: C:\Source\tutorials-quickstart\.learningtransport
+ restrict-payload-size: true
+```
+
+---
+
+## `learning-transport-config` Fields
+
+| Field | Required | Type | Default | Description |
+| ----------------------- | -------- | ------- | ------- | ----------------------------------------------------------------------------------------------------- |
+| `storage-directory` | **Yes** | string | β | Absolute path where Learning Transport stores message files. Busly will not start without this value. |
+| `restrict-payload-size` | No | boolean | `true` | Enforces the NServiceBus payload size limit. Set to `false` if you need to send larger payloads. |
+
+---
+
+## Field Details
+
+### `storage-directory` (required)
+
+This must be an **absolute file path**.
+The Learning Transport stores outgoing and incoming messages in a folder structure at this location.
+If this value is missing, Busly reports an error and exits.
+
+Example:
+
+```yaml
+storage-directory: C:\MyProject\.learningtransport
+```
+
+---
+
+### `restrict-payload-size` (optional, default: `true`)
+
+When enabled (the default), Busly enforces the same message size limits as NServiceBus.
+
+Set to `false` if using large JSON payloads or test messages.
+
+Example:
+
+```yaml
+restrict-payload-size: false
+```
diff --git a/website/docs/transports/transports.mdx b/website/docs/transports/transports.mdx
new file mode 100644
index 0000000..0522ad9
--- /dev/null
+++ b/website/docs/transports/transports.mdx
@@ -0,0 +1,9 @@
+import DocCardList from "@theme/DocCardList";
+
+# Transports
+
+Just like an NServiceBus endpoint, Busly requires a transport configuration before it can send messages. The transport determines how Busly connects to and communicates with your NServiceBus endpoints.
+
+Busly supports the same transports available in NServiceBus. Each transport has its own configuration requirements and capabilities. The sections below provide detailed guides and examples for configuring each transport.
+
+
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
index 55a009c..a167a6a 100644
--- a/website/docusaurus.config.js
+++ b/website/docusaurus.config.js
@@ -115,7 +115,7 @@ const config = {
items: [
{
label: "Tutorial",
- to: "/docs/introduction",
+ to: "/docs/getting-started",
},
],
},
diff --git a/website/package-lock.json b/website/package-lock.json
index 183799e..2cf8727 100644
--- a/website/package-lock.json
+++ b/website/package-lock.json
@@ -230,7 +230,6 @@
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.41.0.tgz",
"integrity": "sha512-G9I2atg1ShtFp0t7zwleP6aPS4DcZvsV4uoQOripp16aR6VJzbEnKFPLW4OFXzX7avgZSpYeBAS+Zx4FOgmpPw==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@algolia/client-common": "5.41.0",
"@algolia/requester-browser-xhr": "5.41.0",
@@ -356,7 +355,6 @@
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz",
"integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/code-frame": "^7.27.1",
"@babel/generator": "^7.28.5",
@@ -2146,7 +2144,6 @@
}
],
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=18"
},
@@ -2169,7 +2166,6 @@
}
],
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=18"
}
@@ -2279,7 +2275,6 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -2701,7 +2696,6 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -3565,7 +3559,6 @@
"resolved": "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz",
"integrity": "sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@docusaurus/core": "3.9.2",
"@docusaurus/logger": "3.9.2",
@@ -4262,7 +4255,6 @@
"resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.1.1.tgz",
"integrity": "sha512-f++rKLQgUVYDAtECQ6fn/is15GkEH9+nZPM3MS0RcxVqoTfawHvDlSCH7JbMhAM6uJ32v3eXLvLmLvjGu7PTQw==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/mdx": "^2.0.0"
},
@@ -4581,7 +4573,6 @@
"resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz",
"integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/core": "^7.21.3",
"@svgr/babel-preset": "8.1.0",
@@ -4953,7 +4944,6 @@
"resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.2.tgz",
"integrity": "sha512-6mDvHUFSjyT2B2yeNx2nUgMxh9LtOWvkhIU3uePn2I2oyNymUAX1NIsdgviM4CH+JSrp2D2hsMvJOkxY+0wNRA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"csstype": "^3.0.2"
}
@@ -5304,7 +5294,6 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
"license": "MIT",
- "peer": true,
"bin": {
"acorn": "bin/acorn"
},
@@ -5390,7 +5379,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
"integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.3",
"fast-uri": "^3.0.1",
@@ -5436,7 +5424,6 @@
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.41.0.tgz",
"integrity": "sha512-9E4b3rJmYbBkn7e3aAPt1as+VVnRhsR4qwRRgOzpeyz4PAOuwKh0HI4AN6mTrqK0S0M9fCCSTOUnuJ8gPY/tvA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@algolia/abtesting": "1.7.0",
"@algolia/client-abtesting": "5.41.0",
@@ -5900,7 +5887,6 @@
}
],
"license": "MIT",
- "peer": true,
"dependencies": {
"baseline-browser-mapping": "^2.8.19",
"caniuse-lite": "^1.0.30001751",
@@ -6857,7 +6843,6 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -8231,7 +8216,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -12693,7 +12677,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -13209,7 +13192,6 @@
}
],
"license": "MIT",
- "peer": true,
"dependencies": {
"nanoid": "^3.3.11",
"picocolors": "^1.1.1",
@@ -14113,7 +14095,6 @@
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz",
"integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"cssesc": "^3.0.0",
"util-deprecate": "^1.0.2"
@@ -14908,7 +14889,6 @@
"resolved": "https://registry.npmjs.org/react/-/react-19.2.0.tgz",
"integrity": "sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==",
"license": "MIT",
- "peer": true,
"engines": {
"node": ">=0.10.0"
}
@@ -14918,7 +14898,6 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.0.tgz",
"integrity": "sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==",
"license": "MIT",
- "peer": true,
"dependencies": {
"scheduler": "^0.27.0"
},
@@ -14974,7 +14953,6 @@
"resolved": "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz",
"integrity": "sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/react": "*"
},
@@ -15003,7 +14981,6 @@
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz",
"integrity": "sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@babel/runtime": "^7.12.13",
"history": "^4.9.0",
@@ -16776,8 +16753,7 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
- "license": "0BSD",
- "peer": true
+ "license": "0BSD"
},
"node_modules/type-fest": {
"version": "2.19.0",
@@ -17167,7 +17143,6 @@
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"license": "MIT",
- "peer": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -17375,7 +17350,6 @@
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.102.1.tgz",
"integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==",
"license": "MIT",
- "peer": true,
"dependencies": {
"@types/eslint-scope": "^3.7.7",
"@types/estree": "^1.0.8",
@@ -17962,7 +17936,6 @@
"resolved": "https://registry.npmjs.org/zod/-/zod-4.1.12.tgz",
"integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==",
"license": "MIT",
- "peer": true,
"funding": {
"url": "https://github.com/sponsors/colinhacks"
}
diff --git a/website/src/pages/index.js b/website/src/pages/index.js
index 29f4ed4..71328c9 100644
--- a/website/src/pages/index.js
+++ b/website/src/pages/index.js
@@ -19,7 +19,7 @@ function HomepageHeader() {
Get Started