added interactive setup of config.json

This commit is contained in:
2026-02-23 19:19:39 +01:00
parent b692a58ee2
commit 74ef68daad
2 changed files with 194 additions and 10 deletions

73
AGENTS.md Normal file
View File

@ -0,0 +1,73 @@
# AGENTS.md
Tento subor je prakticky navod pre AI agentov a contributorov v projekte `dbPrompt`.
## 1. Ciel projektu
`dbPrompt` je jednoducha web aplikacia na spustanie SQL dotazov nad MySQL s historiou vykonanych dopytov.
## 2. Struktura projektu
- `dbPrompt.go`: backend server (Go, `net/http`), API endpointy aj praca s historiou.
- `index.html`: cely frontend (HTML + CSS + JavaScript v jednom subore).
- `static/`: staticke assety (napr. logo).
- `history/`: JSON subory s historiou dopytov.
- `config.json`: DB konfiguracia pre lokalny beh.
- `build.bat`: build pre Windows/Linux binarky do `dist/`.
## 3. Lokalny beh a overenie
1. Skontroluj `config.json` (lokalne MySQL udaje).
2. Spust aplikaciu:
- `go run dbPrompt.go`
3. Otvor:
- `http://localhost:8080`
4. Pred odovzdanim zmien spusti:
- `go test ./...`
Poznamka: V projekte aktualne nie su unit testy, ale `go test ./...` overi aspon build.
## 4. API kontrakt (nezlomit bez poziadavky)
- `GET /history/`: vracia historiu ako JSON pole, zoradene od najstarsich.
- `POST /query`: prijme `{ id, query }`, vykona SQL, vrati `QueryResult`.
- `DELETE /history/{id}`: zmaze jeden zaznam historie.
`QueryResult` klucove polia:
- `id`, `query`, `timestamp`
- `duration` (ms)
- `error` alebo vysledok (`columns`, `rows`) alebo `rowsAffected`
Ak menis schema odpovede, zosulad backend aj frontend naraz.
## 5. Pravidla pre zmeny
- Zachovaj jednoduchu architekturu (single-file backend + single-file frontend), pokial nie je explicitna poziadavka na refactor.
- Preferuj male, cielene zmeny bez "cleanupu navyse".
- Pri zmenach endpointov vzdy uprav aj frontend render a nacitanie historie.
- Pri praci s cestami zachovaj sanitizaciu ID (`filepath.Base`) kvoli directory traversal.
- Nezavadzaj nove zavislosti bez dovodu.
## 6. Bezpecnost a data
- Nikdy necommituj realne prihlasovacie udaje do DB.
- `config.json` je lokalny runtime subor; citlive hodnoty maskuj v ukazkach.
- SQL sa vykonava priamo zo vstupu uzivatela. Ak by si pridaval funkcionalitu, zvaz oddelenie read-only rezimu alebo aspon jasne varovanie v UI.
## 7. Frontend poznamky
- UI je event-delegated cez `mainContainer.addEventListener('click', ...)`.
- Historicke bloky maju tlacidlo `Delete`; "new-query-block" ho nema, kym query neuspesne/neuspesne neprebehne.
- Collapsible tabulky pouzivaju `.collapsible-header` a `.collapsible-content`.
Pri zmenach vizualu zachovaj funkcnost:
- run query
- delete history item
- load history po starte
- collapse/expand individualne aj globalne
## 8. Definition of done pre kazdu upravu
1. Zmena funguje funkcne v UI/API.
2. `go test ./...` prejde.
3. Nemas neplanovane zmeny mimo scope zadania.