From 1b048aa5bb5a0e082693538e9b32fd87a73c16ff Mon Sep 17 00:00:00 2001 From: Garrisonsan <50163244+Garrisonsan@users.noreply.github.com> Date: Wed, 10 Jun 2026 20:30:02 -0500 Subject: [PATCH 1/4] Update onboarding.md to include 1st draft new policies Include 1st draft new policies on new region creation, namely: 1. No regions within regions 2. No new regions when expanding a nearby neighbor would suffice --- docs/onboarding.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/docs/onboarding.md b/docs/onboarding.md index 1003ca4..21eb959 100755 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -2,12 +2,16 @@ MeshMapper is designed to be scalable, allowing new geographic regions to be added to the network. This guide outlines the process for community members to request a new map zone for their local mesh. +*Please note that all region approvals are granted at the discretion of the master and global administration team. Some circumstances may better be served by working with an existing region rather than creating a new one.* + ## Prerequisites -Before requesting a new region, you must ensure the local infrastructure is ready to support it. +Before requesting a new region, you must ensure the local infrastructure is ready to support it and that the new region would not be redundant or better served by making modifications to an existing region's boundaries. - **Active Mesh Community**: There should be an active group of users in the area. - - **MQTT Observers**: You need at least one (preferably 2-3) nodes configured as **MQTT Clients** connected to the **LetsMesh** broker, the **MeshMapper** broker, or both. + - **No Existing Region**: There must not be an existing region covering a substantial portion of the area desired for any new region. Regions within regions will not be allowed. + - **No Nearby Neighbors**: No nearby neighboring regions should exist that could reasonably be expanded to include your desired area. The details matter. If your mesh is and will likely remain distinct from a nearby neighbor (e.g. due to natural terrain features that block RF), then a new region would be reasonable. + - **MQTT Observers**: You need at least one (preferably 2-3) nodes configured as **MQTT Clients** connected to the **MeshMapper** broker, the **LetsMesh** broker, or both. - These nodes act as the "ears" of the map, reporting traffic to MeshMapper. - See [MeshMapper MQTT Setup](mqtt-main.md) for detailed instructions. @@ -19,7 +23,7 @@ The form collects the following critical information: | Field | Description | | --- | --- | -| **IATA Code** | The 3-letter code that will identify your region in the database and URL (e.g., `yow.meshmapper.net`). | +| **IATA Code** | The 3-letter code that will identify your region in the database and URL (e.g., `yow.meshmapper.net`). *Please note that the mere existence of an IATA code does not, in and of itself, imply suitability for a MeshMapper region to be created using that code.*| | **Region Name** | The display name for the map (e.g., "Ottawa, CA", "London, UK"). | | **Region Radius** | A rough estimate (in km) of the area you intend to cover. | | **Contact Info** | Your Discord username or Email address. This is required for administrators to contact you during the setup process. | @@ -50,18 +54,18 @@ When your region is approved and deployed, an administrator account will be auto ## Defining the Boundary -One of the most important steps is defining the geographic boundary of your region. For a more detailed look into creating region boundaries (particularly if using geoJSON files), please see [Region Boundaries](region_boundaries.md). +One of the most important steps is defining the geographic boundary of your region. For a more detailed look into creating region boundaries (particularly if using geoJSON files), please see [Region Boundaries](region_boundaries.md). Regardless of which method is ultimately used, look at the other regions in your area and attempt to coordinate/align with area best practices. - **The Map Tool**: The form includes an interactive map with drawing tools. - - **Draw Polygon**: Use the **Polygon Tool** (pentagon icon) to draw a precise shape around your mesh's coverage area if a circle doesn't accurately describe it. Alternatively, click the "Auto Generate Boundry" button to have AI attempt to draw the boundry for you. - - **Import GeoJSON**: Alternatively, click the **Import GeoJSON** button to paste GeoJSON data directly. This is useful if you already have a boundary defined in another tool (e.g., [geojson.io](https://geojson.io)). Supported formats include `Polygon`, `MultiPolygon`, `Feature`, and `FeatureCollection`. + - **Draw Polygon (preferred)**: Use the **Polygon Tool** (pentagon icon) to draw a precise shape around your mesh's coverage area if a circle doesn't accurately describe it. Alternatively, click the "Auto Generate Boundry" button to have AI attempt to draw the boundry for you. + - **Import GeoJSON (alternate preferred)**: Alternatively, click the **Import GeoJSON** button to paste GeoJSON data directly. This is useful if you already have a boundary defined in another tool (e.g., [geojson.io](https://geojson.io)). Supported formats include `Polygon`, `MultiPolygon`, `Feature`, and `FeatureCollection`. - **Region Center**: The center pin automatically moves to the center of the polygon when one is drawn or imported. You can also drag the pin manually if needed. This determines where your region appears on the global map. - **Purpose**: This polygon is used to: - Define where wardriving activities in your region can occur. - Determine if a user is "In Zone" for authentication purposes. - Render the region border on the global map. -*Note: Keep the boundary reasonable. You can always expand it later as your network grows.* +*Note: Keep the boundary reasonable. You can always modify it later, in coordination with your neighbors, as your network grows.* ## Submission & Approval From 3cb4eb67d0280921e6a30294d81734e48fd3e1f8 Mon Sep 17 00:00:00 2001 From: Garrisonsan <50163244+Garrisonsan@users.noreply.github.com> Date: Fri, 12 Jun 2026 21:32:09 -0500 Subject: [PATCH 2/4] Update onboarding.md for 2nd draft of policy updates Add admin activity requirement, minor edits to other sections after consultation with MrAlders0n. Removed requirement for an active community to exist for onboarding --- docs/onboarding.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/onboarding.md b/docs/onboarding.md index 21eb959..a85c4ea 100755 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -8,7 +8,6 @@ MeshMapper is designed to be scalable, allowing new geographic regions to be add Before requesting a new region, you must ensure the local infrastructure is ready to support it and that the new region would not be redundant or better served by making modifications to an existing region's boundaries. - - **Active Mesh Community**: There should be an active group of users in the area. - **No Existing Region**: There must not be an existing region covering a substantial portion of the area desired for any new region. Regions within regions will not be allowed. - **No Nearby Neighbors**: No nearby neighboring regions should exist that could reasonably be expanded to include your desired area. The details matter. If your mesh is and will likely remain distinct from a nearby neighbor (e.g. due to natural terrain features that block RF), then a new region would be reasonable. - **MQTT Observers**: You need at least one (preferably 2-3) nodes configured as **MQTT Clients** connected to the **MeshMapper** broker, the **LetsMesh** broker, or both. @@ -28,8 +27,8 @@ The form collects the following critical information: | **Region Radius** | A rough estimate (in km) of the area you intend to cover. | | **Contact Info** | Your Discord username or Email address. This is required for administrators to contact you during the setup process. | | **Public Channels** | A list of public channels used in your mesh (e.g., `Chat`, `Emergency`). This helps the wardriving app correctly identify valid traffic. | -| **Observer IDs** | The **Public ID** (e.g., `12345678XXXXXX...`) of the nodes acting as MQTT gateways. | -| **Volunteer as Administrator** | Optional. Tick this to volunteer as your region's administrator. Requires Discord to be linked. See [below](#volunteer-as-region-administrator) for details. | +| **Observer IDs** | The **Public ID** (e.g., `12345678XXXXXX...`) of the nodes acting as MQTT gateways. There are two options here. You can either manually enter the public keys of specific observers you want to ingest data from (ignoring all others - you will maintain this list on an ongoing basis), or "Subscribe to all observers" and ingest data from anyone who brings an observer online| +| **Volunteer as Administrator** | Optional but recommended. Tick this to volunteer as your region's administrator. Requires Discord to be linked. See [below](#volunteer-as-region-administrator) for details. | ## Volunteer as Region Administrator @@ -40,6 +39,7 @@ Enabling this option signals to the MeshMapper team that you are willing to take - Monitoring and managing your region's data and settings. - Supporting local wardrivers and answering questions about the map. - Being an active and available point of contact for your mesh community. + - **Please note: Admins are expected to maintain an ongoing, active presence beyond the initial onboarding process. Admins who do not login to their account on the MeshMapper admin panel for more than 90 days are subject to being marked as inactive and/or having admin access removed.** Inactive accounts will not be consulted on changes to a region, and new admins may be added to a region at any time should no active admin accounts be present. **Requirements:** From 357fcb95802add78fc6b87e406fc247f252021db Mon Sep 17 00:00:00 2001 From: Garrisonsan <50163244+Garrisonsan@users.noreply.github.com> Date: Sat, 13 Jun 2026 13:44:14 -0500 Subject: [PATCH 3/4] Update onboarding.md Further clarifications, remove MQTT observer section (not on onboarding form), explicitly state that geoJSON is the preferred region boundary format --- docs/onboarding.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/onboarding.md b/docs/onboarding.md index a85c4ea..8009738 100755 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -9,7 +9,7 @@ MeshMapper is designed to be scalable, allowing new geographic regions to be add Before requesting a new region, you must ensure the local infrastructure is ready to support it and that the new region would not be redundant or better served by making modifications to an existing region's boundaries. - **No Existing Region**: There must not be an existing region covering a substantial portion of the area desired for any new region. Regions within regions will not be allowed. - - **No Nearby Neighbors**: No nearby neighboring regions should exist that could reasonably be expanded to include your desired area. The details matter. If your mesh is and will likely remain distinct from a nearby neighbor (e.g. due to natural terrain features that block RF), then a new region would be reasonable. + - **No Nearby Neighbors**: No nearby neighboring regions should exist that could reasonably be expanded to include your desired area. The details matter. If your mesh is and will likely remain distinct from a nearby neighbor (e.g. due to extreme distance or natural terrain features that block RF), then a new region would be reasonable. If your desired new region falls in this category, please explain how it is justified vs modifying a nearby existing region's boundaries in the "Additional Notes" field. - **MQTT Observers**: You need at least one (preferably 2-3) nodes configured as **MQTT Clients** connected to the **MeshMapper** broker, the **LetsMesh** broker, or both. - These nodes act as the "ears" of the map, reporting traffic to MeshMapper. - See [MeshMapper MQTT Setup](mqtt-main.md) for detailed instructions. @@ -22,12 +22,13 @@ The form collects the following critical information: | Field | Description | | --- | --- | -| **IATA Code** | The 3-letter code that will identify your region in the database and URL (e.g., `yow.meshmapper.net`). *Please note that the mere existence of an IATA code does not, in and of itself, imply suitability for a MeshMapper region to be created using that code.*| +| **IATA Code** | The 3-letter code that will identify your region in the database and URL (e.g., `yow.meshmapper.net`). *Please note that the mere existence of an IATA code does not, in and of itself, imply suitability for a MeshMapper region to be created using that code. International and regional commercial airports are strongly preferred over military or general aviation airfields.*| | **Region Name** | The display name for the map (e.g., "Ottawa, CA", "London, UK"). | | **Region Radius** | A rough estimate (in km) of the area you intend to cover. | -| **Contact Info** | Your Discord username or Email address. This is required for administrators to contact you during the setup process. | +| **Region Boundary** | This is where you define your desired region boundary. We strongly encourage region admins to use geoJSON files and coordinate with neighboring regions when defining a region's boundaries. More information and geoJSON resources are available at [Region Boundaries](region_boundaries.md). | +| **Email Address / Discord Notifications** | Enter your email address (required) and optionally - though encouraged - link your Discord account to receive notifications on the status of your application. | +| **Additional Notes** | Use this field to provide additional details or context about your application. If your desired region doesn't meet the [prerequisites](#Prerequisites) above and you believe an exception should be made, justify it in detail here. | | **Public Channels** | A list of public channels used in your mesh (e.g., `Chat`, `Emergency`). This helps the wardriving app correctly identify valid traffic. | -| **Observer IDs** | The **Public ID** (e.g., `12345678XXXXXX...`) of the nodes acting as MQTT gateways. There are two options here. You can either manually enter the public keys of specific observers you want to ingest data from (ignoring all others - you will maintain this list on an ongoing basis), or "Subscribe to all observers" and ingest data from anyone who brings an observer online| | **Volunteer as Administrator** | Optional but recommended. Tick this to volunteer as your region's administrator. Requires Discord to be linked. See [below](#volunteer-as-region-administrator) for details. | ## Volunteer as Region Administrator @@ -57,9 +58,9 @@ When your region is approved and deployed, an administrator account will be auto One of the most important steps is defining the geographic boundary of your region. For a more detailed look into creating region boundaries (particularly if using geoJSON files), please see [Region Boundaries](region_boundaries.md). Regardless of which method is ultimately used, look at the other regions in your area and attempt to coordinate/align with area best practices. - **The Map Tool**: The form includes an interactive map with drawing tools. - - **Draw Polygon (preferred)**: Use the **Polygon Tool** (pentagon icon) to draw a precise shape around your mesh's coverage area if a circle doesn't accurately describe it. Alternatively, click the "Auto Generate Boundry" button to have AI attempt to draw the boundry for you. - - **Import GeoJSON (alternate preferred)**: Alternatively, click the **Import GeoJSON** button to paste GeoJSON data directly. This is useful if you already have a boundary defined in another tool (e.g., [geojson.io](https://geojson.io)). Supported formats include `Polygon`, `MultiPolygon`, `Feature`, and `FeatureCollection`. - - **Region Center**: The center pin automatically moves to the center of the polygon when one is drawn or imported. You can also drag the pin manually if needed. This determines where your region appears on the global map. + - **Import GeoJSON (strongly preferred)**: Click the **Import GeoJSON** button to paste GeoJSON data directly. This is useful if you already have a boundary defined in another tool (e.g., [geojson.io](https://geojson.io)). Supported formats include `Polygon`, `MultiPolygon`, `Feature`, and `FeatureCollection`. Drag the pin to your desired load-in view when loading the region on the web. + - **Draw Polygon (alternate preferred)**: Use the **Polygon Tool** (pentagon icon) to draw a precise shape around your mesh's coverage area if a circle doesn't accurately describe it. Alternatively, click the "Auto Generate Boundry" button to have AI attempt to draw the boundry for you. Drag the pin to your desired load-in view when loading the region on the web. + - **Radius Around Region Center (discouraged)**: Drag the pin or enter the GPS coordinates (degrees longitude west are negative numbers) and desired radius (in km) in the fields above the map, or drag the pin to your desired center point and then set the radius. This will generate a circular region around the pin. - **Purpose**: This polygon is used to: - Define where wardriving activities in your region can occur. - Determine if a user is "In Zone" for authentication purposes. From c521371c8f73fcd7579bf2cd05307689e743ce47 Mon Sep 17 00:00:00 2001 From: Garrisonsan <50163244+Garrisonsan@users.noreply.github.com> Date: Sat, 13 Jun 2026 13:49:18 -0500 Subject: [PATCH 4/4] Update onboarding.md Fix typo in section warning users about MQTT verification timeout --- docs/onboarding.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/onboarding.md b/docs/onboarding.md index 8009738..e7a44c7 100755 --- a/docs/onboarding.md +++ b/docs/onboarding.md @@ -78,8 +78,8 @@ Once you submit the form: If you associated your Discord account during the onboarding process, you will receive automatic messages from MeshMapper with onboarding status. -!!! info "Request Deletion" - Pending onboarding requests that have not passed MQTT verification in 3 days will automatically be deleted. +> [!WARNING] +> Pending onboarding requests that have not passed MQTT verification in 3 days will automatically be deleted. ## Legacy Data