Aller au contenu

L'outil en ligne de commande

kewos est le couteau de l’exploitant. Le parcours d’installation en montre six ; il y en a vingt-huit. Voici les autres, rangés par la question qu’on se pose, pas par ordre alphabétique.

Toutes prennent l’URL de la base concernée (--database-url, ou --master-url pour celles qui parlent au registre des clients). Toutes se contentent d’écrire ce qu’elles font.

Mettre en service et mettre à jour

CommandeCe qu’elle fait
kewos initAmorçage local : base maître, client de développement, migrations, configuration. Idempotent.
kewos reconcileMet tous les clients au niveau du code. La dernière étape de chaque déploiement.
kewos migrateLe détail des migrations : plan, génération, application.
kewos upgrade plan / apply / rollbackL’installation, la montée de version et le retour arrière d’un module.
kewos module / kewos templateSigner, vérifier et installer un paquet .kws (module) ou .kwstpl (gabarit).

upgrade rollback est celle qu’on cherche à trois heures du matin : elle ramène un module à sa version précédente.

Faire tourner l’instance

CommandeCe qu’elle fait
kewos workerDraine la file de jobs. Obligatoire : sans elle, les envois s’empilent en silence.
kewos cron list / enable / disable / runLe registre des tâches planifiées.
kewos backupSauvegarde et restauration d’un client.
kewos cache flushInvalide le cache Redis, par portée.
kewos search status / reindex / reindex-allL’index de recherche.
$ kewos cron list --database-url ...
NAME EXPRESSION STATE NEXT FIRE LAST FIRE
appointment.expire_pending */15 * * * * enabled 2026-09-06 21:15:00+00:00 2026-09-06 21:00:00+00:00
backup.nightly 0 1 * * * enabled 2026-09-07 01:00:00+00:00 -

La colonne LAST FIRE à - sur backup.nightly se lit d’un coup d’œil : cette tâche n’a jamais tourné. C’est le genre de silence qu’on ne voit pas autrement.

$ kewos search status --database-url ...
library_title 8
library_member 4
pipeline_lead 4

Un modèle absent de cette liste n’est pas cherchable, quoi qu’en dise l’écran de recherche.

Les clients

CommandeCe qu’elle fait
kewos tenant create / list / drop / restoreLe registre des clients. Voir Héberger plusieurs clients.
kewos domain add / list / remove / verifyQuel nom de domaine mène à quel client, et pour quel usage.
kewos licenseInspecter et installer une licence signée.
kewos meteringCalibrer le modèle de coût. Voir Compter ce qu’un client consomme.

kewos domain verify répond à « pourquoi ce client tombe sur la mauvaise instance » sans avoir à lire une configuration de proxy.

Regarder ce qui s’est passé

CommandeCe qu’elle fait
kewos audit list / verify / purgeLe journal d’audit, sa vérification de chaîne, et sa purge au-delà de la rétention.
kewos sequence list / auditL’état des numérotations légales.
kewos config flags staleLes indicateurs de fonctionnalité oubliés au-delà de l’horizon.
$ kewos audit list --database-url ... --limit 3
ID TIMESTAMP ACTION USER MODEL RECORD
246 2026-09-06 20:55:20+00:00 update 1 kws_builder_module reliure
245 2026-09-06 20:55:01+00:00 create 1 reliure_chantier 1
$ kewos audit verify --database-url ...
rows: 244
head_hash: 1c4789d6cedb867b...
tail_hash: f0dbf16c39feca2f...

verify est la commande qui compte : le journal est chaîné, donc une ligne modifiée ou supprimée après coup casse la chaîne et se voit. Un journal d’audit qu’on ne peut pas vérifier n’est qu’un fichier de texte.

kewos sequence list répond à la question comptable « où en est la numérotation des factures », et sequence audit sort l’état complet d’une numérotation quand un trou est suspecté.

Écrire et essayer

CommandeCe qu’elle fait
kewos km check / fmt / convert / show / completeLe format .km : vérifier, mettre en forme, convertir, expliquer.
kewos demo loadCharge les données de démonstration de chaque module (développement seulement).
kewos shellUn REPL Python avec kewos déjà importé.
kewos testLa suite de tests.
kewos access grant / revoke / groupsDonner ou retirer un groupe à un utilisateur, en dépannage.
kewos currency fetch-ratesRécupère les taux de change du jour.
kewos push generate-keysUne paire de clés VAPID prête à coller dans l’environnement.

km check est un vérificateur, pas un analyseur syntaxique poli : il donne la ligne et pointe.

$ kewos km check bibliotheque.km
line 72: unknown view kind 'gallery'
view library_title gallery {
^

Ici, la galerie n’est pas un genre de vue qu’on déclare : elle apparaît parce qu’un modèle nomme son image_field. Le refus arrive avant l’installation, avec l’endroit exact, plutôt que trois couches plus bas au premier chargement.