Ga naar inhoud

Authenticatie

SenseCraft CLI authenticeert met één toegangssleutel. Eén sleutel dekt SenseCraft Data, SenseCraft AI en CodeCraft Hub.

Kies een van beide autorisatiemethodes en controleer daarna het actieve profiel:

MethodeHoe het werktKies het voor
1. Autorisatie in de browser — auth initMeld je aan en keur toegang goed in je browser, kies of maak daarna een sleutelEerste installatie, ook bij instellen met een AI-agent
2. Een toegangssleutel importeren — auth addMaak of zoek een sleutel in het accountcentrum en importeer hem in de CLIEen specifieke sleutel hergebruiken, scripts of CI

Beide methodes slaan een actief toegangssleutelprofiel op de machine op waar de CLI draait. Latere commando’s hergebruiken dat profiel.

De CLI maakt geen accounts aan. Om te authenticeren heb je een bestaand Seeed-account nodig op de site die je gebruikt:

De site wordt per profiel gekozen en in het configuratiebestand opgeslagen. Een sleutel die op de ene site is aangemaakt, werkt niet op de andere — een Global-sleutel met een China-profiel is de klassieke oorzaak van een ongeldige-sleutelfout.

Gebruik auth init om je via je browser aan te melden en een toegangssleutel te kiezen of aan te maken zonder het secret te kopiëren.

De huidige CLI ondersteunt autorisatie in afzonderlijke commando’s. Elke stap print JSON en stopt, zodat de agent de installatie zonder interactieve terminal kan afhandelen. Werk bij naar CLI 0.4.3 voor de skill-instructies die hier worden beschreven.

  1. Controleer het huidige profiel met sensecraft-cli auth info. Hergebruik de verwachte site en organisatie als er al inloggegevens zijn geconfigureerd.

  2. Start de autorisatie:

    bash
    sensecraft-cli auth init --site Global --no-wait

    De agent bewaart de teruggegeven device_code, toont je verification_url en wacht tot je je aanmeldt en toegang goedkeurt in je browser. Laat de agent weten wanneer je hebt goedgekeurd; hij hoort de link te tonen vóór hij gaat pollen.

  3. Lees de beschikbare sleutels na goedkeuring in de browser:

    bash
    sensecraft-cli auth init --device-code <device_code>

    Dit geeft het account, de organisatie en de beschikbare Key ID’s, labels en rechten terug. Secrets van toegangssleutels worden niet geprint.

  4. Sla de gekozen sleutel op, of maak een sleutel met label aan met de rechten die de taak vereist:

    bash
    sensecraft-cli auth init --device-code <device_code> --key-id <access_id>

    Om in plaats daarvan een nieuwe sleutel aan te maken:

    bash
    sensecraft-cli auth init --device-code <device_code> --label <name> --access-level read-write

    --access-level accepteert read-write en only-read. De agent vraagt in de chat naar onopgeloste keuzes rond account of rechten en laat de CLI het secret lokaal opslaan.

  5. Controleer het opgeslagen profiel met sensecraft-cli auth info voordat je verdergaat met cloudcommando’s.

Gebruik je de CLI rechtstreeks in een interactieve terminal, start dan de wizard:

bash
sensecraft-cli auth init
StapWat er gebeurt
1Kies de site — Global (International) of China
2Vraag een device-code aan — de CLI haalt hem op bij het gebruikerscentrum
3Keur goed in de browser — het print een link met de eenmalige code er al in, plus de code op een eigen regel
4Wacht — het pollt en gaat vanzelf verder zodra je goedkeurt
5Kies een sleutel — het toont de toegangssleutels van je account; kies er een, of maak een nieuwe met een label en een niveau lezen/schrijven; het profiel wordt als actief opgeslagen

De terminal ziet er zo uit:

Plain Text
[3/5] Complete authorization in the browser
Copy the link below into your browser and authorize with the primary account:
https://account.seeed.cc/device?user_code=ABCD-2345
Verification code: ABCD-2345
The CLI will continue automatically after you complete browser authorization.
  • De link is overdraagbaar. Open hem op elk apparaat met een browser. Rond de resterende CLI-stappen af op de machine waar de autorisatie begon.
  • Alleen de wizard heeft een interactieve terminal nodig. Agents gebruiken --no-wait en daarna --device-code. Laat de wizard draaien als je voor de interactieve flow hebt gekozen.
  • Beide browserflows kunnen een sleutel aanmaken. Een apart bezoek aan het accountcentrum is optioneel; Methode 2 behandelt het importeren van sleutels.
  • De code verloopt (een paar minuten; de levensduur komt van de accountservice). Ben je te langzaam, dan stopt de CLI met context deadline exceeded en wordt er niets opgeslagen — voer hem opnieuw uit voor een nieuwe code.
  • --sandbox simuleert de hele flow zonder netwerkverzoeken en schrijft soms toch een gesimuleerde configuratie — wijs SENSECRAFT_CONFIG_FILE naar een wegwerpbestand als dat uitmaakt.

Gebruik auth add om een specifieke toegangssleutel te importeren. Deze methode begint in het accountcentrum en controleert de sleutel via OpenAPI voordat hij hem opslaat.

Toegangssleutels worden aangemaakt en beheerd in het Seeed-accountcentrum, onder Access Keys. Open de pagina van je site:

Access-keys-pagina in het Seeed-accountcentrum, met de knop Create key gemarkeerd

De Access-keys-pagina voor de gekozen site (demogegevens). Kies Create key.

Meld je aan met het hoofdaccount — subaccounts kunnen geen toegangssleutels bekijken of beheren; de pagina toont dan een rechtenwaarschuwing in plaats van de lijst. Gebruik een bestaande sleutel, of maak er een:

  1. Kies Create key.
  2. Geef hem een label dat je later herkent (optioneel, maximaal 64 tekens; bijv. laptop-cli).
  3. Kies een permission:
    • Read — apparaten tonen, telemetrie lezen, apps en modellen doorzoeken. Genoeg voor monitoring en alleen-lezen agentworkflows.
    • Write — alles wat Read toestaat, plus aanmaken, bijwerken, publiceren, verwijderen, uploaden, deployen en koppelen.
  4. Kopieer beide waarden uit de rij van de nieuwe sleutel:
    • Access ID — de publieke identificatie; de CLI noemt die de Key ID (--key-id).
    • Access Key — het secret (--access-key). Toon het met het oogicoon en kopieer het.

Dialoog Create Access Key met de velden label en permission

Geef de sleutel een label en kies Read of Write.

Access ID en Access Key in een sleutelrij

Kopieer de Access ID; toon de Access Key en kopieer hem.

De permission in het aanmaakdialoogvenster staat standaard op Write; kies Read als de workflow alleen leest. Een sleutel met Read-rechten authenticeert prima, maar elk schrijfcommando faalt met een rechtenfout — dat is het niveau van de sleutel, geen bug in de CLI.

Het secret blijft op deze pagina beschikbaar (tonen en kopiëren), dus behandel het als een wachtwoord en niet als iets wat je maar één keer ziet. Je kunt het label of de permission wijzigen met Edit, en de sleutel Disable geven als hij moet stoppen met werken. Er is op deze pagina geen verwijderknop; Disable is de intrekknop, en Enable draait dat terug.

Importeer de sleutel in de CLI:

bash
sensecraft-cli auth add \
--key-id <Access ID> \
--access-key <Access Key> \
--site Global

--site accepteert Global (standaard) en China. Kies de site die de sleutel heeft uitgegeven: account.seeed.cc → --site Global, account.seeed.cn → --site China. De verificatie roept de OpenAPI van die site aan, dus een sleutel van de andere site faalt.

In een interactieve terminal wordt elke ontbrekende waarde gevraagd in plaats van te falen. De site-vraag verschijnt alleen als er ook om een sleutelwaarde is gevraagd — geef je zowel --key-id als --access-key maar laat je --site weg, dan gebruikt de CLI stilzwijgend Global. Geef --site expliciet mee als het ertoe doet.

Plain Text
Key ID: K1234567890
Access Key: <paste the Access Key>
Select the SenseCAP site to connect to
1) Global (International)
2) China (China site)
Enter number [1]:

De prompt echoot wat je typt; voer hem uit in een private terminal. De vorm met --access-key is ook zichtbaar in je shellgeschiedenis en in proceslijsten, dus plak geen sleutel in gedeelde logs, screenshots of transcripten van je agent.

De CLI controleert de sleutel met een view_organization-aanroep, bepaalt je organisatie-ID, slaat het profiel op en maakt het actief:

Plain Text
Verifying Access Key against OpenAPI ...
✓ Access Key verified
Site: Global
Organization ID: 12345
Key ID: K1234567890
✓ Access config saved and set as active
Config file: ~/.config/sensecraft-cli/sensecraft.json

auth add importeert alleen een bestaande sleutel — hij maakt, roteert of verwijdert er nooit een. Bij een mislukte verificatie wordt er niets naar het configuratiebestand geschreven.

Controleer na beide methodes het actieve profiel met:

bash
sensecraft-cli auth info

Print (leesbaar voor mensen, geen JSON) het gebruikte pad van het configuratiebestand, plus de site, het organisatie-ID, de actieve Access ID (geprint als Key ID) en het tijdstip van aanmaken. Het secret wordt nooit geprint. Is er nog niets geconfigureerd, dan print het No profiles configured yet. en stelt het auth init voor. Dit commando leest lokale configuratie; het doet geen API-verzoek om de opgeslagen sleutel te valideren.

Voer dit uit wanneer je niet zeker weet op welke omgeving een commando terechtkomt — zie ook Configuratie.

Het configuratiebestand kan meerdere toegangssleutelprofielen bevatten (zie Configuratie voor het schema van het bestand). Eén pointer bepaalt welk profiel actief is:

  • use_api — de actieve Access ID

Elke geslaagde auth add / auth init schrijft zijn profiel en zet het actief. Om terug te wisselen naar een eerder profiel voer je auth add opnieuw uit voor die sleutel/site (hij verifieert en activeert het bestaande profiel opnieuw), of pas je use_api rechtstreeks in het configuratiebestand aan. Er is bewust geen terugvaloptie waarbij “de eerste vermelding wint” — een niet-ingestelde pointer is een fout, geen gok.

Er is geen auth remove-commando — inloggegevens verwijderen is een lokale bestandsbewerking, en dat met opzet.

Open de Access Keys-pagina en Disable de sleutel. API-aanroepen die hem gebruiken falen tot je hem weer Enable geeft. Deactiveren is omkeerbaar en de sleutel blijft in de lijst staan. Wil je het inloggegeven overal ongeldig maken waar het gebruikt wordt, dan is dit de stap — een lokaal profiel verwijderen zorgt er alleen voor dat die ene machine hem vergeet.

Verwijder de configuratiemap (de locatie hangt af van hoe je hebt geïnstalleerd; zie Configuratie):

bash
rm -rf ~/.config/sensecraft-cli
# Windows: Remove-Item -Recurse "$env:APPDATA\sensecraft-cli"

Dit wist alle toegangssleutels, tokens en profielpointers die op die machine zijn opgeslagen.

Open sensecraft.json en verwijder de vermelding uit app_config_list. Heb je het profiel verwijderd dat actief was, wijs use_api dan naar een overgebleven vermelding, of maak het leeg en voer auth add / auth init opnieuw uit. Houd de rechten van het bestand op 0600 — de CLI schrijft het atomair met die rechten.

  • Het configuratiebestand wordt met rechten 0600 geschreven via een atomische tijdelijke-bestand-en-hernoem-stap, zodat een gedeeltelijke schrijfactie het nooit beschadigt. Het secret staat als platte tekst in dat bestand — bescherm het bestand, niet alleen de sleutel.
  • Commit sensecraft.json nooit; houd je een kopie in een repo voor CI, beperk de sleutel dan tot wat de pipeline echt nodig heeft (alleen-lezen waar mogelijk).
  • Een sleutel met Read-rechten laat elk schrijfcommando falen met een rechtenfout — dat is het niveau van de sleutel, geen bug in de CLI.
  • Tijdens het instellen met een AI-agent start de agent auth init --no-wait en wacht hij op je goedkeuring in de browser. Houd wachtwoorden, tokens en ruwe toegangssleutels buiten de chat en buiten de logs van de agent; zie Bevestigingen en veiligheid.

De openbare build van @seeed-studio/sensecraft-cli ondersteunt zowel auth init (aanbevolen) als auth add voor één toegangssleutel, met de sites Global en China. Toegangssleutels verlopen niet en worden nooit vernieuwd, dus er is geen auth refresh-commando en geen --kind-flag. Onthoud dat de China-site alleen SenseCraft Data is.