- Remove JIRA_SCHEMA_ID from all documentation, config files, and scripts - Update generate-schema.ts to always auto-discover schemas dynamically - Runtime application already discovers schemas via /objectschema/list API - Build script now automatically selects schema with most objects - Remove JIRA_SCHEMA_ID from docker-compose.yml, Azure setup scripts, and all docs - Application is now fully schema-agnostic and discovers schemas automatically
244 lines
4.5 KiB
Markdown
244 lines
4.5 KiB
Markdown
# Local Development Setup
|
|
|
|
## PostgreSQL Only (Recommended for Local Development)
|
|
|
|
Voor lokale development heb je alleen PostgreSQL nodig. De backend en frontend draaien lokaal op je MacBook.
|
|
|
|
### Start PostgreSQL
|
|
|
|
```bash
|
|
# Start alleen PostgreSQL
|
|
docker-compose -f docker-compose.dev.yml up -d
|
|
|
|
# Check status
|
|
docker-compose -f docker-compose.dev.yml ps
|
|
|
|
# Check logs
|
|
docker-compose -f docker-compose.dev.yml logs -f postgres
|
|
```
|
|
|
|
### Connection String
|
|
|
|
```env
|
|
DATABASE_TYPE=postgres
|
|
DATABASE_URL=postgresql://cmdb:cmdb-dev@localhost:5432/cmdb_insight
|
|
```
|
|
|
|
Of individuele variabelen:
|
|
|
|
```env
|
|
DATABASE_TYPE=postgres
|
|
DATABASE_HOST=localhost
|
|
DATABASE_PORT=5432
|
|
DATABASE_NAME=cmdb_insight
|
|
DATABASE_USER=cmdb
|
|
DATABASE_PASSWORD=cmdb-dev
|
|
```
|
|
|
|
### Stop PostgreSQL
|
|
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml down
|
|
```
|
|
|
|
### Reset Database
|
|
|
|
```bash
|
|
# Stop en verwijder volume
|
|
docker-compose -f docker-compose.dev.yml down -v
|
|
|
|
# Start opnieuw
|
|
docker-compose -f docker-compose.dev.yml up -d
|
|
```
|
|
|
|
### Connect to Database
|
|
|
|
```bash
|
|
# Via psql
|
|
docker-compose -f docker-compose.dev.yml exec postgres psql -U cmdb -d cmdb_insight
|
|
|
|
# Of direct
|
|
psql postgresql://cmdb:cmdb-dev@localhost:5432/cmdb_insight
|
|
```
|
|
|
|
### Useful Commands
|
|
|
|
```bash
|
|
# List databases
|
|
docker-compose -f docker-compose.dev.yml exec postgres psql -U cmdb -c "\l"
|
|
|
|
# List tables
|
|
docker-compose -f docker-compose.dev.yml exec postgres psql -U cmdb -d cmdb_insight -c "\dt"
|
|
|
|
# Check database size
|
|
docker-compose -f docker-compose.dev.yml exec postgres psql -U cmdb -d cmdb_insight -c "
|
|
SELECT pg_size_pretty(pg_database_size('cmdb_insight')) as size;
|
|
"
|
|
|
|
# Count objects
|
|
docker-compose -f docker-compose.dev.yml exec postgres psql -U cmdb -d cmdb_insight -c "
|
|
SELECT object_type_name, COUNT(*)
|
|
FROM objects
|
|
GROUP BY object_type_name;
|
|
"
|
|
```
|
|
|
|
## Full Stack (Alternative)
|
|
|
|
Als je de hele stack in Docker wilt draaien:
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
Dit start:
|
|
- PostgreSQL
|
|
- Backend (in Docker)
|
|
- Frontend (in Docker)
|
|
|
|
## Backend Development
|
|
|
|
Met alleen PostgreSQL draaiend:
|
|
|
|
```bash
|
|
# In backend directory
|
|
cd backend
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Backend draait op `http://localhost:3001`
|
|
|
|
## Frontend Development
|
|
|
|
```bash
|
|
# In frontend directory
|
|
cd frontend
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Frontend draait op `http://localhost:5173`
|
|
|
|
## Environment Variables
|
|
|
|
Maak een `.env` bestand in de root:
|
|
|
|
```env
|
|
# Database (voor backend)
|
|
DATABASE_TYPE=postgres
|
|
DATABASE_URL=postgresql://cmdb:cmdb-dev@localhost:5432/cmdb_insight
|
|
|
|
# Jira (optioneel)
|
|
JIRA_HOST=https://jira.zuyderland.nl
|
|
JIRA_PAT=your_token
|
|
|
|
# AI (optioneel)
|
|
ANTHROPIC_API_KEY=your_key
|
|
```
|
|
|
|
## Database Access
|
|
|
|
### Quick Access
|
|
|
|
**Using the script:**
|
|
```bash
|
|
# Connect using psql
|
|
./scripts/open-database.sh psql
|
|
|
|
# Or via Docker
|
|
./scripts/open-database.sh docker
|
|
|
|
# Or get connection string for GUI tools
|
|
./scripts/open-database.sh url
|
|
```
|
|
|
|
**Direct psql command:**
|
|
```bash
|
|
psql postgresql://cmdb:cmdb-dev@localhost:5432/cmdb_insight
|
|
```
|
|
|
|
**Via Docker:**
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml exec postgres psql -U cmdb -d cmdb_insight
|
|
```
|
|
|
|
### GUI Tools
|
|
|
|
**pgAdmin** (Free, Web-based):
|
|
- Download: https://www.pgadmin.org/download/
|
|
- Connection: `postgresql://cmdb:cmdb-dev@localhost:5432/cmdb_insight`
|
|
|
|
**DBeaver** (Free, Cross-platform):
|
|
- Download: https://dbeaver.io/download/
|
|
- Create new PostgreSQL connection with connection string above
|
|
|
|
**TablePlus** (macOS, Paid but has free tier):
|
|
- Download: https://tableplus.com/
|
|
- Create new PostgreSQL connection
|
|
|
|
### Useful SQL Commands
|
|
|
|
```sql
|
|
-- List all tables
|
|
\dt
|
|
|
|
-- Describe a table structure
|
|
\d objects
|
|
\d attribute_values
|
|
\d classification_history
|
|
|
|
-- View object counts
|
|
SELECT object_type_name, COUNT(*)
|
|
FROM objects
|
|
GROUP BY object_type_name;
|
|
|
|
-- View classification history
|
|
SELECT * FROM classification_history
|
|
ORDER BY timestamp DESC
|
|
LIMIT 10;
|
|
|
|
-- Check database size
|
|
SELECT pg_size_pretty(pg_database_size('cmdb_insight')) as size;
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Port Already in Use
|
|
|
|
Als poort 5432 al in gebruik is:
|
|
|
|
```yaml
|
|
# In docker-compose.dev.yml, wijzig:
|
|
ports:
|
|
- "5433:5432" # Gebruik 5433 lokaal
|
|
```
|
|
|
|
En update je `.env`:
|
|
```env
|
|
DATABASE_PORT=5433
|
|
```
|
|
|
|
### Connection Refused
|
|
|
|
```bash
|
|
# Check of container draait
|
|
docker ps | grep postgres
|
|
|
|
# Check logs
|
|
docker-compose -f docker-compose.dev.yml logs postgres
|
|
|
|
# Test connection
|
|
docker-compose -f docker-compose.dev.yml exec postgres pg_isready -U cmdb
|
|
```
|
|
|
|
### Database Not Found
|
|
|
|
De database wordt automatisch aangemaakt bij eerste start van de backend. Of maak handmatig:
|
|
|
|
```bash
|
|
docker-compose -f docker-compose.dev.yml exec postgres psql -U cmdb -c "CREATE DATABASE cmdb_insight;"
|
|
```
|