KRET LANGUAGE ACADEMY · DOKUMENTACJA ZE ŹRÓDEŁ
Transakcje, testy `kret test`, odmowy uprawnień i błędy schematu
`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/`).
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.
database Ledger {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.Pusta linia oddziela fragmenty źródła.table balance {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.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.
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.
- check
kret check . --jsonKatalog: project · Oczekiwany kod wyjścia: 0 - run
kret run . --policy host-policy.json --data {DATA}Katalog: project · Oczekiwany kod wyjścia: 0 - test
kret test . --json --policy host-policy.jsonKatalog: project · Oczekiwany kod wyjścia: 0 - readonly
kret run readonly --policy readonly/host-policy.json --data {DATA}/roKatalog: project · Oczekiwany kod wyjścia: 0 - bad-schema
kret 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.
# EXPECTED_OUTPUT — KRETDB-A01-TransactionsTestsDenialsOdczytaj 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: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.# Actual output of the run. Paths replaced by placeholders.Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.Pusta linia oddziela fragmenty źródła.### 1. check (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret check . --jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."format": "kret-diagnostics/1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."project": "<project>",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."succeeded": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."plugin": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."id": "LOCAL-KPL-DBA2TRNS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "TransactionsTestsDenials",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."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.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.### 2. run (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret run . --policy host-policy.json --data {DATA}Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 26360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startupMs": 42.4541,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1193408,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1190768,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32546816,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 10133504,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32546816,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 109.375Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1606888,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1603624,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 40591360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 14069760,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 40611840,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 203.125Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."package": "<project>\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startMs": 158.57,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."subject": "LOCAL-KPL-DBA2TRNS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instance": "01a19725-91ed-775e-bc88-1ab682b8618a",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 42392,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": "a=70 b=30 odmowa=tak",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 61.0363,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 57.3775,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 91,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 12,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 784760,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 782576,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32493568,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11247616,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 0.9274,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 0.0031,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 792984,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 790776,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32493568,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11247616,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32493568,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11247616,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32595968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."database": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."backend": "sqlite",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."engineVersion": "3.53.4",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."fileBytes": 20480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pageCount": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."engineMemoryBytes": 263672,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."statements": 42Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 12,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakCommitBytes": 12091392,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."log": []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."brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 592936,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1603624,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 41254912,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 14688256,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 41254912,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 218.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."entries": 17,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."grantsIssued": 3,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denied": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.### 3. test (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret test . --json --policy host-policy.jsonOdczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.{"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.Pusta linia oddziela fragmenty źródła.### 4. readonly (exit 0, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> 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.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."broker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 2004,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startupMs": 45.6065,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginHostSha256": "93405d128c95234d913efcd6e28fe54073caa0375135a2184290f958e7f7cfe5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allowProvisionalRisk": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memoryIdle": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1193968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1191328,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32739328,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 10375168,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32739328,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."brokerWithPlugins": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 1566968,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1563752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 40681472,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 14200832,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 40710144,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 187.5Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."plugins": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."package": "<project>\\readonly\\Build",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."admitted": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."startMs": 155.9801,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."subject": "LOCAL-KPL-DBA2RDNL",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instance": "01a19725-95c8-7b92-bf13-73c983d308b5",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pid": 12864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."jobObject": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."isolation": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."level": "Restricted",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."restrictedToken": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."lowIntegrity": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."appContainer": falsePole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."limits": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."profile": "standard",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."scriptMemoryBytes": 67108864,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."processMemoryBytes": 201326592,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuPercent": 25,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."maxInstructions": 50000000,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."clamped": []Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."calls": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "start",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "String",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": "odczyt=0 zapis=odmowa",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 47.4013,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 43.5698,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 23,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 768360,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 766224,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32468992,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11243520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32579584,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."operation": "shutdown",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."ok": true,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."status": "Completed",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."type": "Unit",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."value": null,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."brokerMs": 0.5165,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."vmMs": 0.0011,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."instructions": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pluginReportedMemory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 776584,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 774424,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32473088,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11243520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32579584,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.}Zamknięcie struktury otwartej we wcześniejszych liniach.],Zamknięcie struktury otwartej we wcześniejszych liniach."processMemoryMeasuredByBroker": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 32473088,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 11243520,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 32579584,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 93.75Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."database": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."backend": "sqlite",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."engineVersion": "3.53.4",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."fileBytes": 20480,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."pageCount": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."engineMemoryBytes": 263680,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."statements": 32Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.},Zamknięcie struktury otwartej we wcześniejszych liniach."summary": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 0,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."killed": false,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."hostCalls": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakCommitBytes": 12046336,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."log": []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."brokerAfterClose": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."memory": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."managedBytes": 591176,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."allocatedBytes": 1563752,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."workingSetBytes": 41316352,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."privateBytes": 14909440,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."peakWorkingSetBytes": 41316352,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."cpuMs": 187.5Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."audit": {Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."entries": 16,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denials": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."grantsIssued": 2,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."denied": [Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.{Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej."event": "permission",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."subject": "LOCAL-KPL-DBA2RDNL",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."operation": "db.set",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."permission": "kretdb.write",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-PERM-0006"Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.]Zamknięcie struktury otwartej we wcześniejszych liniach.},Zamknięcie struktury otwartej we wcześniejszych liniach."exitCode": 0Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku.}Zamknięcie struktury otwartej we wcześniejszych liniach.Pusta linia oddziela fragmenty źródła.### 5. bad-schema (exit 1, PASS)Odczytaj tę linię w kontekście otaczającego bloku i objaśnień autora poniżej.> kret check bad-schema --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>\\bad-schema",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-DBA2TRNS",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."name": "BadSchema",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."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>\\bad-schema\\Disk\\Schema.kdb",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."line": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."column": 11,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endLine": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endColumn": 18,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-KDB-0205",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "table balance: tabela musi mie\u0107 dok\u0142adnie jedn\u0105 kolumn\u0119 primary key"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": "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.
{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": "KRETDB-A01-TransactionsTestsDenials",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.KRETDB-A01-TransactionsTestsDenials.5.1",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exampleId": "KRETDB-A01-TransactionsTestsDenials",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."step": 5,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."stepName": "bad-schema",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."command": "kret check bad-schema --json",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."exitCode": 1,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."file": "bad-schema/Disk/Schema.kdb",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."line": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."column": 11,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endLine": 4,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."endColumn": 18,Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."severity": "error",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."code": "KCS-KDB-0205",Pole danych JSON; znaczenie wynika z wersjonowanego schematu pliku."message": "table balance: tabela musi mieć dokładnie jedną kolumnę primary key",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_LANGUAGE_KRETDB.zip:KretDB/Examples/ADVANCED_TransactionsTestsDenials/example.json
02_PLAYGROUND/EXAMPLES/KRETDB-A01-TransactionsTestsDenials.json
SHA-256 FC78CBEF5D1BBF5E5EDDE4DAF7EEAC10EC19FD0B10FB526399561B107FCC73EAMateriał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.
| Pole | Wartość |
|---|---|
| Technologia | KretDB |
| Poziom | ADVANCED |
| Klasyfikacja | RUNNABLE_LOCAL — Uruchamialny lokalnie (SDK, izolowany proces pluginu) |
| Playground | LOCAL_EXECUTE — lokalnie: wykonanie w KretStudio / SDK (publicznie: tylko statycznie) |
| SDK | 1.0.0-rc.3+kret.local.3 (kandydat lokalny, niepodpisany) |
| Wynik testu | TEST_RESULTS.json, rzeczywisty wynik: EXPECTED_OUTPUT.txt |
Co pokazuje
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.
kret check . --json— walidacjakret run . --policy host-policy.json --data {DATA}— transakcje i wycofaniekret test . --json --policy host-policy.json— testy KretDB (polityka hosta przyznaje uprawnienia testom)kret run readonly --policy readonly/host-policy.json --data {DATA}/ro— zapis bez przyznania → odmowa obsłużona w kodziekret 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ą.
Zaloguj się na konto użytkownika, aby zapisywać postęp i zakładki. Konta obsługi mogą czytać bez zapisu postępu. Logowanie →