Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Dziedziczenie i błędy konfiguracji

INTERMEDIATE30 min
Postęp nauki 0 / 3
Zaloguj się na konto użytkownika, aby zachować postęp.

Czego się nauczysz

  • Prześledź źródła i wyjaśnij opisany kontrakt.
  • W ConfigErrors znajdź błędny typ i niedozwoloną wartość. Oddziel walidację od zastosowania konfiguracji.
Wymagania wstępne
  • Ukończ Podstawy i wcześniejszy poziom tej ścieżki.

Wyjaśnienie krok po kroku

Warstwy domyślne, użytkownika, projektu i modułu nie mogą nadpisać polityki hosta. hotReload dotyczy oznaczonych ustawień; nie zakładaj, że każda zmiana zacznie działać w trakcie uruchomienia. Kontrakt pozostaje PROVISIONAL_VERSIONED.

Praca z kodem źródłowym

Błędy konfiguracji: sekret wprost, zakres, polityka w projekcie

Trzy warianty odrzucane przez walidator KretConfig: sekret wpisany wprost (`KCS-CFG-0007`), wartość poza zakresem (`KCS-CFG-0005`) i blok `policy` w pliku projektu (`KCS-CFG-0203`).

kconfig "1.0"
profile default {
    api.token "to-nie-powinno-tu-byc"
}

Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. kconfig "1.0"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. profile default {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  3. api.token "to-nie-powinno-tu-byc"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  5. Pusta linia oddziela fragmenty źródła.

Oczekiwany wynik: Trzy razy kod 1 z odpowiednim kodem `KCS-CFG-…`.

Typowy błąd: Oczekiwanie, że plik projektu może zaostrzyć lub poluzować politykę hosta — tylko `policy.kconfig` hosta ustala ograniczenia.

Instrukcja, wersje i zapisane wyniki →

Materiały źródłowe do tego tematu

Przeczytaj powiązane rozdziały. Kod i kontrakty zachowano z importu; historia źródeł jest dostępna przy każdym rozdziale.

KretConfig — API / CLI

KretConfig — API / CLI

Polski

API / polecenieOpis
kret config show <projekt> [--profile nazwa]konfiguracja po złożeniu warstw, z pochodzeniem
kret run … --profile nazwauruchomienie z profilem
Otwórz cały rozdział ze źródłem →
KretConfig — specyfikacja (zakres kontraktu 1.0)

KretConfig — specyfikacja (zakres kontraktu 1.0)

Status 1.0: `PROVISIONAL_VERSIONED` — zdefiniowane i przetestowane, za mało dowodów na stabilne 1.0; własna ścieżka rozwoju. Gramatyka/wersja: kconfig-1.0. Status języka nie nadaje uprawnień KCS ani prawa do działania w Production.

Źródła normatywne (kopie w Sources/, kolejność pierwszeństwa: decyzje właściciela → zamrożony kontrakt → kod SDK → testy):

  • LANGUAGE_FREEZE_1_0/12_LANGUAGE_COMPATIBILITY_MATRIX.md
  • SDK 04_Languages/KretConfig/SPEC.md

Elementy języka

ElementStan w KretConfig
Struktura plikukconfig "1.0" + jeden blok schema, bloki profile albo blok policy (tylko plik polityki hosta).
TypyBool Int64 Float64 String Duration Size Percentage Temperature; jednostki obowiązkowe (ms s min h, B KB MB GB, %, C).
Kluczeczłony [a-z][a-z0-9_]* rozdzielone kropkami; limity 2000 ustawień, 64 profile w pliku.
Komentarze//.

Zakres poza kontraktem / ograniczenia

  • sekrety wpisane wprost (KCS-CFG-0007)
  • ustawienia typu lista/rekord (NOT_SUPPORTED)
  • Vault poza Windows
  • traktowanie jako FROZEN — status PROVISIONAL
  • PROVISIONAL_VERSIONED: zmiany w ramach własnej ścieżki MINOR, wpis do rejestru wydań.
  • Układ katalogu Config/ — PROVISIONAL.
  • Brak rotacji/wersjonowania sekretów, Vault tylko Windows.

Pełna referencja konstrukcji: SYNTAX_REFERENCE.md.

Otwórz cały rozdział ze źródłem →
KretConfig — samouczek INTERMEDIATE

KretConfig — samouczek INTERMEDIATE

Status 1.0: `PROVISIONAL_VERSIONED` — zdefiniowane i przetestowane, za mało dowodów na stabilne 1.0; własna ścieżka rozwoju. Gramatyka/wersja: kconfig-1.0. Status języka nie nadaje uprawnień KCS ani prawa do działania w Production.

Cel: moduły, łączenie funkcji, dane, konfiguracja, komunikacja, obsługa błędów, interfejsy SDK.

Narzędzia: kret = <SDK>\Compiler\kret.exe (SDK 1.0.0-rc.3+kret.local.3), kretui-host = <SDK>\UiHost\kretui-host.exe. {DATA}/{OUT} = nowe, puste katalogi.

1. Błędy konfiguracji: sekret wprost, zakres, polityka w projekcie (KRETCONFIG-I01-ConfigErrors)

Projekt: ../../Examples/INTERMEDIATE_ConfigErrors/ · klasyfikacja VALIDATION_ONLY · Playground LOCAL_VALIDATE

Kroki (katalog roboczy: katalog przykładu):

  1. kret check inline-secret --json — oczekiwany błąd — w wyniku: KCS-CFG-0007
  2. kret check out-of-range --json — oczekiwany błąd — w wyniku: KCS-CFG-0005
  3. kret check policy-in-project --json — oczekiwany błąd — w wyniku: KCS-CFG-0203

Wynik tej rundy: PASS — zob. EXPECTED_OUTPUT.txt.

Otwórz cały rozdział ze źródłem →

Ćwiczenie i sprawdzenie wiedzy

W ConfigErrors znajdź błędny typ i niedozwoloną wartość. Oddziel walidację od zastosowania konfiguracji.

Szkic nie jest wysyłany na serwer i znika po opuszczeniu lekcji. Przed wyjściem możesz go skopiować.
Podpowiedzi
  • KretConfig opisuje ustawienia pluginu: schemat (typy z jednostkami, zakresy, wartości dozwolone, `hotReload`, ustawienia tajne), profile (z dziedziczeniem), warstwy (domyślne → użytkownik → projekt → moduł) i politykę hosta, która zawsze wygrywa. Sekrety wyłącznie przez Vault (Windows DPAPI). Status **PROVISIONAL_VERSIONED** (własna ścieżka rozwoju).
  • Odczytaj ograniczenia i oczekiwane błędy z dostarczonego samouczka; check i run są oddzielnymi krokami.
Omówienie rozwiązania

Odpowiedź oprzyj na pokazanym kodzie i rozdziale źródłowym. Warstwy domyślne, użytkownika, projektu i modułu nie mogą nadpisać polityki hosta. hotReload dotyczy oznaczonych ustawień; nie zakładaj, że każda zmiana zacznie działać w trakcie uruchomienia. Kontrakt pozostaje PROVISIONAL_VERSIONED.

Które podsumowanie jest zgodne z lekcją?

To quiz o opisanym kontrakcie. Nie kompiluje kodu, nie potwierdza wykonania programu i nie przyznaje nagród.

Podsumowanie i następny krok

Warstwy domyślne, użytkownika, projektu i modułu nie mogą nadpisać polityki hosta. hotReload dotyczy oznaczonych ustawień; nie zakładaj, że każda zmiana zacznie działać w trakcie uruchomienia. Kontrakt pozostaje PROVISIONAL_VERSIONED.

Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →

Wybierz, co możemy zapamiętać w tej przeglądarce. Możesz zmienić decyzję w każdej chwili.

Polityka prywatności