Przejdź do treści

KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ

Transakcje, testy `kret test`, odmowy uprawnień i błędy schematu

ADVANCEDRUNNABLE_LOCALKretDB

`db.begin/commit/rollback`, testy KretDB w izolowanym procesie (każdy moduł testowy dostaje świeżą bazę), odmowa zapisu, gdy polityka hosta przyznaje tylko odczyt (`readonly/`), oraz błąd schematu: dwa klucze główne (`bad-schema/`).

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.

Kanoniczne pliki projektu

database Ledger {
    version = 1

    table balance {
        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 Ledger {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. Pusta linia oddziela fragmenty źródła.
  4. table balance {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  5. name: String primary keyOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  6. value: IntOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  7. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  8. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  9. Pusta linia oddziela fragmenty źródła.

Wynik i typowy błąd

`a=70 b=30 odmowa=tak`; testy 2 × PASS; wariant tylko-do-odczytu zwraca `zapis=odmowa`; zły schemat kończy się kodem 1.

Na co uważać

Uruchomienie `kret test` bez `--policy` — testy nie dostają wtedy żadnych uprawnień i każda operacja `db.*` jest odmową.

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. runkret run . --policy host-policy.json --data {DATA}Katalog: project · Oczekiwany kod wyjścia: 0
  3. testkret test . --json --policy host-policy.jsonKatalog: project · Oczekiwany kod wyjścia: 0
  4. readonlykret run readonly --policy readonly/host-policy.json --data {DATA}/roKatalog: project · Oczekiwany kod wyjścia: 0
  5. bad-schemakret check bad-schema --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 — KRETDB-A01-TransactionsTestsDenials
# Rzeczywisty wynik uruchomienia (SDK 1.0.0-rc.3+kret.local.3, 2026-11-01T12:46:25Z). Ś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-DBA2TRNS",
    "name": "TransactionsTestsDenials",
    "version": "1.0.0",
    "profile": "standard",
    "database": true
  },
  "permissions": {
    "required": [
      "kretdb.open",
      "kretdb.read",
      "kretdb.write"
    ],
    "optional": []
  },
  "handlers": {
    "lifecycle": [
      "start",
      "shutdown"
    ],
    "events": [],
    "commands": []
  },
  "diagnostics": []
}

### 2. run  (exit 0, PASS)
> kret run . --policy host-policy.json --data {DATA}
{
  "broker": {
    "pid": 26360,
    "startupMs": 42.4541,
    "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",
    "allowProvisionalRisk": true,
    "memoryIdle": {
      "managedBytes": 1193408,
      "allocatedBytes": 1190768,
      "workingSetBytes": 32546816,
      "privateBytes": 10133504,
      "peakWorkingSetBytes": 32546816,
      "cpuMs": 109.375
    }
  },
  "brokerWithPlugins": {
    "memory": {
      "managedBytes": 1606888,
      "allocatedBytes": 1603624,
      "workingSetBytes": 40591360,
      "privateBytes": 14069760,
      "peakWorkingSetBytes": 40611840,
      "cpuMs": 203.125
    }
  },
  "plugins": [
    {
      "package": "<project>\\Build",
      "admitted": true,
      "startMs": 158.57,
      "subject": "LOCAL-KPL-DBA2TRNS",
      "instance": "01a19725-91ed-775e-bc88-1ab682b8618a",
      "pid": 42392,
      "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": "a=70 b=30 odmowa=tak",
          "brokerMs": 61.0363,
          "vmMs": 57.3775,
          "instructions": 91,
          "hostCalls": 12,
          "pluginReportedMemory": {
            "managedBytes": 784760,
            "allocatedBytes": 782576,
            "workingSetBytes": 32493568,
            "privateBytes": 11247616,
            "peakWorkingSetBytes": 32595968,
            "cpuMs": 93.75
          }
        },
        {
          "operation": "shutdown",
          "ok": true,
          "status": "Completed",
          "type": "Unit",
          "value": null,
          "brokerMs": 0.9274,
          "vmMs": 0.0031,
          "instructions": 1,
          "hostCalls": 0,
          "pluginReportedMemory": {
            "managedBytes": 792984,
            "allocatedBytes": 790776,
            "workingSetBytes": 32493568,
            "privateBytes": 11247616,
            "peakWorkingSetBytes": 32595968,
            "cpuMs": 93.75
          }
        }
      ],
      "processMemoryMeasuredByBroker": {
        "workingSetBytes": 32493568,
        "privateBytes": 11247616,
        "peakWorkingSetBytes": 32595968,
        "cpuMs": 93.75
      },
      "database": {
        "backend": "sqlite",
        "engineVersion": "3.53.4",
        "fileBytes": 20480,
        "pageCount": 5,
        "engineMemoryBytes": 263672,
        "statements": 42
      },
      "summary": {
        "exitCode": 0,
        "killed": false,
        "hostCalls": 12,
        "denials": 0,
        "peakCommitBytes": 12091392,
        "log": []
      }
    }
  ],
  "brokerAfterClose": {
    "memory": {
      "managedBytes": 592936,
      "allocatedBytes": 1603624,
      "workingSetBytes": 41254912,
      "privateBytes": 14688256,
      "peakWorkingSetBytes": 41254912,
      "cpuMs": 218.75
    }
  },
  "audit": {
    "entries": 17,
    "denials": 0,
    "grantsIssued": 3,
    "denied": []
  },
  "exitCode": 0
}

### 3. test  (exit 0, PASS)
> kret test . --json --policy host-policy.json
{"format":"kret-test/1","project":"<project>","status":"PASSED","startedUtc":"2026-11-01T12:46:24.5252373\u002B00:00","durationMs":332.7,"sdkVersion":"1.0.0-rc.3","listOnly":false,"plugin":{"id":"LOCAL-KPL-DBA2TRNS","name":"TransactionsTestsDenials","version":"1.0.0"},"policy":"explicit","isolationRequested":"Restricted","isolation":{"level":"Restricted","jobObject":true,"restrictedToken":true,"lowIntegrity":true,"appContainer":false},"counts":{"total":2,"passed":2,"failed":0,"skipped":0,"notRun":0,"errors":0},"tests":[{"id":"unit/LedgerTests.testTransferMovesMoney","category":"unit","module":"LedgerTests","name":"testTransferMovesMoney","function":"LedgerTests.testTransferMovesMoney","file":"<project>\\Tests\\LedgerTests.krs","line":4,"column":4,"status":"PASS","durationMs":11.31,"instructions":63,"hostCalls":9},{"id":"unit/LedgerTests.testRollbackLeavesNoTrace","category":"unit","module":"LedgerTests","name":"testRollbackLeavesNoTrace","function":"LedgerTests.testRollbackLeavesNoTrace","file":"<project>\\Tests\\LedgerTests.krs","line":12,"column":4,"status":"PASS","durationMs":2.14,"instructions":11,"hostCalls":4}],"diagnostics":[]}

### 4. readonly  (exit 0, PASS)
> kret run readonly --policy readonly/host-policy.json --data {DATA}/ro
{
  "broker": {
    "pid": 2004,
    "startupMs": 45.6065,
    "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",
    "allowProvisionalRisk": true,
    "memoryIdle": {
      "managedBytes": 1193968,
      "allocatedBytes": 1191328,
      "workingSetBytes": 32739328,
      "privateBytes": 10375168,
      "peakWorkingSetBytes": 32739328,
      "cpuMs": 93.75
    }
  },
  "brokerWithPlugins": {
    "memory": {
      "managedBytes": 1566968,
      "allocatedBytes": 1563752,
      "workingSetBytes": 40681472,
      "privateBytes": 14200832,
      "peakWorkingSetBytes": 40710144,
      "cpuMs": 187.5
    }
  },
  "plugins": [
    {
      "package": "<project>\\readonly\\Build",
      "admitted": true,
      "startMs": 155.9801,
      "subject": "LOCAL-KPL-DBA2RDNL",
      "instance": "01a19725-95c8-7b92-bf13-73c983d308b5",
      "pid": 12864,
      "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": "odczyt=0 zapis=odmowa",
          "brokerMs": 47.4013,
          "vmMs": 43.5698,
          "instructions": 23,
          "hostCalls": 2,
          "pluginReportedMemory": {
            "managedBytes": 768360,
            "allocatedBytes": 766224,
            "workingSetBytes": 32468992,
            "privateBytes": 11243520,
            "peakWorkingSetBytes": 32579584,
            "cpuMs": 93.75
          }
        },
        {
          "operation": "shutdown",
          "ok": true,
          "status": "Completed",
          "type": "Unit",
          "value": null,
          "brokerMs": 0.5165,
          "vmMs": 0.0011,
          "instructions": 1,
          "hostCalls": 0,
          "pluginReportedMemory": {
            "managedBytes": 776584,
            "allocatedBytes": 774424,
            "workingSetBytes": 32473088,
            "privateBytes": 11243520,
            "peakWorkingSetBytes": 32579584,
            "cpuMs": 93.75
          }
        }
      ],
      "processMemoryMeasuredByBroker": {
        "workingSetBytes": 32473088,
        "privateBytes": 11243520,
        "peakWorkingSetBytes": 32579584,
        "cpuMs": 93.75
      },
      "database": {
        "backend": "sqlite",
        "engineVersion": "3.53.4",
        "fileBytes": 20480,
        "pageCount": 5,
        "engineMemoryBytes": 263680,
        "statements": 32
      },
      "summary": {
        "exitCode": 0,
        "killed": false,
        "hostCalls": 2,
        "denials": 1,
        "peakCommitBytes": 12046336,
        "log": []
      }
    }
  ],
  "brokerAfterClose": {
    "memory": {
      "managedBytes": 591176,
      "allocatedBytes": 1563752,
      "workingSetBytes": 41316352,
      "privateBytes": 14909440,
      "peakWorkingSetBytes": 41316352,
      "cpuMs": 187.5
    }
  },
  "audit": {
    "entries": 16,
    "denials": 1,
    "grantsIssued": 2,
    "denied": [
      {
        "event": "permission",
        "subject": "LOCAL-KPL-DBA2RDNL",
        "operation": "db.set",
        "permission": "kretdb.write",
        "code": "KCS-PERM-0006"
      }
    ]
  },
  "exitCode": 0
}

### 5. bad-schema  (exit 1, PASS)
> kret check bad-schema --json
{
  "format": "kret-diagnostics/1",
  "project": "<project>\\bad-schema",
  "succeeded": false,
  "plugin": {
    "id": "LOCAL-KPL-DBA2TRNS",
    "name": "BadSchema",
    "version": "1.0.0",
    "profile": "standard",
    "database": true
  },
  "permissions": {
    "required": [
      "kretdb.open",
      "kretdb.read",
      "kretdb.write"
    ],
    "optional": []
  },
  "handlers": {
    "lifecycle": [
      "start",
      "shutdown"
    ],
    "events": [],
    "commands": []
  },
  "diagnostics": [
    {
      "file": "<project>\\bad-schema\\Disk\\Schema.kdb",
      "line": 4,
      "column": 11,
      "endLine": 4,
      "endColumn": 18,
      "severity": "error",
      "code": "KCS-KDB-0205",
      "message": "table balance: tabela musi mie\u0107 dok\u0142adnie jedn\u0105 kolumn\u0119 primary key"
    }
  ]
}


Czytanie kodu linia po linii

Objaśnienia struktury nie są walidacją semantyczną. Szczegółowy kontrakt opisują referencje i README przykładu.

  1. # EXPECTED_OUTPUT — KRETDB-A01-TransactionsTestsDenialsOdczytaj 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:25Z). Ś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-DBA2TRNS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  13. "name": "TransactionsTestsDenials",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. "kretdb.open",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  21. "kretdb.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  22. "kretdb.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  23. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  24. "optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  25. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  26. "handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  27. "lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  28. "start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  29. "shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  30. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  31. "events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  32. "commands": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  33. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  34. "diagnostics": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  35. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  36. Pusta linia oddziela fragmenty źródła.
  37. ### 2. run (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  38. > kret run . --policy host-policy.json --data {DATA}Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  39. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  40. "broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  41. "pid": 26360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  42. "startupMs": 42.4541,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  43. "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  44. "allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  45. "memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  46. "managedBytes": 1193408,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  47. "allocatedBytes": 1190768,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  48. "workingSetBytes": 32546816,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  49. "privateBytes": 10133504,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  50. "peakWorkingSetBytes": 32546816,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  51. "cpuMs": 109.375Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  52. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  53. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  54. "brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  55. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  56. "managedBytes": 1606888,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  57. "allocatedBytes": 1603624,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  58. "workingSetBytes": 40591360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  59. "privateBytes": 14069760,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  60. "peakWorkingSetBytes": 40611840,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  61. "cpuMs": 203.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  62. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  63. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  64. "plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  65. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  66. "package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  67. "admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  68. "startMs": 158.57,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  69. "subject": "LOCAL-KPL-DBA2TRNS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  70. "instance": "01a19725-91ed-775e-bc88-1ab682b8618a",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  71. "pid": 42392,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  72. "jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  73. "isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  74. "level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  75. "restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  76. "lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  77. "appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  78. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  79. "limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  80. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  81. "scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  82. "processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  83. "cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  84. "maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  85. "clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  86. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  87. "calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  88. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  89. "operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  90. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  91. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  92. "type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  93. "value": "a=70 b=30 odmowa=tak",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  94. "brokerMs": 61.0363,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  95. "vmMs": 57.3775,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  96. "instructions": 91,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  97. "hostCalls": 12,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  98. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  99. "managedBytes": 784760,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  100. "allocatedBytes": 782576,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  101. "workingSetBytes": 32493568,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  102. "privateBytes": 11247616,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  103. "peakWorkingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  104. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  105. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  106. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  107. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  108. "operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  109. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  110. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  111. "type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  112. "value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  113. "brokerMs": 0.9274,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  114. "vmMs": 0.0031,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  115. "instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  116. "hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  117. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  118. "managedBytes": 792984,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  119. "allocatedBytes": 790776,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  120. "workingSetBytes": 32493568,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  121. "privateBytes": 11247616,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  122. "peakWorkingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  123. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  124. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  125. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  126. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  127. "processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  128. "workingSetBytes": 32493568,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  129. "privateBytes": 11247616,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  130. "peakWorkingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  131. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  132. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  133. "database": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  134. "backend": "sqlite",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  135. "engineVersion": "3.53.4",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  136. "fileBytes": 20480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  137. "pageCount": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  138. "engineMemoryBytes": 263672,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  139. "statements": 42Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  140. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  141. "summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  142. "exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  143. "killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  144. "hostCalls": 12,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  145. "denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  146. "peakCommitBytes": 12091392,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  147. "log": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  148. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  149. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  150. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  151. "brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  152. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  153. "managedBytes": 592936,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  154. "allocatedBytes": 1603624,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  155. "workingSetBytes": 41254912,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  156. "privateBytes": 14688256,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  157. "peakWorkingSetBytes": 41254912,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  158. "cpuMs": 218.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  159. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  160. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  161. "audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  162. "entries": 17,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  163. "denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  164. "grantsIssued": 3,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  165. "denied": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  166. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  167. "exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  168. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  169. Pusta linia oddziela fragmenty źródła.
  170. ### 3. test (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  171. > kret test . --json --policy host-policy.jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  172. {"format":"kret-test/1","project":"<project>","status":"PASSED","startedUtc":"2026-11-01T12:46:24.5252373\u002B00:00","durationMs":332.7,"sdkVersion":"1.0.0-rc.3","listOnly":false,"plugin":{"id":"LOCAL-KPL-DBA2TRNS","name":"TransactionsTestsDenials","version":"1.0.0"},"policy":"explicit","isolationRequested":"Restricted","isolation":{"level":"Restricted","jobObject":true,"restrictedToken":true,"lowIntegrity":true,"appContainer":false},"counts":{"total":2,"passed":2,"failed":0,"skipped":0,"notRun":0,"errors":0},"tests":[{"id":"unit/LedgerTests.testTransferMovesMoney","category":"unit","module":"LedgerTests","name":"testTransferMovesMoney","function":"LedgerTests.testTransferMovesMoney","file":"<project>\\Tests\\LedgerTests.krs","line":4,"column":4,"status":"PASS","durationMs":11.31,"instructions":63,"hostCalls":9},{"id":"unit/LedgerTests.testRollbackLeavesNoTrace","category":"unit","module":"LedgerTests","name":"testRollbackLeavesNoTrace","function":"LedgerTests.testRollbackLeavesNoTrace","file":"<project>\\Tests\\LedgerTests.krs","line":12,"column":4,"status":"PASS","durationMs":2.14,"instructions":11,"hostCalls":4}],"diagnostics":[]}Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  173. Pusta linia oddziela fragmenty źródła.
  174. ### 4. readonly (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  175. > kret run readonly --policy readonly/host-policy.json --data {DATA}/roOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  176. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  177. "broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  178. "pid": 2004,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  179. "startupMs": 45.6065,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  180. "pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  181. "allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  182. "memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  183. "managedBytes": 1193968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  184. "allocatedBytes": 1191328,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  185. "workingSetBytes": 32739328,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  186. "privateBytes": 10375168,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  187. "peakWorkingSetBytes": 32739328,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  188. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  189. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  190. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  191. "brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  192. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  193. "managedBytes": 1566968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  194. "allocatedBytes": 1563752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  195. "workingSetBytes": 40681472,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  196. "privateBytes": 14200832,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  197. "peakWorkingSetBytes": 40710144,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  198. "cpuMs": 187.5Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  199. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  200. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  201. "plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  202. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  203. "package": "<project>\\readonly\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  204. "admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  205. "startMs": 155.9801,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  206. "subject": "LOCAL-KPL-DBA2RDNL",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  207. "instance": "01a19725-95c8-7b92-bf13-73c983d308b5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  208. "pid": 12864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  209. "jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  210. "isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  211. "level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  212. "restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  213. "lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  214. "appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  215. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  216. "limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  217. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  218. "scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  219. "processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  220. "cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  221. "maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  222. "clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  223. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  224. "calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  225. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  226. "operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  227. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  228. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  229. "type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  230. "value": "odczyt=0 zapis=odmowa",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  231. "brokerMs": 47.4013,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  232. "vmMs": 43.5698,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  233. "instructions": 23,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  234. "hostCalls": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  235. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  236. "managedBytes": 768360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  237. "allocatedBytes": 766224,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  238. "workingSetBytes": 32468992,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  239. "privateBytes": 11243520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  240. "peakWorkingSetBytes": 32579584,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  241. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  242. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  243. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  244. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  245. "operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  246. "ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  247. "status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  248. "type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  249. "value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  250. "brokerMs": 0.5165,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  251. "vmMs": 0.0011,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  252. "instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  253. "hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  254. "pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  255. "managedBytes": 776584,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  256. "allocatedBytes": 774424,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  257. "workingSetBytes": 32473088,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  258. "privateBytes": 11243520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  259. "peakWorkingSetBytes": 32579584,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  260. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  261. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  262. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  263. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  264. "processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  265. "workingSetBytes": 32473088,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  266. "privateBytes": 11243520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  267. "peakWorkingSetBytes": 32579584,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  268. "cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  269. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  270. "database": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  271. "backend": "sqlite",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  272. "engineVersion": "3.53.4",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  273. "fileBytes": 20480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  274. "pageCount": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  275. "engineMemoryBytes": 263680,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  276. "statements": 32Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  277. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  278. "summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  279. "exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  280. "killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  281. "hostCalls": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  282. "denials": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  283. "peakCommitBytes": 12046336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  284. "log": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  285. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  286. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  287. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  288. "brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  289. "memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  290. "managedBytes": 591176,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  291. "allocatedBytes": 1563752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  292. "workingSetBytes": 41316352,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  293. "privateBytes": 14909440,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  294. "peakWorkingSetBytes": 41316352,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  295. "cpuMs": 187.5Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  296. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  297. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  298. "audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  299. "entries": 16,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  300. "denials": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  301. "grantsIssued": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  302. "denied": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  303. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  304. "event": "permission",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  305. "subject": "LOCAL-KPL-DBA2RDNL",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  306. "operation": "db.set",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  307. "permission": "kretdb.write",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  308. "code": "KCS-PERM-0006"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  309. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  310. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  311. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  312. "exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  313. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  314. Pusta linia oddziela fragmenty źródła.
  315. ### 5. bad-schema (exit 1, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  316. > kret check bad-schema --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  317. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  318. "format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  319. "project": "<project>\\bad-schema",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  320. "succeeded": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  321. "plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  322. "id": "LOCAL-KPL-DBA2TRNS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  323. "name": "BadSchema",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  324. "version": "1.0.0",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  325. "profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  326. "database": truePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  327. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  328. "permissions": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  329. "required": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  330. "kretdb.open",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  331. "kretdb.read",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  332. "kretdb.write"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  333. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  334. "optional": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  335. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  336. "handlers": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  337. "lifecycle": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  338. "start",Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  339. "shutdown"Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  340. ],Zamknięcie struktury otwartej we wcześniejszych liniach.
  341. "events": [],Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  342. "commands": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  343. },Zamknięcie struktury otwartej we wcześniejszych liniach.
  344. "diagnostics": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  345. {Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.
  346. "file": "<project>\\bad-schema\\Disk\\Schema.kdb",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  347. "line": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  348. "column": 11,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  349. "endLine": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  350. "endColumn": 18,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  351. "severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  352. "code": "KCS-KDB-0205",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  353. "message": "table balance: tabela musi mie\u0107 dok\u0142adnie jedn\u0105 kolumn\u0119 primary key"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  354. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  355. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  356. }Zamknięcie struktury otwartej we wcześniejszych liniach.
  357. Pusta linia oddziela fragmenty źródła.
  358. Pusta linia oddziela fragmenty źródła.
Diagnostyka i raporty testów

{
  "format": "kretos-web-playground-diagnostics/1",
  "exampleId": "KRETDB-A01-TransactionsTestsDenials",
  "sdk": "1.0.0-rc.3+kret.local.3",
  "origin": "PRECOMPUTED",
  "diagnostics": [
    {
      "id": "diag.KRETDB-A01-TransactionsTestsDenials.5.1",
      "exampleId": "KRETDB-A01-TransactionsTestsDenials",
      "step": 5,
      "stepName": "bad-schema",
      "command": "kret check bad-schema --json",
      "exitCode": 1,
      "file": "bad-schema/Disk/Schema.kdb",
      "line": 4,
      "column": 11,
      "endLine": 4,
      "endColumn": 18,
      "severity": "error",
      "code": "KCS-KDB-0205",
      "message": "table balance: tabela musi mieć dokładnie jedną kolumnę primary key",
      "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": "KRETDB-A01-TransactionsTestsDenials",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.KRETDB-A01-TransactionsTestsDenials.5.1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  9. "exampleId": "KRETDB-A01-TransactionsTestsDenials",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  10. "step": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  11. "stepName": "bad-schema",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  12. "command": "kret check bad-schema --json",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  13. "exitCode": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  14. "file": "bad-schema/Disk/Schema.kdb",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  15. "line": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  16. "column": 11,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  17. "endLine": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  18. "endColumn": 18,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  19. "severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  20. "code": "KCS-KDB-0205",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.
  21. "message": "table balance: tabela musi mieć dokładnie jedną kolumnę primary key",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. ]Zamknięcie struktury otwartej we wcześniejszych liniach.
  25. }Zamknięcie struktury otwartej we wcześniejszych liniach.
Pochodzenie i integralność

KRET_LANGUAGE_KRETDB.zip:KretDB/Examples/ADVANCED_TransactionsTestsDenials/example.json

02_PLAYGROUND/EXAMPLES/KRETDB-A01-TransactionsTestsDenials.json
SHA-256 FC78CBEF5D1BBF5E5EDDE4DAF7EEAC10EC19FD0B10FB526399561B107FCC73EA

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.

KRETDB-A01-TransactionsTestsDenials — Transakcje, testy `kret test`, odmowy uprawnień i błędy schematu

KRETDB-A01-TransactionsTestsDenials — Transakcje, testy kret test, odmowy uprawnień i błędy schematu

🇬🇧 English version below.
PoleWartość
TechnologiaKretDB
PoziomADVANCED
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

db.begin/commit/rollback, testy KretDB w izolowanym procesie (każdy moduł testowy dostaje świeżą bazę), odmowa zapisu, gdy polityka hosta przyznaje tylko odczyt (readonly/), oraz błąd schematu: dwa klucze główne (bad-schema/).

Pliki

Plik
Disk/Schema.kdb
Script/Main.krs
Tests/LedgerTests.krs
bad-schema/Disk/Schema.kdb
bad-schema/Script/Main.krs
bad-schema/plugin.kretl
host-policy.json
plugin.kretl
readonly/Disk/Schema.kdb
readonly/Script/Main.krs
readonly/host-policy.json
readonly/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 run . --policy host-policy.json --data {DATA} — transakcje i wycofanie
  3. kret test . --json --policy host-policy.json — testy KretDB (polityka hosta przyznaje uprawnienia testom)
  4. kret run readonly --policy readonly/host-policy.json --data {DATA}/ro — zapis bez przyznania → odmowa obsłużona w kodzie
  5. kret check bad-schema --json — dwa klucze główne → KCS-KDB-02xx (oczekiwany błąd)

Oczekiwany wynik

a=70 b=30 odmowa=tak; testy 2 × PASS; wariant tylko-do-odczytu zwraca zapis=odmowa; zły schemat kończy się kodem 1.

Najczęstszy błąd

Uruchomienie kret test bez --policy — testy nie dostają wtedy żadnych uprawnień i każda operacja db.* jest odmową.

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