KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Dziedziczenie i błędy konfiguracji
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.
kconfig "1.0"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.profile default {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.api.token "to-nie-powinno-tu-byc"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.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 / polecenie | Opis |
|---|---|
kret config show <projekt> [--profile nazwa] | konfiguracja po złożeniu warstw, z pochodzeniem |
kret run … --profile nazwa | uruchomienie z profilem |
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
| Element | Stan w KretConfig |
|---|---|
| Struktura pliku | kconfig "1.0" + jeden blok schema, bloki profile albo blok policy (tylko plik polityki hosta). |
| Typy | Bool Int64 Float64 String Duration Size Percentage Temperature; jednostki obowiązkowe (ms s min h, B KB MB GB, %, C). |
| Klucze | czł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.
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):
kret check inline-secret --json— oczekiwany błąd — w wyniku:KCS-CFG-0007kret check out-of-range --json— oczekiwany błąd — w wyniku:KCS-CFG-0005kret check policy-in-project --json— oczekiwany błąd — w wyniku:KCS-CFG-0203
Wynik tej rundy: PASS — zob. EXPECTED_OUTPUT.txt.
Ć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.
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 →