2.6 KiB
2.6 KiB
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 dodist/.
3. Lokalny beh a overenie
- Skontroluj
config.json(lokalne MySQL udaje). - Spust aplikaciu:
go run dbPrompt.go
- Otvor:
http://localhost:8080
- 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, vratiQueryResult.DELETE /history/{id}: zmaze jeden zaznam historie.
QueryResult klucove polia:
id,query,timestampduration(ms)erroralebo vysledok (columns,rows) aleborowsAffected
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.jsonje 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-headera.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
- Zmena funguje funkcne v UI/API.
go test ./...prejde.- Nemas neplanovane zmeny mimo scope zadania.