mirror of
https://github.com/Dvorinka/Primora.git
synced 2026-10-28 07:41:23 +00:00
fix: address PR #1 security review — drop platform seeds, seal db passwords
- Remove managed connection seeding: platform-postgres/dragonfly carried the backend's own DATABASE_URL/DRAGONFLY_URL into tenant projects where any member could run arbitrary DBX queries against core tables (Codex P1). NewPlatformService loses the seeds param; firstPartyDBSeeds deleted. - Seal db_connections passwords with the existing AES-256-GCM encryptor (enc:v1:<b64> marker); decrypted only in dbxArgsFor. Legacy plaintext values still read, but migration 00008 strips them (Codex P1). - Migration 00008: delete is_managed rows, drop plaintext password keys. - dbxConnectionName uses the full project UUID — the 8-hex prefix could collide and alias another project's credentials (Codex P2). - ci.yml triggers on master, not the nonexistent main/develop branches. - demo-mode stubs renamed to user-managed connections; CHANGELOG notes under Unreleased. Authored By: TDvorak <[email protected]> Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
55edbf8b56
commit
fffac52295
7 files changed
+85
-95
No files matched your search
@@ -0,0 +1,11 @@
|
||||
-- +goose Up
|
||||
-- Managed seeds stored the platform's own DATABASE_URL/DRAGONFLY_URL in
|
||||
-- tenant-visible rows; the feature is removed, so drop the leaked rows.
|
||||
DELETE FROM core.db_connections WHERE is_managed;
|
||||
-- Passwords are AES-GCM sealed app-side from now on; strip any plaintext
|
||||
-- password left in existing configs (users re-enter on next edit).
|
||||
UPDATE core.db_connections SET config = config - 'password' WHERE config ? 'password';
|
||||
|
||||
-- +goose Down
|
||||
-- Deleted managed rows and stripped passwords are not recoverable.
|
||||
SELECT 1;
|
||||
Reference in new issue
Block a user