mirror of
https://github.com/Dvorinka/Primora.git
synced 2026-10-28 07:41:23 +00:00
- dbx-mcp persistent stdio subprocess in Go backend (internal/dbx), lazy start + single retry, tool failures surface as 502 - core.db_connections registry: per-project connections, credentials server-side only, managed entries protected (409) - platform-postgres + platform-dragonfly auto-register per project - REST proxy: list/create/delete/test, databases, tables, describe, schema context, SQL query, redis command - Databases page: connection list, schema/table browser, column inspector, SQL editor with result grid + row detail, redis console - backend image moved to debian-slim for glibc; pinned dbx release with SHA256 verification Authored By: TDvorak <[email protected]>
3.4 KiB
3.4 KiB
Changelog
All notable changes to Primora. Format follows Keep a Changelog; versions follow SemVer.
[0.3.0] - 2026-09-16
Added
- Databases (DBX integration) — the Go backend keeps
dbx-mcpas a persistent stdio subprocess (internal/dbx, lazy start, one retry on failure) and exposes its tools as REST under/projects/:id/db-connections/*(list/create/delete/test, databases, tables, describe, schema context, SQL query, Redis command). DBX tool/subprocess failures surface as 502. - Connection registry —
core.db_connections(migration 00003). Credentials are stored server-side and never serialized to the browser (has_passwordflag only). Non-defaultssl,driver_profilesupported. - First-party connections —
platform-postgresandplatform-dragonflyauto-register on every project (derived fromDATABASE_URL/DRAGONFLY_URL) and cannot be deleted (409managed_connection). - Databases page — SolidJS view with connection list, database/schema/table browser, column inspector, SQL editor (⌘/Ctrl+Enter), result grid with row-detail modal, and a Redis console. Demo mode stubs included.
- Backend image now Debian-based —
dbx-mcprequires glibc; the Dockerfile installs the pinnedpackages-v0.4.88release with SHA256 verification.
[0.2.0] - 2026-09-15
Added
primoraCLI (apps/cli) —cac-parsed,@clack/promptsinteractive UX. Login (session or API key), org/project context,orgs,projects,buckets,objects(list/upload/download/rm),keys,audit list --follow. Every command accepts--json. Bothprimora orgs listandprimora orgs:listspellings.@primora/mcpserver (apps/mcp) — stdio MCP server exposing 14primora_*tools (whoami, orgs, projects, buckets, objects up/download/delete, API keys, audit query) over the generated client. Shares the CLI's~/.config/primora/config.jsoncredentials.- Authentication → Users panel — better-auth
adminplugin on the auth service (list/set-role/ban/unban/remove users) plus a dashboard view with search, role selects, and ban/delete actions. Bootstrap admins withAUTH_ADMIN_EMAILSin.env. - Mobile bottom navigation — Instagram-style tab bar below 1024px (Overview · Storage · Collections · Auth · Menu), safe-area aware; Menu opens the full drawer. Fixes a dead-navigation gap at 768–1023px.
- Release pipeline — semver tag → GitHub Release with changelog notes, GHCR images (
primora-backend/auth/frontend), compiledprimora/primora-mcpbinaries for Linux/macOS/Windows, npm tarballs, optionalnpm publishviaNPM_TOKENsecret.
Fixed
- Object downloads broken for all gzip-negotiating clients — the compression middleware left the handler's
Content-Length(raw size) on gzipped bodies, so undici/browsers saw truncated streams.gzipWriter.Writenow dropsContent-Length. - nginx 502s after every container restart — upstreams were resolved once at startup. nginx now resolves
backend/auth/frontend/mailpitthrough Docker's embedded DNS (127.0.0.11) per request.
Changed
- API keys now document the real
prm_<prefix>_<secret>format (README previously claimedpk_live_).
[0.1.0] - Initial commit
- Phase 0 foundation: Go/Gin backend, Better Auth service, SolidJS dashboard, Postgres + Dragonfly, nginx gateway, Docker Compose stack.