No description
Find a file
2025-12-11 08:59:21 +00:00
dev-services fix containerization 2025-12-09 18:16:24 +00:00
docs check database connect privilege when accessing portal 2025-11-22 06:31:22 +00:00
phono-backends add test for escape_identifier() 2025-11-21 08:09:08 +00:00
phono-models apply auth checks when accessing workspace records 2025-12-10 22:33:57 +00:00
phono-namegen license as agpl-3.0-or-later 2025-11-19 09:15:11 +00:00
phono-server resolve http caching inconsistencies 2025-12-11 08:59:21 +00:00
sass improve navigation 2025-11-27 07:24:46 +00:00
static update favicon 2025-11-27 00:31:35 +00:00
svelte fix selection bug for empty portal table 2025-12-11 08:08:41 +00:00
.dockerignore fix containerization 2025-12-09 18:16:24 +00:00
.env.example clean up .env settings 2025-11-19 09:19:36 +00:00
.gitignore fix containerization 2025-12-09 18:16:24 +00:00
Cargo.lock fully migrate "interim" nomenclature to "phonograph" 2025-11-19 02:14:43 +00:00
Cargo.toml license as agpl-3.0-or-later 2025-11-19 09:15:11 +00:00
Containerfile fix containerization 2025-12-09 18:16:24 +00:00
deno.json insert rows from viewer 2025-08-15 00:16:36 -07:00
deno.lock implement timestamp editing (awkwardly) 2025-11-11 03:36:31 +00:00
LICENSE license as agpl-3.0-or-later 2025-11-19 09:15:11 +00:00
mise.toml fix containerization 2025-12-09 18:16:24 +00:00
package.json license as agpl-3.0-or-later 2025-11-19 09:15:11 +00:00
README.md check database connect privilege when accessing portal 2025-11-22 06:31:22 +00:00

Phonograph

A friendly, collaborative PostgreSQL derivative for nerds of all stripes.

Screenshot of multi-cursor editing, as well as a dropdown menu with a highlighted option labeled "PostgreSQL credentials"

Development Quickstart

The Phonograph repository comes with a mise-en-place configuration to automatically manage the development environment:

  • mise install installs language runtimes and tooling.
  • mise run build-css && mise run build-svelte builds browser assets.
  • mise run docker-services runs a Postgres container for local development.
  • mise run server compiles and runs the server with the dev profile.

Configuration

Refer to the .env.example file for configuration options. An external OAuth2 provider is required to manage authentication.

The Phonograph Authorization Model

Refer to documentation in docs/auth.md.

Copyright and License

All original source code in this repository is copyright (C) 2025 Second System Technologies LLC and distributed under the terms in the "LICENSE" file. Certain third-party assets within the "static" directory may be governed by different licenses, for example the Open Font License or MIT License, as stated by their original authors. Copies of each relevant license have been included alongside these files as needed.

LLM Code Policy

Large language model code generation is permitted sparingly in very limited cases, for example for completing clearly defined transformations which span multiple files and are not supported by conventional code actions. All code generated by LLMs must be thoroughly and frequently reviewed by the author, before committing affected work.

As of this writing, models display a strong bias towards patterns which are well represented in public open source projects. This can cause them to tend towards suboptimal one-size-fits-most or simply outdated coding practices in certain circumstances. LLM assistance should be sufficiently constrained to avoid allowing outputs to dictate or implicitly guide significant design decisions.

Furthermore, current language models broadly behave adversarily, in the sense that they are optimized to make perceiving model outputs versus non-model outputs as difficult as possible. This can make generated code uniquely challenging to review effectively. In this context, non-trivial business logic, particularly logic with security implications, may not be implemented with direct assistance from LLM tools.

Examples of LLM-assisted changes in practice:

  • Replacing SVG icons with similar webfont icons from a different icon pack. (Revision ztrnxzqv (Git a8dd49f7))

Footnotes