Files
khadhroony-bot3/kb-config
2026-07-24 22:01:07 +02:00
..
2026-07-24 22:01:07 +02:00
2026-07-24 22:01:07 +02:00
2026-07-24 22:01:07 +02:00

kb-config

Ce crate définit le contrat de configuration commun du workspace.

Rôle dans l'écosystème

kb-config charge, valide et sérialise un fichier JSON contenant plusieurs profils. Un seul profil est actif à l'exécution grâce au champ active_profile.

Le crate fournit les structures typées runtime pour :

  • l'application et l'environnement ;
  • les sorties de logs console, fichier humain, fichier JSON et fichier erreurs ;
  • les filtres de targets tracing ;
  • les stores PostgreSQL et SQLite ;
  • les endpoints HTTP JSON-RPC et WebSocket Solana ;
  • les rôles et limites par endpoint ;
  • les listeners Solana standards ;
  • le wallet temporaire géré par profil ;
  • les permissions d'envoi localnet/devnet/testnet/mainnet ;
  • les plafonds de dépense, frais, priorité et fraîcheur du blockhash ;
  • les pages de démonstration Tauri.

Wallet temporaire

Le profil local_devnet active un wallet persistant de laboratoire sous :

wallets/temporary/local_devnet/local-devnet-operator.json

Les profils mainnet conservent temporary_wallet_enabled = false. La validation typée refuse un wallet temporaire actif sur mainnet-beta, une persistance sans activation et les alias pouvant produire un chemin arbitraire.

Exécution

La configuration sépare :

  • le dry-run par défaut ;
  • l'obligation de simulation ;
  • la confirmation opérateur ;
  • les plafonds de dépense localnet, devnet, testnet et mainnet ;
  • le plafond de frais ;
  • le plafond de prix par compute unit ;
  • l'âge maximal du recent blockhash.

Un cluster dont l'envoi est activé doit disposer d'un plafond de dépense positif. Toute dépense configurée exige la simulation et toute dépense mainnet exige la confirmation opérateur. Les paramètres de confirmation sont bornés et le plafond dairdrop Devnet est interdit dans les profils dun autre cluster.

Validation

La validation se fait en deux étapes :

  1. validation JSON brute via config/schema.config.json et jsonschema ;
  2. validation typée après désérialisation Rust.

Secrets et placeholders

Le fichier versionné doit rester sans secret. Les placeholders restent directement dans les URLs. Les keypairs générés par kb_wallet vivent hors du fichier de configuration et sous un répertoire ignoré par Git.

Exports TS-rs

Les structures exposées à Tauri utilisent TS avec un chemin export_to explicite. Les fichiers générés servent uniquement au partage des types Rust/TypeScript et ne remplacent pas le schéma JSON runtime.

cargo test export_bindings -p kb-config
cargo test -p kb-config settings::tests::