Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 13 additions & 2 deletions docs/analyzer/broker-reference.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ task: reference-observer-endpoints
scope: canada-baseline
status: draft
owner: meshcore-canada
last_reviewed: 2026-07-22
review_by: 2026-10-19
last_reviewed: 2026-09-02
review_by: 2026-12-01
difficulty: advanced
estimated_time: 8 minutes
destructive: false
Expand Down Expand Up @@ -50,6 +50,17 @@ Ces valeurs proviennent de la [configuration commune des observateurs](observer-

Si le tableau ne s’affiche pas, ouvrez [observer-config.json](observer-config.json).

## Administrateurs des courtiers

Communiquez avec un administrateur pour demander un accès en lecture seule ou signaler un problème de compte. N’envoyez jamais de mot de passe ni de jeton.

| Administrateur | Contact |
|---|---|
| n30nex | [GitHub : @n30nex](https://github.com/n30nex) |
| Mr. Alderson | [GitHub : @MrAlders0n](https://github.com/MrAlders0n) |
| Ded | [GitHub : @446564](https://github.com/446564) |
| Kranic | [Forum MeshCore : @djkranic](https://forum.meshcore.ca/u/djkranic) |

## Modèles de sujets

```text
Expand Down
15 changes: 13 additions & 2 deletions docs/analyzer/broker-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ task: reference-observer-endpoints
scope: canada-baseline
status: draft
owner: meshcore-canada
last_reviewed: 2026-07-22
review_by: 2026-10-19
last_reviewed: 2026-09-02
review_by: 2026-12-01
difficulty: advanced
estimated_time: 8 minutes
destructive: false
Expand Down Expand Up @@ -49,6 +49,17 @@ These values come from the shared [observer configuration](observer-config.json)

If the table does not load, open [observer-config.json](observer-config.json).

## Broker administrators

Contact an administrator to request read-only access or report an account problem. Never send passwords or tokens.

| Administrator | Contact |
|---|---|
| n30nex | [GitHub: @n30nex](https://github.com/n30nex) |
| Mr. Alderson | [GitHub: @MrAlders0n](https://github.com/MrAlders0n) |
| Ded | [GitHub: @446564](https://github.com/446564) |
| Kranic | [MeshCore forum: @djkranic](https://forum.meshcore.ca/u/djkranic) |

## Topic templates

```text
Expand Down
9 changes: 5 additions & 4 deletions docs/analyzer/data-collection-access.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ task: understand-observer-data
scope: canada-baseline
status: draft
owner: meshcore-canada
last_reviewed: 2026-09-02
last_reviewed: 2026-09-03
review_by: 2026-12-01
difficulty: beginner
estimated_time: 6 minutes
Expand Down Expand Up @@ -72,14 +72,15 @@ et aux personnes autorisées par les administrateurs de l’infrastructure.

## Comptes MQTT en lecture seule

Cet inventaire public répertorie les services qui utilisent un compte en lecture
seule sur les courtiers MQTT de MeshCore Canada. Il indique le service et
l’exploitant, mais jamais le nom d’utilisateur MQTT, le mot de passe ni le jeton.
Cet inventaire public répertorie les services qui disposent d’un accès en lecture
seule aux courtiers MQTT de MeshCore Canada. Il indique le service et
l’exploitant, mais jamais les mots de passe ni les jetons.

| Service | Exploitant | Utilisation |
|---|---|---|
| Beacon (`dev.meshcore.ca`) | Exploitants de MeshCore Canada | Visualisation publique des paquets et vérification des identifiants de répéteur |
| CoreScope (`live.meshcore.ca`) | Exploitants de MeshCore Canada | Outils publics pour les observateurs, les paquets, les nœuds et la carte |
| [Quinte Mesh](https://quintemesh.ca/) | hansimgamr | Services du réseau communautaire de la région de Quinte |

Les administrateurs de l’infrastructure doivent mettre ce tableau à jour chaque
fois qu’ils créent ou retirent un compte en lecture seule. [Signalez une entrée
Expand Down
5 changes: 3 additions & 2 deletions docs/analyzer/data-collection-access.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ task: understand-observer-data
scope: canada-baseline
status: draft
owner: meshcore-canada
last_reviewed: 2026-09-02
last_reviewed: 2026-09-03
review_by: 2026-12-01
difficulty: beginner
estimated_time: 6 minutes
Expand Down Expand Up @@ -62,12 +62,13 @@ MeshCore Canada does not offer general direct broker subscriptions. Direct acces

## Read-only MQTT accounts

This public inventory lists services with a read-only account on the MeshCore Canada brokers. It identifies the service and operator, but never publishes broker usernames, passwords, or tokens.
This public inventory lists services with read-only access to the MeshCore Canada brokers. It identifies the service and operator, but never publishes passwords or tokens.

| Service | Operator | Purpose |
|---|---|---|
| Beacon (`dev.meshcore.ca`) | MeshCore Canada operators | Public packet viewer and repeater ID checks |
| CoreScope (`live.meshcore.ca`) | MeshCore Canada operators | Public observer, packet, node, and map tools |
| [Quinte Mesh](https://quintemesh.ca/) | hansimgamr | Quinte-region community network services |

Infrastructure administrators must update this table whenever they create or remove a read-only account. [Report a missing or outdated entry](https://github.com/MeshCore-ca/MeshCore-Canada/issues/new/choose).

Expand Down
26 changes: 25 additions & 1 deletion tests/content/analyzer-journey.test.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -126,14 +126,38 @@ test("privacy pages state ownership, access, the account inventory, and the unkn
]) {
assert.match(source, new RegExp(phrase, "i"));
}
for (const service of ["Beacon (`dev.meshcore.ca`)", "CoreScope (`live.meshcore.ca`)"]) {
for (const service of [
"Beacon (`dev.meshcore.ca`)",
"CoreScope (`live.meshcore.ca`)",
"[Quinte Mesh](https://quintemesh.ca/)",
]) {
assert.ok(source.includes(service), `English inventory missing ${service}`);
assert.ok(french.includes(service), `French inventory missing ${service}`);
}
assert.ok(source.includes("hansimgamr"), "English inventory missing the Quinte Mesh operator");
assert.ok(french.includes("hansimgamr"), "French inventory missing the Quinte Mesh operator");
assert.match(source, /update this table whenever they create or remove a read-only account/i);
assert.match(french, /mettre ce tableau à jour chaque\s+fois qu’ils créent ou retirent un compte en lecture seule/i);
});

test("broker reference lists every administrator and public contact in both languages", () => {
const english = read("docs/analyzer/broker-reference.md");
const french = read("docs/analyzer/broker-reference.fr.md");
const contacts = [
["n30nex", "https://github.com/n30nex"],
["Mr. Alderson", "https://github.com/MrAlders0n"],
["Ded", "https://github.com/446564"],
["Kranic", "https://forum.meshcore.ca/u/djkranic"],
];

for (const [administrator, contact] of contacts) {
for (const page of [english, french]) {
assert.ok(page.includes(administrator), `missing administrator ${administrator}`);
assert.ok(page.includes(contact), `missing contact ${contact}`);
}
}
});

test("verification distinguishes connectivity from an observed packet", () => {
const source = read("docs/analyzer/verify.md");
assert.match(source, /broker connection proves only/i);
Expand Down