Skip to main content
The connector only uses sources you list on the server. Databases go in connections.json. Each entry has a name, a driver and a connection string. Timbal refers to the connection by its name only; the connection string, and any password in it, never leaves the server. File shares are separate: see File shares.
If you’re used to the Power BI gateway, this is the main difference: there is no screen in Timbal where you add a data source with its server and password. Connections are defined here, on the gateway server, and appear in Timbal by name once the service restarts.
After editing, restart the service and check the result:
doctor really connects to every database in the file and reports, per connection, whether it worked and why not.
Save the file as UTF-8 without BOM. Notepad on older Windows versions and PowerShell’s Set-Content -Encoding utf8 add a byte-order mark, and the file then fails to parse. Also remember that \ must be doubled inside JSON strings: write "CORP\\svc_timbal", not "CORP\svc_timbal".

Fields

Use a database account with read-only permissions unless you need writes.

SQL Server authentication

Many Business Central and NAV databases only allow Windows logins, so sql fails with Login failed for user. Use integrated with a dedicated service account:
1

Run the service as a domain account

A group managed service account (gMSA) is best because no password is stored. Note the trailing $ and the empty password:
For a normal domain user, pass its password instead of "".
2

Grant it read access in SQL Server

By default the service runs as NT AUTHORITY\NetworkService, which reaches a SQL Server on another machine as the computer account (CORP\SERVERNAME$). That account rarely has a login, hence Login failed for user 'CORP\SERVERNAME$'.

Reaching the server

Encryption

File shares

Directories the connector may read are listed in config.json, under filesystems. They are not entries in connections.json. The key is the name Timbal uses for that share; the path stays on the server. On Windows and macOS the installer already created this file. Add filesystems and leave the other keys alone (the control-plane URL and the enrollment token). On Linux those live in connector.env and config.json does not exist yet: create it with only the map.
path is the only field. It is a directory on the server: a local folder, or a share already mounted there. In JSON, double Windows backslashes ("D:\\Shares\\invoices"). Save as UTF-8 without BOM, same as connections.json. The service account has to be able to read the directory. On Windows that is NT AUTHORITY\NetworkService unless you changed the service account. On Linux it is the timbal-connect user, and the unit sets ProtectHome=true, so a path under /home is hidden from the service. Restart the service as above. doctor checks each share and reports whether the directory is readable. If it says a remote local-config override is active, that override replaces this map until you run timbal-connect local-config clear and restart.

Next steps

Troubleshooting

When doctor or the service log names a failure.

Network requirements

If the connector stays offline after it starts.