{
  "updatedAt": "2026-09-24",
  "entries": [
    {
      "id": "2026-09-24-rate-limits-parallel",
      "date": "2026-09-24",
      "version": "Build 31",
      "title": "Snellere queries en per-key rate limits",
      "paragraphs": [
        "De SQL-API is beter beschermd en schaalt rustiger wanneer meerdere agents tegelijk werken."
      ],
      "bullets": [
        "Rate limits per API-key houden misbruik en piekbelasting in toom.",
        "Parallelle batches kun je optioneel inschakelen waar dat veilig kan.",
        "Minder wachttijd bij zware read-only workloads."
      ]
    },
    {
      "id": "2026-09-23-backups-tab",
      "date": "2026-09-23",
      "version": "Build 29",
      "title": "Back-ups inzien per project",
      "paragraphs": [
        "Op de projectpagina zie je nu een read-only tab Back-ups met wat er op de server staat, zonder zelf op de host in te loggen."
      ],
      "bullets": [
        "Overzicht gedreven door het backup-manifest op de server.",
        "Geen schrijfacties vanuit de UI — alleen inzicht.",
        "Handig om te controleren of nightly backups draaien."
      ]
    },
    {
      "id": "2026-09-22-sidebar-collapsible",
      "date": "2026-09-22",
      "version": "Build 28",
      "title": "Inklapbare sidebar",
      "paragraphs": [
        "Het admin-paneel past zich aan op smallere schermen en laat je meer ruimte voor tabellen en SQL-resultaten."
      ],
      "bullets": [
        "Sidebar in- en uitklappen met knop of ⌘B / Ctrl+B.",
        "Je voorkeur wordt onthouden in localStorage.",
        "Automatisch ingeklapt onder ~1024px breedte."
      ]
    },
    {
      "id": "2026-09-21-db-browser",
      "date": "2026-09-21",
      "version": "Build 25",
      "title": "Database-browser in projecten",
      "paragraphs": [
        "Binnen een project kun je tabellen en rijen bekijken zonder een externe SQL-client."
      ],
      "bullets": [
        "Kies een tabel via een dropdown in de header.",
        "Rijen worden gepagineerd geladen.",
        "Read-only — veilig om even data te checken."
      ]
    },
    {
      "id": "2026-09-20-api-performance",
      "date": "2026-09-20",
      "version": "Build 24",
      "title": "Snellere API v1",
      "paragraphs": [
        "Veelvoorkomende API-calls zijn geoptimaliseerd voor lagere latency en minder druk op PostgreSQL."
      ],
      "bullets": [
        "Connection pools per database blijven langer warm.",
        "API-key lookup met korte cache om herhaalde bcrypt-checks te vermijden.",
        "Parallelle admin-lookups en één JOIN waar mogelijk.",
        "Timing-logs op /api/v1/query voor regressie-inzicht."
      ]
    },
    {
      "id": "2026-09-19-health-endpoint",
      "date": "2026-09-19",
      "version": "Build 23",
      "title": "Betrouwbare healthcheck",
      "paragraphs": [
        "Docker en de load balancer kunnen nu expliciet controleren of de app draait, zonder ingelogd te zijn."
      ],
      "bullets": [
        "Publiek endpoint GET /api/health.",
        "Middleware laat healthchecks door zonder sessie.",
        "Compose healthcheck wijst naar dit endpoint."
      ]
    },
    {
      "id": "2026-09-18-bearer-admin",
      "date": "2026-09-18",
      "version": "Build 22",
      "title": "Admin-API met Bearer-token",
      "paragraphs": [
        "Scripts en Claude Code skills kunnen projecten en keys beheren zonder browsercookies."
      ],
      "bullets": [
        "Authorization: Bearer … op admin API-routes.",
        "Zelfde rechten als ingelogde admin, gecontroleerd in de handler.",
        "Handig voor automatisering en CI."
      ]
    },
    {
      "id": "2026-09-17-project-databases",
      "date": "2026-09-17",
      "version": "Build 21",
      "title": "Database aanmaken vanuit een project",
      "paragraphs": [
        "Nieuwe databases horen bij een project en zijn meteen koppelbaar aan API-keys."
      ],
      "bullets": [
        "Aanmaken via de projectpagina of via de API.",
        "Connection string en credentials blijven eenmalig zichtbaar na creatie.",
        "AI-prompt in het project vermeldt de juiste db.pm7.dev endpoints."
      ]
    },
    {
      "id": "2026-09-16-project-tabs",
      "date": "2026-09-16",
      "version": "Build 13",
      "title": "Projectdetail met tabs",
      "paragraphs": [
        "Alles rond één project staat nu overzichtelijk bij elkaar."
      ],
      "bullets": [
        "Tabs voor databases, instellingen, logs en AI-prompt.",
        "Logs tonen API-activiteit per project.",
        "Kopieerbare integratieprompt voor coding agents."
      ]
    },
    {
      "id": "2026-09-15-projects-api",
      "date": "2026-09-15",
      "version": "Build 7",
      "title": "Projecten en SQL-API voor agents",
      "paragraphs": [
        "PM7 DB is meer dan een dashboard: het is de hub waarmee AI-tools veilig tegen PostgreSQL praten."
      ],
      "bullets": [
        "Projecten groeperen databases en API-keys.",
        "REST API v1 voor databases, tabellen en read-only SQL.",
        "Sidebar-navigatie naar Dashboard en Projects."
      ]
    },
    {
      "id": "2026-09-14-pm7-auth",
      "date": "2026-09-14",
      "title": "Inloggen via PM7 Auth",
      "paragraphs": [
        "Admin-toegang loopt via auth.pm7.dev, naast e-mail/wachtwoord en Google Sign-In op het login-scherm."
      ],
      "bullets": [
        "Sessiecookies met refresh vóór expiry.",
        "Canonical host db.pm7.dev in productie.",
        "Loginpagina blijft bereikbaar zonder bestaande sessie."
      ]
    },
    {
      "id": "2025-10-13-initial-dashboard",
      "date": "2025-10-13",
      "title": "Eerste release: databasebeheer",
      "paragraphs": [
        "De basis staat: PostgreSQL op Hetzner beheren via een modern webpaneel."
      ],
      "bullets": [
        "Overzicht van databases met grootte, owner en aanmaakdatum.",
        "Servercards: PostgreSQL-versie, storage en actieve connecties.",
        "Database aanmaken en veilig verwijderen met bevestiging.",
        "Connection strings kopiëren naar het klembord."
      ]
    }
  ]
}
