Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Naruszenia mapy: warstwy i próba przyznania uprawnień

INTERMEDIATEVALIDATION_ONLYKretM

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`.

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

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.

  1. database Mapped {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. version = 1Pole tożsamości lub wersji w otaczającym bloku; zachowaj jego kontekst.
  3. table counters {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  4. name: String primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  5. value: IntOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  7. }Zamknięcie struktury otwartej we wcześniejszych liniach.

Wynik i typowy błąd

Oba sprawdzenia kończą się kodem 1 z diagnostyką KretM/KretS.

Na co uważać

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.

  1. layer-violationkret check layer-violation --jsonKatalog: project · Oczekiwany kod wyjścia: 1
  2. grant-attemptkret 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.

  1. # EXPECTED_OUTPUT — KRETM-I01-MapViolationsOdczytaj 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: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.
  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. layer-violation (exit 1, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. > kret check layer-violation --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>\\layer-violation",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  10. "succeeded": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  11. "plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  12. "id": "LOCAL-KPL-MXM2RULE",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  13. "name": "MapViolations",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": truePole 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. "kretdb.open",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  22. "kretdb.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  23. "kretdb.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  24. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  25. "optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  26. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  27. "handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  28. "lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  29. "start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  30. "shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  31. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  32. "events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  33. "commands": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  34. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  35. "diagnostics": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  36. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  37. "file": "<project>\\layer-violation\\Script\\App\\Main.krs",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  38. "line": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  39. "column": 17,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  40. "endLine": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  41. "endColumn": 24,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  42. "severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  43. "code": "KCS-KRM-0302",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  44. "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.
  45. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  46. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  47. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  48. Pusta linia oddziela fragmenty źródła.
  49. ### 2. grant-attempt (exit 1, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  50. > kret check grant-attempt --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  51. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  52. "format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  53. "project": "<project>\\grant-attempt",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  54. "succeeded": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  55. "plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  56. "id": "LOCAL-KPL-MXM2RULE",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  57. "name": "MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  58. "version": "1.0.0",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  59. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  60. "database": truePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  61. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  62. "permissions": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  63. "required": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  64. "logs.own.write",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  65. "kretdb.open",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  66. "kretdb.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  67. "kretdb.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  68. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  69. "optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  70. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  71. "handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  72. "lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  73. "start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  74. "shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  75. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  76. "events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  77. "commands": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  78. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  79. "diagnostics": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  80. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  81. "file": "<project>\\grant-attempt\\Script\\Orders\\module.kretm",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  82. "line": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  83. "column": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  84. "endLine": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  85. "endColumn": 16,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  86. "severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  87. "code": "KCS-KRM-0301",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  88. "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.
  89. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  90. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  91. "file": "<project>\\grant-attempt\\Script\\Orders\\module.kretm",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  92. "line": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  93. "column": 23,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  94. "endLine": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  95. "endColumn": 24,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  96. "severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  97. "code": "KCS-KRM-0101",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  98. "message": "nieoczekiwany element \u201E.\u201D"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  99. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  100. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  101. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  102. Pusta linia oddziela fragmenty źródła.
  103. 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.

  1. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  2. "format": "kretos-web-playground-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  3. "exampleId": "KRETM-I01-MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  4. "sdk": "1.0.0-rc.3+kret.local.3",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  5. "origin": "PRECOMPUTED",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  6. "diagnostics": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  7. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  8. "id": "diag.KRETM-I01-MapViolations.1.1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  9. "exampleId": "KRETM-I01-MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  10. "step": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  11. "stepName": "layer-violation",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  12. "command": "kret check layer-violation --json",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  13. "exitCode": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  14. "file": "layer-violation/Script/App/Main.krs",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  15. "line": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  16. "column": 17,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  17. "endLine": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  18. "endColumn": 24,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  19. "severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  20. "code": "KCS-KRM-0302",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  21. "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.
  22. "origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  23. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  24. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  25. "id": "diag.KRETM-I01-MapViolations.2.2",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  26. "exampleId": "KRETM-I01-MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  27. "step": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  28. "stepName": "grant-attempt",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  29. "command": "kret check grant-attempt --json",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  30. "exitCode": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  31. "file": "grant-attempt/Script/Orders/module.kretm",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  32. "line": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  33. "column": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  34. "endLine": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  35. "endColumn": 16,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  36. "severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  37. "code": "KCS-KRM-0301",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  38. "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.
  39. "origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  40. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  41. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  42. "id": "diag.KRETM-I01-MapViolations.2.3",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  43. "exampleId": "KRETM-I01-MapViolations",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  44. "step": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  45. "stepName": "grant-attempt",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  46. "command": "kret check grant-attempt --json",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  47. "exitCode": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  48. "file": "grant-attempt/Script/Orders/module.kretm",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  49. "line": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  50. "column": 23,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  51. "endLine": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  52. "endColumn": 24,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  53. "severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  54. "code": "KCS-KRM-0101",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  55. "message": "nieoczekiwany element „.”",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  56. "origin": "PRECOMPUTED (kret check, SDK 1.0.0-rc.3+kret.local.3)"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  57. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  58. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  59. }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 587F191E687FE780CE06781BBF1142BC111CEB0547975D544A981D9C696330AC

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.

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.
PoleWartość
TechnologiaKretM
PoziomINTERMEDIATE
KlasyfikacjaVALIDATION_ONLY — Tylko walidacja (bez wykonania)
PlaygroundLOCAL_VALIDATE — lokalnie: walidacja (kret check, lokalny walidator Playground)
SDK1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany)
Wynik testuTEST_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.

  1. kret check layer-violation --json — naruszenie reguły warstw (oczekiwany błąd)
  2. 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).

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