Skip to main content
Firebird is an open-source relational database management system used by many ERP and accounting systems. A common use case is the SCI Sistemas Contábeis “Único” ERP, which exposes its Firebird database for read access through its BI Connection module.

Configuring Firebird as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Firebird option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need the connection credentials for your Firebird database.
The database user must have read access to the tables and views you want to extract. We recommend using a dedicated read-only user.
Because Nekt runs in the cloud, it needs network access to the Firebird port (default 3050). If the database is on a private network, expose it securely, ideally through an SSH tunnel (see step 3), or a tightly firewalled port forward restricted to Nekt’s egress IPs.

2. Configuration Options

  • Host: The hostname or IP address of your Firebird server. Use 127.0.0.1 when connecting through an SSH tunnel.
  • Port: The port number for your database connection. The default port for Firebird is 3050.
  • Database File Path: The path to the database file on the server, for example C:/SCI/BANCO/VSCI.SDB.
  • User: The username for authenticating with the database.
  • Password: The password for the database user.

Advanced Settings

  • Charset: The connection charset. SCI Único databases use WIN1252 (the default).
  • Role (optional): The Firebird role to connect with. Leave blank if not used.
  • Filter Tables (optional): An allowlist of table/view names to discover (case-insensitive). Strongly recommended for large databases, an SCI Único base has around 3,600 tables, and discovering all of them is slow. Note: Firebird discovery lists every table, granted or not. A read-only user will see tables it cannot SELECT, and syncing them fails with no permission for SELECT. Use this filter to match your grants.
  • Filter Table Prefixes (optional): A list of name prefixes to discover (case-insensitive), for example TEMPRESAS, VSUC, VRH. Combined with Filter Tables as a union. Also highly recommended to restrict discovery to tables your user has permission to access.
  • Chunk Size: The number of rows to fetch at a time. Default is 20000. Set to 0 to fetch all rows at once (not recommended for large tables).
  • Use Batch Query: Use keyset pagination with retry logic for large tables. Requires a primary key.

3. SSH Tunnel (optional)

If your Firebird database is behind a firewall or on a private network, you can connect through an SSH tunnel (bastion host).
1

Enable SSH Tunnel

Toggle the SSH Tunnel option to enabled.
2

Enter SSH Server Details

  • SSH Host: The hostname of your bastion/jump server.
  • SSH Port: The SSH port (default: 22).
  • SSH Username: Your SSH username.
3

Provide Authentication

Use either a password or a private key:
  • SSH Password: Password for the SSH server, OR
  • SSH Private Key: PEM-formatted private key for key-based authentication. If your key requires a password to decrypt it, you must also provide the SSH Password.
When tunneling, set Host to 127.0.0.1 so the connection is routed through the tunnel to the remote database.
Host resolution: The Host field is resolved by the bastion server, not by the Nekt connector. If your SSH key is restricted by a permitopen="HOST:PORT" directive on the bastion, the Host value you configure must match that string exactly (a hostname vs. IP address mismatch will be refused as “administratively prohibited”).

4. Select streams

After configuring your connection, Nekt will discover the available tables and views from your Firebird database (scoped by your table filters). Select the tables you want to sync.
Selecting only the columns you need significantly speeds up extraction over remote connections, since Firebird transfers each row over the wire.

5. Configure data streams

For each selected table, you can configure:
  • Replication method: Choose between Full Table (complete sync each run) or Incremental (only new/updated rows based on a replication key column).
  • Replication key: For incremental sync, select the column that tracks changes (typically a timestamp or auto-incrementing ID column).

6. Verify and save

Review your configuration and click Save. Nekt will begin syncing data from your Firebird database on the configured schedule.

Supported Data Types

Firebird data types are automatically mapped to the appropriate types in Nekt’s Catalog:

Implementation Notes

SSH Tunnel Teardown & Authentication

To ensure runs gracefully terminate, the connector strictly handles SSH tunnel teardowns. FirebirdSQL sockets lack timeouts; if an SSH tunnel is dropped before pooled database connections are cleanly disposed, the underlying connection will block indefinitely on a network read, causing syncs to hang. Additionally, SSH authentication exclusively uses the provided configurations. It intentionally bypasses any local or runtime SSH agents (allow_agent=False) and typical host key directories, guaranteeing that connections only succeed using your explicitly provided password or decrypted private key.