Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Schemat ustawień, profile i polityka hosta (PROVISIONAL)

BASICRUNNABLE_LOCALKretConfig

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.

Edycja i zapisane wyniki

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.

Pobierz źródła JSON

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.

  1. kconfig "1.0"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. Pusta linia oddziela fragmenty źródła.
  3. // Polityka hosta: ograniczenia, których żaden profil ani użytkownik nie może przekroczyć.Komentarz autora; nie jest wykonywany.
  4. policy {Początek nazwanego bloku; jego pola odczytaj w powiązanej referencji.
  5. lock telemetry.enabled falseOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. max fan.target 90%Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. }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.

Na co uważać

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.

  1. checkkret check . --jsonKatalog: project · Oczekiwany kod wyjścia: 0
  2. show-defaultkret config show .Katalog: project · Oczekiwany kod wyjścia: 0
  3. show-gamingkret config show . --profile gamingKatalog: project · Oczekiwany kod wyjścia: 0
  4. run-gamingkret 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.

  1. # EXPECTED_OUTPUT — KRETCONFIG-B01-SchemaAndProfilesOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. # 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.
  3. # Actual output of the run. Paths replaced by placeholders.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. Pusta linia oddziela fragmenty źródła.
  5. ### 1. check (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. > kret check . --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. "format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  9. "project": "<project>",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  10. "succeeded": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  11. "plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  12. "id": "LOCAL-KPL-CFB2SHWS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  13. "name": "ConfigProfiles",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  14. "version": "1.0.0",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  15. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  16. "database": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  17. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  18. "permissions": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  19. "required": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  20. "logs.own.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  21. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  22. "optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  23. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  24. "handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  25. "lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  26. "start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  27. "shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  28. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  29. "events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  30. "commands": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  31. "settings.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  32. "settings.secret"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  33. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  34. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  35. "diagnostics": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  36. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  37. Pusta linia oddziela fragmenty źródła.
  38. ### 2. show-default (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  39. > kret config show .Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  40. profil: defaultOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  41. api.token = (sekret w Vault) [project:default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  42. cache.size = 16MB [default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  43. fan.target = 40% [default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  44. mode = eco [default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  45. refresh.interval = 10s [project:default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  46. telemetry.enabled = false [policy]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  47. Pusta linia oddziela fragmenty źródła.
  48. ### 3. show-gaming (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  49. > kret config show . --profile gamingOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  50. profil: gamingOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  51. api.token = (sekret w Vault) [project:default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  52. cache.size = 16MB [default]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  53. fan.target = 80% [project:gaming]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  54. mode = performance [project:gaming]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  55. refresh.interval = 2s [project:gaming]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  56. telemetry.enabled = false [policy]Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  57. Pusta linia oddziela fragmenty źródła.
  58. ### 4. run-gaming (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  59. > 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.
  60. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  61. "broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  62. "pid": 13616,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  63. "startupMs": 44.5545,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  64. "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  65. "allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  66. "memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  67. "managedBytes": 1193392,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  68. "allocatedBytes": 1190752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  69. "workingSetBytes": 32874496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  70. "privateBytes": 10375168,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  71. "peakWorkingSetBytes": 32874496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  72. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  73. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  74. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  75. "brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  76. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  77. "managedBytes": 1557096,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  78. "allocatedBytes": 1553976,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  79. "workingSetBytes": 39387136,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  80. "privateBytes": 13963264,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  81. "peakWorkingSetBytes": 39419904,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  82. "cpuMs": 171.875Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  83. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  84. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  85. "plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  86. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  87. "package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  88. "admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  89. "startMs": 156.9659,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  90. "subject": "LOCAL-KPL-CFB2SHWS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  91. "instance": "01a19725-8cb8-7822-93cf-95a8a2341372",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  92. "pid": 15304,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  93. "jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  94. "isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  95. "level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  96. "restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  97. "lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  98. "appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  99. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  100. "limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  101. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  102. "scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  103. "processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  104. "cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  105. "maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  106. "clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  107. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  108. "calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  109. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  110. "operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  111. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  112. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  113. "type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  114. "value": "tryb performance, od\u015Bwie\u017Canie 2000 ms, wentylator 80.0%, telemetria false",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  115. "brokerMs": 20.0933,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  116. "vmMs": 16.8116,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  117. "instructions": 29,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  118. "hostCalls": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  119. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  120. "managedBytes": 784776,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  121. "allocatedBytes": 782592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  122. "workingSetBytes": 32423936,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  123. "privateBytes": 11284480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  124. "peakWorkingSetBytes": 32542720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  125. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  126. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  127. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  128. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  129. "operation": "on settings.secret",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  130. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  131. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  132. "type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  133. "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.
  134. "brokerMs": 2.496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  135. "vmMs": 1.496,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  136. "instructions": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  137. "hostCalls": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  138. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  139. "managedBytes": 793000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  140. "allocatedBytes": 790792,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  141. "workingSetBytes": 32522240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  142. "privateBytes": 11284480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  143. "peakWorkingSetBytes": 32542720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  144. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  145. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  146. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  147. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  148. "operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  149. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  150. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  151. "type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  152. "value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  153. "brokerMs": 0.65,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  154. "vmMs": 0.0011,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  155. "instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  156. "hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  157. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  158. "managedBytes": 806808,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  159. "allocatedBytes": 804552,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  160. "workingSetBytes": 32534528,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  161. "privateBytes": 11350016,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  162. "peakWorkingSetBytes": 32542720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  163. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  164. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  165. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  166. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  167. "processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  168. "workingSetBytes": 32526336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  169. "privateBytes": 11284480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  170. "peakWorkingSetBytes": 32542720,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  171. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  172. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  173. "summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  174. "exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  175. "killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  176. "hostCalls": 6,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  177. "denials": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  178. "peakCommitBytes": 12165120,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  179. "log": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  180. "[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.
  181. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  182. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  183. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  184. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  185. "brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  186. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  187. "managedBytes": 593208,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  188. "allocatedBytes": 1553976,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  189. "workingSetBytes": 40202240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  190. "privateBytes": 14749696,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  191. "peakWorkingSetBytes": 40202240,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  192. "cpuMs": 171.875Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  193. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  194. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  195. "audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  196. "entries": 15,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  197. "denials": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  198. "grantsIssued": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  199. "denied": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  200. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  201. "event": "config.secret.denied",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  202. "subject": "LOCAL-KPL-CFB2SHWS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  203. "operation": "config.getString",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  204. "permission": "",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  205. "code": "KCS-CFG-0007"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  206. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  207. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  208. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  209. "exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  210. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  211. Pusta linia oddziela fragmenty źródła.
  212. 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.

  1. 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 3BF463915DFC4C169949CAC0AE4357B1188B36F20164DF2993D841B2CB6AC647

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-B01-SchemaAndProfiles — Schemat ustawień, profile i polityka hosta (PROVISIONAL)

KRETCONFIG-B01-SchemaAndProfiles — Schemat ustawień, profile i polityka hosta (PROVISIONAL)

🇬🇧 English version below.
PoleWartość
TechnologiaKretConfig
PoziomBASIC
KlasyfikacjaRUNNABLE_LOCAL — Uruchamialny lokalnie (SDK, izolowany proces pluginu)
PlaygroundLOCAL_EXECUTE — lokalnie: wykonanie w KretStudio / SDK (publicznie: tylko statycznie)
SDK1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany)
Wynik testuTEST_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.

  1. kret check . --json — walidacja
  2. kret config show . — warstwy złożone dla profilu default
  3. kret config show . --profile gaming — profil pochodny gaming
  4. kret 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).

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

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