Make the model · 7
Connecting a source
The whole answer on sources: SQL Server, PostgreSQL, MySQL, MariaDB, Snowflake and Databricks, or files uploaded as CSV. Read-only, always. A sample database is on every account's list before anyone connects anything.
A database
- Someone adds a connection. They pick the engine, give the server and a login, and test it before saving. The login should be one that can only read.
- The secret is encrypted before it is stored, and never sent back. When the connection is opened again to edit, the page is told only whether a password is set.
- Every app reads the database through that one saved connection. Grammar, Starmaker, Palmtree, Vision and Reason all open it the same way, with the engine's own driver.
- Each statement is checked to be a plain read before it runs. One that is not is blocked, and every run is logged with who ran it and when. Nothing is ever written to their database.
Files, as CSV
- They upload files in the same place. Each column's type is worked out and shown with the first few rows, so they see what they are about to keep before they save.
- Each file becomes a table. In a schema of their own on our SQL, and all their files together appear as one connection, used like any database.
- A query on those tables may name only their own. Anything outside their own schemas, another person's or the system's, is refused by name before it runs.