Skip to content

Commit 29c57a1

Browse files
BenGlutclaude
andcommitted
Answer what leaves the bench
Every page in the ecosystem repeats that the cloud is optional and that no account is needed. The page that should back it up had a "Security model" section which said nothing about what is sent or stored — a promise made everywhere and evidenced nowhere. It now states what a device actually transmits, taking the scale as the worked example, and the four things a reader deserves before trusting any of it: identification is local so a lookup never waits on the network; going without an account costs exactly one thing, sync; a signed-in device holds a credential, so sign out and forget the WiFi before passing it on, because a reflash clears neither; and the LAN API is unauthenticated by choice. The Firebase key visible in the sources is named for what it is — a public project identifier, not a leaked secret — since that is the first thing an attentive reader finds and misreads. Sourced from the scale's own CLOUD.md, which stays canonical and is linked rather than restated. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 036f1b9 commit 29c57a1

2 files changed

Lines changed: 95 additions & 1 deletion

File tree

‎docs/concepts/inventory-and-cloud-sync.md‎

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,50 @@ The authoritative field-by-field data model is documented in the
3434
[Firebase integration repo](https://github.com/TigerTag-Project/TigerTag_Firebase_Integration)
3535
(`docs/03-data-model.md`) — the reference for third-party integrators.
3636

37+
## What leaves your bench, and what stays
38+
39+
The ecosystem says everywhere that the cloud is optional. Here is what that
40+
actually means, and what it costs when you say no.
41+
42+
**Identification is local by design.** A device does not ask a server what a tag
43+
is. The brand and material tables live in its own storage and are refreshed from
44+
the **public** [reference repository](https://github.com/TigerTag-Project/TigerTag-RFID-Guide)
45+
at most once a day. So a lookup never waits on the network, and it works with
46+
the internet down.
47+
48+
**Without an account you lose exactly one thing: sync between devices.** A
49+
[TigerScale](../products/tigerscale.md) still weighs, still reads tags, still
50+
identifies brand and material, still serves its own web UI on your LAN. Nothing
51+
about the chip itself needs us — that is the whole point of writing the data
52+
[on the chip](./tigertag-chip.md).
53+
54+
**With an account, here is what a device actually sends.** Taking the scale as
55+
the worked example, on each completed weighing and on a heartbeat it writes,
56+
under your own user document: the spool's tag UIDs, net/gross/container weight,
57+
firmware version, WiFi signal and IP, calibration factor, last-heartbeat time,
58+
battery state, and screen state. Diagnostics and measurements — no more. Every
59+
field is documented in
60+
[the scale's own reference](https://github.com/TigerTag-Project/Tiger-Scale-V3/blob/main/docs/TELEMETRY.md).
61+
62+
**And here is what it stores locally, which matters more.** A signed-in device
63+
holds a refresh token, your user id and your WiFi credentials. It never stores
64+
your password — sign-in exchanges it for tokens. But treat a provisioned device
65+
as **holding a credential**: before you lend, sell or give one away, sign out
66+
*and* forget the WiFi. A plain reflash does not clear either — that storage is
67+
preserved on purpose so a firmware update does not cost you your setup.
68+
69+
**Two deliberate choices worth knowing.** A device's LAN API is
70+
**unauthenticated**: anyone already on your network can read its state and
71+
trigger a tare. That is a simplification for a home network — put it on a guest
72+
VLAN if you do not trust yours. And the Firebase key visible in the source is a
73+
**public project identifier**, not a secret; every Firebase client ships it, and
74+
access control is enforced by server-side rules against the signed-in user, not
75+
by hiding a string.
76+
77+
For the scale, all of this is documented in full in
78+
[`docs/CLOUD.md`](https://github.com/TigerTag-Project/Tiger-Scale-V3/blob/main/docs/CLOUD.md),
79+
which is canonical.
80+
3781
## Sharing model (summary)
3882

3983
- Each user has a public **discovery code** (`XXX-XXX`) for O(1) friend lookup.

‎i18n/fr/concepts/inventory-and-cloud-sync.md‎

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
sourceHash: d67e44df11ee69b32eae54fed3cd722e38cba87031c99976c1cee0a879d054c5
2+
sourceHash: 5283f746f604b2bf5956044ddd3e902a6a6aa39e61026868a794fb05bd51458d
33
sourcePath: docs/concepts/inventory-and-cloud-sync.md
44
---
55

@@ -42,6 +42,56 @@ Le modèle de données faisant foi, champ par champ, est documenté dans le
4242
[dépôt d'intégration Firebase](https://github.com/TigerTag-Project/TigerTag_Firebase_Integration)
4343
(`docs/03-data-model.md`) — la référence pour les intégrateurs tiers.
4444

45+
## Ce qui sort de votre établi, et ce qui y reste
46+
47+
L'écosystème répète partout que le cloud est facultatif. Voici ce que cela
48+
signifie concrètement, et ce que cela coûte de dire non.
49+
50+
**L'identification est locale par conception.** Un appareil ne demande pas à un
51+
serveur ce qu'est une puce. Les tables de marques et de matières vivent dans sa
52+
propre mémoire et sont rafraîchies depuis le
53+
[dépôt de référence](https://github.com/TigerTag-Project/TigerTag-RFID-Guide)
54+
**public** au plus une fois par jour. Une lecture n'attend donc jamais le
55+
réseau, et elle fonctionne internet coupé.
56+
57+
**Sans compte, vous perdez exactement une chose : la synchronisation entre
58+
appareils.** Une [TigerScale](../products/tigerscale.md) pèse toujours, lit
59+
toujours les puces, identifie toujours la marque et la matière, et sert
60+
toujours sa propre interface web sur votre réseau local. Rien de ce qui touche
61+
à la puce elle-même n'a besoin de nous — c'est tout l'intérêt d'écrire les
62+
données [sur la puce](./tigertag-chip.md).
63+
64+
**Avec un compte, voici ce qu'un appareil envoie réellement.** En prenant la
65+
balance comme exemple : à chaque pesée terminée et à chaque battement de cœur,
66+
elle écrit, sous votre propre document utilisateur, les UID des puces de la
67+
bobine, les poids net / brut / du contenant, la version du firmware, la
68+
puissance du signal WiFi et l'adresse IP, le facteur de calibration, l'horodatage
69+
du dernier battement, l'état de la batterie et l'état de l'écran. Des mesures et
70+
du diagnostic — rien d'autre. Chaque champ est documenté dans
71+
[la référence de la balance](https://github.com/TigerTag-Project/Tiger-Scale-V3/blob/main/docs/TELEMETRY.md).
72+
73+
**Et voici ce qu'elle stocke localement, ce qui compte davantage.** Un appareil
74+
connecté détient un jeton de rafraîchissement, votre identifiant utilisateur et
75+
vos identifiants WiFi. Il ne stocke jamais votre mot de passe — la connexion
76+
l'échange contre des jetons. Mais considérez un appareil provisionné comme
77+
**détenant un identifiant** : avant de le prêter, de le vendre ou de le donner,
78+
déconnectez-vous *et* oubliez le WiFi. Un simple reflash n'efface ni l'un ni
79+
l'autre — cette mémoire est préservée volontairement, pour qu'une mise à jour du
80+
firmware ne vous coûte pas votre configuration.
81+
82+
**Deux choix délibérés à connaître.** L'API locale d'un appareil n'est **pas
83+
authentifiée** : quiconque est déjà sur votre réseau peut lire son état et
84+
déclencher une tare. C'est une simplification assumée pour un réseau
85+
domestique — placez l'appareil sur un VLAN invité si vous ne faites pas
86+
confiance au vôtre. Et la clé Firebase visible dans les sources est un
87+
**identifiant public de projet**, pas un secret : tous les clients Firebase
88+
l'embarquent, et le contrôle d'accès est appliqué par des règles côté serveur
89+
contre l'utilisateur connecté, pas en cachant une chaîne de caractères.
90+
91+
Pour la balance, tout cela est documenté en détail dans
92+
[`docs/CLOUD.md`](https://github.com/TigerTag-Project/Tiger-Scale-V3/blob/main/docs/CLOUD.md),
93+
qui fait foi.
94+
4595
## Modèle de partage (résumé)
4696

4797
- Chaque utilisateur dispose d'un **code de découverte** public (`XXX-XXX`)

0 commit comments

Comments
 (0)