added interactive setup of config.json
This commit is contained in:
73
AGENTS.md
Normal file
73
AGENTS.md
Normal 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.
|
||||
Reference in New Issue
Block a user