Guide · Doing
Connect
Read this the first time you add a database, or when a connection opened read-only and you want to know why. Every connection goes through the same two-step dialog, and every one opens locked unless you say otherwise.
Reach the server
- Press
⇧⌘Non macOS orCtrl+Shift+Non Windows. The dialog opens asConnect a database. - Pick the engine.
Alt+1toAlt+4choose PostgreSQL, MySQL, MariaDB and SQLite, in that order. - Give it the address. Paste a URL such as
postgresql://app@db.internal:5432/commerceintoConnection URL, or fill inHost,Port,Username,PasswordandDatabase. - Click the TLS chip under the fields if this server needs another mode.
- Click
Connect. The button readsConnecting…while it works.
A URL already on your clipboard shows up as Connection URL on your clipboard, with Use it.
A password inside the URL moves to the Password field and is never kept in the URL. SQLite asks
for a Database file instead and stores only its path. Database is marked Required on every
engine except PostgreSQL.
There's no test button. Connect is the test, and a failure keeps you on this step. A wrong
field is marked with Seqora couldn’t connect.. Anything else says what went wrong and names
the engine, such as "PostgreSQL rejected the credentials for “app”. Check the username and
password.", and a slow or TLS failure offers a one-click Retry with a 30s timeout or
Retry without certificate verification.
Other ways in
Import connections…, at the bottom of this step and in the command palette, reads.pgpass,pg_service.conf, a MySQL option file, a.envfile, and the saved connections of DBeaver, DataGrip and TablePlus. Nothing is uploaded. Those tools' encrypted passwords aren't read, so an imported connection asks for its password the first time you connect. Imported connections start offline and locked.- A
seqora://connect?url=…link opens this dialog with the URL filled in and the bannerFrom a link. Check it before you connect.. Only PostgreSQL, MySQL and MariaDB URLs are accepted. - A
.sqlitefile double-clicked in the OS, dropped on the window, or opened with⌘OorCtrl+Oopens on its saved connection, or lands here already tested and waiting for a name.
TLS modes
| Mode | What the dialog says |
|---|---|
Prefer |
Uses TLS when the server offers it. |
Require |
Refuses to connect without TLS. |
Verify |
Requires TLS and checks the certificate and hostname. |
Off |
Sends traffic unencrypted. Use only on trusted networks. |
Use Verify for anything on the public internet. Require encrypts but doesn't check who
answered.
Through a bastion
- Click the
No SSH tunnelchip. - Turn on
Connect through an SSH tunnel. - Pick a host listed under
From ~/.ssh/config, or fill inSSH host,PortandSSH username. - Choose how to sign in.
Private keytakes a key file such as~/.ssh/id_ed25519and an optionalPassphrase.Passwordtakes anSSH password.SSH agentuses the keys your agent already holds: ssh-agent, Pageant or 1Password. - Click
Connect. The first time you reach a server, the panel stops atTrust this SSH server?with the host's fingerprint. Check it against the one the server's administrator gave you, then clickTrust and connect.
The chip now reads SSH via bastion.internal. A passphrase or SSH password is stored
encrypted on this device, next to the database password. If the server's key changes later,
Seqora refuses to connect and offers Forget the saved host key, which you should click only
when you know why the key changed.
The third chip sets Connection timeout in seconds, 10 unless you changed the setting of the
same name.
Name it and place it
After Connect succeeds the dialog shows Connected · PostgreSQL and the server version.
- Type a
Name, for examplecommerce-primary. - Choose the
Databasefrom the list the server reported. - Choose or type a
Workspace. A new one asks for aNew workspace color. - Choose or type an
Environment, such asdev,stagingorprod. - Leave
Open read-onlyon unless you are about to write. - Click
Save connection.
The connection appears in the sidebar under its workspace and environment, with a lock beside it.
Where the password goes
Seqora keeps connection profiles and passwords in a SQLite database on your computer, encrypted
with SQLCipher. The key to that database lives in Windows Credential Manager on Windows and
your login keychain on macOS. Nothing goes into a config file. If the keychain refuses to hand
over the key, Seqora shows Seqora could not unlock your workspace instead of opening the store.
Why it opens locked
Lock writes by default, in Settings › Connections and Safety, is on from install. So every new
connection starts with Open read-only on, its lock reads Locked · read-only, and the status
bar shows Read-only.
A locked connection refuses anything Seqora cannot prove is a read, with "This connection is
locked and only read-only SQL can run." It also disables Begin and Commit, stops table
edits with "Unlock the connection to change rows.", and blocks applying a schema design.
To unlock:
- Click the lock beside the connection in the sidebar, or the
Locked · read-onlybutton in an editor's header. - Click
Unlock connectionin theUnlock connection?dialog.Keep lockedorEscbacks out.
The lock now reads Unlocked · writes enabled. To lock it again, click the same lock, or run
Lock writes on commerce-primary from the command palette.
What naming an environment prod changes
There is no production checkbox. An environment with prod or production as one of its
words, such as prod-eu, EU Prod or prod2, changes three things:
Open read-onlyis on even ifLock writes by defaultis off, with the note "On by default for production. Unlock from the sidebar when you need to write."Review staged changesshows aProductionbadge, its apply button turns red, and it needs⌘↩orCtrl+Enterrather than a bareEnter.- Applying a schema design asks you to type the database name: "This is a production
connection. Type
commerceto apply."
An environment called live gets none of this, and neither do pre-prod, non-prod or
preprod, because the word before prod says they aren't. Name it for what it is. The same
rule decides which imported connections open locked and when Analyze asks before a write.
Caveats
- The lock is Seqora's, not the server's. For a guarantee, connect as a database user that only
has
SELECT. - SQLite connections are a file path. There is no TLS or SSH tunnel to set.
- Seqora speaks SSH itself rather than running your system
ssh. It reads~/.ssh/configfor each host'sHostName,Port,UserandIdentityFile, andknown_hostsfor keys it has already seen. Other options in the config, such asProxyJump, are not followed. - Changing
Lock writes by defaultaffects connections you add afterwards. Existing ones keep their lock state.