KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Schemat ustawień, profile i polityka hosta (PROVISIONAL)
Na podstawie przykładu SDK `ConfigProfiles`: `schema.kconfig` (typy z jednostkami, zakresy, `allowed`, `hotReload`, ustawienie tajne), `project.kconfig` (profile `default`, `gaming extends default`, `quiet`), `policy.kconfig` (blokada i górna granica). `kret config show` składa warstwy i pokazuje pochodzenie każdej wartości; KretS czyta ustawienia przez `Kret.Config`, a sekretu **nie** dostaje.
Witryna nie wykonuje kodu ani nie prowadzi walidacji SDK. Wyniki poniżej pochodzą z eksportu określonej wersji i przestają opisywać kod po jego zmianie.
Format tego przykładu nie jest obsługiwany przez edytor Playground. Źródła i instrukcje pozostają dostępne.
Kanoniczne pliki projektu
kconfig "1.0"
// Polityka hosta: ograniczenia, których żaden profil ani użytkownik nie może przekroczyć.
policy {
lock telemetry.enabled false
max fan.target 90%
}
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.Pusta linia oddziela fragmenty źródła.// Polityka hosta: ograniczenia, których żaden profil ani użytkownik nie może przekroczyć.Komentarz autora; nie jest wykonywany.policy {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.lock telemetry.enabled falseOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.max fan.target 90%Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.}Zamknięcie struktury otwartej we wcześniejszych liniach.
Wynik i typowy błąd
`show` podaje wartości z pochodzeniem (`default`, `project:…`, `policy`); `run` zwraca tryb `performance`, a komenda `settings.secret` — opis odmowy zamiast wartości.
Wpisanie wartości sekretu wprost do pliku (`api.token "abc"`) → `KCS-CFG-0007` (przykład KRETCONFIG-I01). Vault działa tylko na Windows (DPAPI).
Wymagania wersji i procedura lokalna
- sdk
- 1.0.0-rc.3+kret.local.3
- sdkInfoReports
- 1.0.0-rc.3
- core
- 1.0.0-test.6.11-draft.1
- os
- Windows 11 x64
- dotnet
- .NET 10 runtime
Polecenia poniżej są instrukcją do samodzielnego wykonania z właściwym lokalnym SDK. DATA/OUT muszą wskazywać nowe katalogi testowe. Nie ma przycisku uruchamiania na serwerze.
- check
kret check . --jsonKatalog: project · Oczekiwany kod wyjścia: 0 - show-default
kret config show .Katalog: project · Oczekiwany kod wyjścia: 0 - show-gaming
kret config show . --profile gamingKatalog: project · Oczekiwany kod wyjścia: 0 - run-gaming
kret run . --policy host-policy.json --data {DATA} --profile gaming --invoke settings.secretKatalog: project · Oczekiwany kod wyjścia: 0
Wyniki zapisane w pakiecie źródłowym
To dowód z eksportu, nie wynik bieżącego wykonania w przeglądarce.
# EXPECTED_OUTPUT — KRETCONFIG-B01-SchemaAndProfiles
# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:23Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.
# Actual output of the run. Paths replaced by placeholders.
### 1. check (exit 0, PASS)
> kret check . --json
{
"format": "kret-diagnostics/1",
"project": "<project>",
"succeeded": true,
"plugin": {
"id": "LOCAL-KPL-CFB2SHWS",
"name": "ConfigProfiles",
"version": "1.0.0",
"profile": "standard",
"database": false
},
"permissions": {
"required": [
"logs.own.write"
],
"optional": []
},
"handlers": {
"lifecycle": [
"start",
"shutdown"
],
"events": [],
"commands": [
"settings.read",
"settings.secret"
]
},
"diagnostics": []
}
### 2. show-default (exit 0, PASS)
> kret config show .
profil: default
api.token = (sekret w Vault) [project:default]
cache.size = 16MB [default]
fan.target = 40% [default]
mode = eco [default]
refresh.interval = 10s [project:default]
telemetry.enabled = false [policy]
### 3. show-gaming (exit 0, PASS)
> kret config show . --profile gaming
profil: gaming
api.token = (sekret w Vault) [project:default]
cache.size = 16MB [default]
fan.target = 80% [project:gaming]
mode = performance [project:gaming]
refresh.interval = 2s [project:gaming]
telemetry.enabled = false [policy]
### 4. run-gaming (exit 0, PASS)
> kret run . --policy host-policy.json --data {DATA} --profile gaming --invoke settings.secret
{
"broker": {
"pid": 13616,
"startupMs": 44.5545,
"pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",
"allowProvisionalRisk": true,
"memoryIdle": {
"managedBytes": 1193392,
"allocatedBytes": 1190752,
"workingSetBytes": 32874496,
"privateBytes": 10375168,
"peakWorkingSetBytes": 32874496,
"cpuMs": 93.75
}
},
"brokerWithPlugins": {
"memory": {
"managedBytes": 1557096,
"allocatedBytes": 1553976,
"workingSetBytes": 39387136,
"privateBytes": 13963264,
"peakWorkingSetBytes": 39419904,
"cpuMs": 171.875
}
},
"plugins": [
{
"package": "<project>\\Build",
"admitted": true,
"startMs": 156.9659,
"subject": "LOCAL-KPL-CFB2SHWS",
"instance": "01a19725-8cb8-7822-93cf-95a8a2341372",
"pid": 15304,
"jobObject": true,
"isolation": {
"level": "Restricted",
"restrictedToken": true,
"lowIntegrity": true,
"appContainer": false
},
"limits": {
"profile": "standard",
"scriptMemoryBytes": 67108864,
"processMemoryBytes": 201326592,
"cpuPercent": 25,
"maxInstructions": 50000000,
"clamped": []
},
"calls": [
{
"operation": "start",
"ok": true,
"status": "Completed",
"type": "String",
"value": "tryb performance, od\u015Bwie\u017Canie 2000 ms, wentylator 80.0%, telemetria false",
"brokerMs": 20.0933,
"vmMs": 16.8116,
"instructions": 29,
"hostCalls": 5,
"pluginReportedMemory": {
"managedBytes": 784776,
"allocatedBytes": 782592,
"workingSetBytes": 32423936,
"privateBytes": 11284480,
"peakWorkingSetBytes": 32542720,
"cpuMs": 93.75
}
},
{
"operation": "on settings.secret",
"ok": true,
"status": "Completed",
"type": "String",
"value": "KCS-CFG-0007: klucz api.token jest tajny \u2014 skrypt nie mo\u017Ce odczyta\u0107 sekretu",
"brokerMs": 2.496,
"vmMs": 1.496,
"instructions": 4,
"hostCalls": 1,
"pluginReportedMemory": {
"managedBytes": 793000,
"allocatedBytes": 790792,
"workingSetBytes": 32522240,
"privateBytes": 11284480,
"peakWorkingSetBytes": 32542720,
"cpuMs": 93.75
}
},
{
"operation": "shutdown",
"ok": true,
"status": "Completed",
"type": "Unit",
"value": null,
"brokerMs": 0.65,
"vmMs": 0.0011,
"instructions": 1,
"hostCalls": 0,
"pluginReportedMemory": {
"managedBytes": 806808,
"allocatedBytes": 804552,
"workingSetBytes": 32534528,
"privateBytes": 11350016,
"peakWorkingSetBytes": 32542720,
"cpuMs": 93.75
}
}
],
"processMemoryMeasuredByBroker": {
"workingSetBytes": 32526336,
"privateBytes": 11284480,
"peakWorkingSetBytes": 32542720,
"cpuMs": 93.75
},
"summary": {
"exitCode": 0,
"killed": false,
"hostCalls": 6,
"denials": 1,
"peakCommitBytes": 12165120,
"log": [
"[info] tryb performance, od\u015Bwie\u017Canie 2000 ms, wentylator 80.0%, telemetria false"
]
}
}
],
"brokerAfterClose": {
"memory": {
"managedBytes": 593208,
"allocatedBytes": 1553976,
"workingSetBytes": 40202240,
"privateBytes": 14749696,
"peakWorkingSetBytes": 40202240,
"cpuMs": 171.875
}
},
"audit": {
"entries": 15,
"denials": 1,
"grantsIssued": 1,
"denied": [
{
"event": "config.secret.denied",
"subject": "LOCAL-KPL-CFB2SHWS",
"operation": "config.getString",
"permission": "",
"code": "KCS-CFG-0007"
}
]
},
"exitCode": 0
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
# EXPECTED_OUTPUT — KRETCONFIG-B01-SchemaAndProfilesOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:23Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.# Actual output of the run. Paths replaced by placeholders.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.Pusta linia oddziela fragmenty źródła.### 1. check (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret check . --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."project": "<project>",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."succeeded": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."id": "LOCAL-KPL-CFB2SHWS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "ConfigProfiles",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."version": "1.0.0",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."database": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."permissions": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."required": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."logs.own.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.],Zamknięcie struktury otwartej we wcześniejszych liniach."events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."commands": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."settings.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."settings.secret"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.]Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."diagnostics": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.### 2. show-default (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret config show .Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.profil: defaultOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.api.token = (sekret w Vault) [project:default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.cache.size = 16MB [default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.fan.target = 40% [default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.mode = eco [default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.refresh.interval = 10s [project:default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.telemetry.enabled = false [policy]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.Pusta linia oddziela fragmenty źródła.### 3. show-gaming (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret config show . --profile gamingOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.profil: gamingOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.api.token = (sekret w Vault) [project:default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.cache.size = 16MB [default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.fan.target = 80% [project:gaming]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.mode = performance [project:gaming]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.refresh.interval = 2s [project:gaming]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.telemetry.enabled = false [policy]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.Pusta linia oddziela fragmenty źródła.### 4. run-gaming (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret run . --policy host-policy.json --data {DATA} --profile gaming --invoke settings.secretOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 13616,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startupMs": 44.5545,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1193392,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1190752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32874496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 10375168,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32874496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1557096,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1553976,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 39387136,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 13963264,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 39419904,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 171.875Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startMs": 156.9659,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."subject": "LOCAL-KPL-CFB2SHWS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instance": "01a19725-8cb8-7822-93cf-95a8a2341372",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 15304,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": "tryb performance, od\u015Bwie\u017Canie 2000 ms, wentylator 80.0%, telemetria false",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 20.0933,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 16.8116,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 29,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 784776,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 782592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32423936,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11284480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32542720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "on settings.secret",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": "KCS-CFG-0007: klucz api.token jest tajny \u2014 skrypt nie mo\u017Ce odczyta\u0107 sekretu",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 2.496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 1.496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 793000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 790792,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32522240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11284480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32542720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 0.65,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 0.0011,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 806808,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 804552,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32534528,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11350016,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32542720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32526336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11284480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32542720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 6,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakCommitBytes": 12165120,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."log": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."[info] tryb performance, od\u015Bwie\u017Canie 2000 ms, wentylator 80.0%, telemetria false"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.]Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 593208,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1553976,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 40202240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 14749696,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 40202240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 171.875Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."entries": 15,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."grantsIssued": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denied": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."event": "config.secret.denied",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."subject": "LOCAL-KPL-CFB2SHWS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."operation": "config.getString",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."permission": "",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-CFG-0007"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.]Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.Pusta linia oddziela fragmenty źródła.
Diagnostyka i raporty testów
null
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
nullOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
Pochodzenie i integralność
KRET_TECH_KRETCONFIG.zip:KretConfig/Examples/BASIC_SchemaAndProfiles/example.json
02_PLAYGROUND/EXAMPLES/KRETCONFIG-B01-SchemaAndProfiles.json
SHA-256 3BF463915DFC4C169949CAC0AE4357B1188B36F20164DF2993D841B2CB6AC647Materiał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-B01-SchemaAndProfiles — Schemat ustawień, profile i polityka hosta (PROVISIONAL)
KRETCONFIG-B01-SchemaAndProfiles — Schemat ustawień, profile i polityka hosta (PROVISIONAL)
🇬🇧 English version below.
| Pole | Wartość |
|---|---|
| Technologia | KretConfig |
| Poziom | BASIC |
| Klasyfikacja | RUNNABLE_LOCAL — Uruchamialny lokalnie (SDK, izolowany proces pluginu) |
| Playground | LOCAL_EXECUTE — lokalnie: wykonanie w KretStudio / SDK (publicznie: tylko statycznie) |
| SDK | 1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany) |
| Wynik testu | TEST_RESULTS.json, rzeczywisty wynik: EXPECTED_OUTPUT.txt |
Co pokazuje
Na podstawie przykładu SDK ConfigProfiles: schema.kconfig (typy z jednostkami, zakresy, allowed, hotReload, ustawienie tajne), project.kconfig (profile default, gaming extends default, quiet), policy.kconfig (blokada i górna granica). kret config show składa warstwy i pokazuje pochodzenie każdej wartości; KretS czyta ustawienia przez Kret.Config, a sekretu nie dostaje.
Pliki
| Plik |
|---|
Config/policy.kconfig |
Config/project.kconfig |
Config/schema.kconfig |
Script/Main.krs |
host-policy.json |
plugin.kretl |
Jak uruchomić
Katalog roboczy: katalog tego przykładu. kret oznacza <SDK>\Compiler\kret.exe, kretui-host — <SDK>\UiHost\kretui-host.exe. {DATA} / {OUT} to nowe, puste katalogi poza projektem. Wymagania: REQUIREMENTS.md.
kret check . --json— walidacjakret config show .— warstwy złożone dla profiludefaultkret config show . --profile gaming— profil pochodnygamingkret run . --policy host-policy.json --data {DATA} --profile gaming --invoke settings.secret— plugin czyta konfigurację; próba odczytu sekretu → odmowa
Oczekiwany wynik
show podaje wartości z pochodzeniem (default, project:…, policy); run zwraca tryb performance, a komenda settings.secret — opis odmowy zamiast wartości.
Najczęstszy błąd
Wpisanie wartości sekretu wprost do pliku (api.token "abc") → KCS-CFG-0007 (przykład KRETCONFIG-I01). Vault działa tylko na Windows (DPAPI).
Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →