KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Naruszenia mapy: warstwy i próba przyznania uprawnień
Wariant `layer-violation/`: moduł warstwy Ui woła moduł warstwy Data mimo `deny Ui -> Data`. Wariant `grant-attempt/`: mapa lokalna próbuje zapisać uprawnienie — `KCS-KRM-0301`.
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
database Mapped {
version = 1
table counters {
name: String primary key
value: Int
}
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
database Mapped {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.version = 1Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.table counters {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.name: String primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.value: IntOdczytaj 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.
Wynik i typowy błąd
Oba sprawdzenia kończą się kodem 1 z diagnostyką KretM/KretS.
Oczekiwanie, że `allow` w mapie lokalnej rozszerzy reguły projektu — mapa lokalna może tylko doprecyzować moduł (`KCS-KRM-0306`).
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.
- layer-violation
kret check layer-violation --jsonKatalog: project · Oczekiwany kod wyjścia: 1 - grant-attempt
kret check grant-attempt --jsonKatalog: project · Oczekiwany kod wyjścia: 1
Wyniki zapisane w pakiecie źródłowym
To dowód z eksportu, nie wynik bieżącego wykonania w przeglądarce.
# EXPECTED_OUTPUT — KRETM-I01-MapViolations
# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:35Z). Ścieżki zastąpione znacznikami <project>, <data>, <out>, <sdk>.
# Actual output of the run. Paths replaced by placeholders.
### 1. layer-violation (exit 1, PASS)
> kret check layer-violation --json
{
"format": "kret-diagnostics/1",
"project": "<project>\\layer-violation",
"succeeded": false,
"plugin": {
"id": "LOCAL-KPL-MXM2RULE",
"name": "MapViolations",
"version": "1.0.0",
"profile": "standard",
"database": true
},
"permissions": {
"required": [
"logs.own.write",
"kretdb.open",
"kretdb.read",
"kretdb.write"
],
"optional": []
},
"handlers": {
"lifecycle": [
"start",
"shutdown"
],
"events": [],
"commands": []
},
"diagnostics": [
{
"file": "<project>\\layer-violation\\Script\\App\\Main.krs",
"line": 4,
"column": 17,
"endLine": 4,
"endColumn": 24,
"severity": "error",
"code": "KCS-KRM-0302",
"message": "modu\u0142 KretS Main (modu\u0142 mapy App) u\u017Cywa modu\u0142u Storage (modu\u0142 mapy Storage), a mapa projektu nie deklaruje \u201Euses Storage\u201D w module App"
}
]
}
### 2. grant-attempt (exit 1, PASS)
> kret check grant-attempt --json
{
"format": "kret-diagnostics/1",
"project": "<project>\\grant-attempt",
"succeeded": false,
"plugin": {
"id": "LOCAL-KPL-MXM2RULE",
"name": "MapViolations",
"version": "1.0.0",
"profile": "standard",
"database": true
},
"permissions": {
"required": [
"logs.own.write",
"kretdb.open",
"kretdb.read",
"kretdb.write"
],
"optional": []
},
"handlers": {
"lifecycle": [
"start",
"shutdown"
],
"events": [],
"commands": []
},
"diagnostics": [
{
"file": "<project>\\grant-attempt\\Script\\Orders\\module.kretm",
"line": 5,
"column": 5,
"endLine": 5,
"endColumn": 16,
"severity": "error",
"code": "KCS-KRM-0301",
"message": "\u201Epermissions\u201D: mapa KretM opisuje struktur\u0119 projektu i nie przyznaje uprawnie\u0144 \u2014 uprawnienia deklaruje wy\u0142\u0105cznie manifest plugin.kretl"
},
{
"file": "<project>\\grant-attempt\\Script\\Orders\\module.kretm",
"line": 5,
"column": 23,
"endLine": 5,
"endColumn": 24,
"severity": "error",
"code": "KCS-KRM-0101",
"message": "nieoczekiwany element \u201E.\u201D"
}
]
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
# EXPECTED_OUTPUT — KRETM-I01-MapViolationsOdczytaj 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:35Z). Ś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. layer-violation (exit 1, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret check layer-violation --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>\\layer-violation",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."succeeded": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."id": "LOCAL-KPL-MXM2RULE",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "MapViolations",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": truePole 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."kretdb.open",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."kretdb.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."kretdb.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.},Zamknięcie struktury otwartej we wcześniejszych liniach."diagnostics": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."file": "<project>\\layer-violation\\Script\\App\\Main.krs",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."line": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."column": 17,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endLine": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endColumn": 24,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-KRM-0302",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "modu\u0142 KretS Main (modu\u0142 mapy App) u\u017Cywa modu\u0142u Storage (modu\u0142 mapy Storage), a mapa projektu nie deklaruje \u201Euses Storage\u201D w module App"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.Pusta linia oddziela fragmenty źródła.### 2. grant-attempt (exit 1, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret check grant-attempt --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>\\grant-attempt",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."succeeded": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."id": "LOCAL-KPL-MXM2RULE",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "MapViolations",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": truePole 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."kretdb.open",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."kretdb.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."kretdb.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.},Zamknięcie struktury otwartej we wcześniejszych liniach."diagnostics": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."file": "<project>\\grant-attempt\\Script\\Orders\\module.kretm",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."line": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."column": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endLine": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endColumn": 16,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-KRM-0301",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "\u201Epermissions\u201D: mapa KretM opisuje struktur\u0119 projektu i nie przyznaje uprawnie\u0144 \u2014 uprawnienia deklaruje wy\u0142\u0105cznie manifest plugin.kretl"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."file": "<project>\\grant-attempt\\Script\\Orders\\module.kretm",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."line": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."column": 23,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endLine": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endColumn": 24,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-KRM-0101",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "nieoczekiwany element \u201E.\u201D"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.Pusta linia oddziela fragmenty źródła.Pusta linia oddziela fragmenty źródła.
Diagnostyka i raporty testów
{
"format": "kretos-web-playground-diagnostics/1",
"exampleId": "KRETM-I01-MapViolations",
"sdk": "1.0.0-rc.3+kret.local.3",
"origin": "PRECOMPUTED",
"diagnostics": [
{
"id": "diag.KRETM-I01-MapViolations.1.1",
"exampleId": "KRETM-I01-MapViolations",
"step": 1,
"stepName": "layer-violation",
"command": "kret check layer-violation --json",
"exitCode": 1,
"file": "layer-violation/Script/App/Main.krs",
"line": 4,
"column": 17,
"endLine": 4,
"endColumn": 24,
"severity": "error",
"code": "KCS-KRM-0302",
"message": "moduł KretS Main (moduł mapy App) używa modułu Storage (moduł mapy Storage), a mapa projektu nie deklaruje „uses Storage” w module App",
"origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"
},
{
"id": "diag.KRETM-I01-MapViolations.2.2",
"exampleId": "KRETM-I01-MapViolations",
"step": 2,
"stepName": "grant-attempt",
"command": "kret check grant-attempt --json",
"exitCode": 1,
"file": "grant-attempt/Script/Orders/module.kretm",
"line": 5,
"column": 5,
"endLine": 5,
"endColumn": 16,
"severity": "error",
"code": "KCS-KRM-0301",
"message": "„permissions”: mapa KretM opisuje strukturę projektu i nie przyznaje uprawnień — uprawnienia deklaruje wyłącznie manifest plugin.kretl",
"origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"
},
{
"id": "diag.KRETM-I01-MapViolations.2.3",
"exampleId": "KRETM-I01-MapViolations",
"step": 2,
"stepName": "grant-attempt",
"command": "kret check grant-attempt --json",
"exitCode": 1,
"file": "grant-attempt/Script/Orders/module.kretm",
"line": 5,
"column": 23,
"endLine": 5,
"endColumn": 24,
"severity": "error",
"code": "KCS-KRM-0101",
"message": "nieoczekiwany element „.”",
"origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"
}
]
}
Czytanie kodu linia po linii
Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.
{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."format": "kretos-web-playground-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exampleId": "KRETM-I01-MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."sdk": "1.0.0-rc.3+kret.local.3",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."origin": "PRECOMPUTED",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."diagnostics": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "diag.KRETM-I01-MapViolations.1.1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exampleId": "KRETM-I01-MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."step": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."stepName": "layer-violation",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."command": "kret check layer-violation --json",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."file": "layer-violation/Script/App/Main.krs",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."line": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."column": 17,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endLine": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endColumn": 24,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-KRM-0302",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "moduł KretS Main (moduł mapy App) używa modułu Storage (moduł mapy Storage), a mapa projektu nie deklaruje „uses Storage” w module App",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "diag.KRETM-I01-MapViolations.2.2",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exampleId": "KRETM-I01-MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."step": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."stepName": "grant-attempt",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."command": "kret check grant-attempt --json",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."file": "grant-attempt/Script/Orders/module.kretm",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."line": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."column": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endLine": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endColumn": 16,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-KRM-0301",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "„permissions”: mapa KretM opisuje strukturę projektu i nie przyznaje uprawnień — uprawnienia deklaruje wyłącznie manifest plugin.kretl",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."id": "diag.KRETM-I01-MapViolations.2.3",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exampleId": "KRETM-I01-MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."step": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."stepName": "grant-attempt",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."command": "kret check grant-attempt --json",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."file": "grant-attempt/Script/Orders/module.kretm",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."line": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."column": 23,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endLine": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endColumn": 24,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-KRM-0101",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "nieoczekiwany element „.”",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"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.
Pochodzenie i integralność
KRET_FORMAT_KRETM.zip:KretM/Examples/INTERMEDIATE_MapViolations/example.json
02_PLAYGROUND/EXAMPLES/KRETM-I01-MapViolations.json
SHA-256 587F191E687FE780CE06781BBF1142BC111CEB0547975D544A981D9C696330ACMateriał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.
KRETM-I01-MapViolations — Naruszenia mapy: warstwy i próba przyznania uprawnień
KRETM-I01-MapViolations — Naruszenia mapy: warstwy i próba przyznania uprawnień
🇬🇧 English version below.
| Pole | Wartość |
|---|---|
| Technologia | KretM |
| Poziom | INTERMEDIATE |
| Klasyfikacja | VALIDATION_ONLY — Tylko walidacja (bez wykonania) |
| Playground | LOCAL_VALIDATE — lokalnie: walidacja (kret check, lokalny walidator Playground) |
| SDK | 1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany) |
| Wynik testu | TEST_RESULTS.json, rzeczywisty wynik: EXPECTED_OUTPUT.txt |
Co pokazuje
Wariant layer-violation/: moduł warstwy Ui woła moduł warstwy Data mimo deny Ui -> Data. Wariant grant-attempt/: mapa lokalna próbuje zapisać uprawnienie — KCS-KRM-0301.
Pliki
| Plik |
|---|
grant-attempt/Disk/Schema.kdb |
grant-attempt/Script/App/Main.krs |
grant-attempt/Script/Orders/Orders.krs |
grant-attempt/Script/Orders/module.kretm |
grant-attempt/Script/Storage/Storage.krs |
grant-attempt/host-policy.json |
grant-attempt/plugin.kretl |
grant-attempt/project.kretm |
layer-violation/Disk/Schema.kdb |
layer-violation/Script/App/Main.krs |
layer-violation/Script/Orders/Orders.krs |
layer-violation/Script/Orders/module.kretm |
layer-violation/Script/Storage/Storage.krs |
layer-violation/host-policy.json |
layer-violation/plugin.kretl |
layer-violation/project.kretm |
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 layer-violation --json— naruszenie reguły warstw (oczekiwany błąd)kret check grant-attempt --json— próba przyznania uprawnień w mapie (oczekiwany błąd)
Oczekiwany wynik
Oba sprawdzenia kończą się kodem 1 z diagnostyką KretM/KretS.
Najczęstszy błąd
Oczekiwanie, że allow w mapie lokalnej rozszerzy reguły projektu — mapa lokalna może tylko doprecyzować moduł (KCS-KRM-0306).
Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →