---json
{
"aliases": [
{ "path": ":docs:conf:variable_file" },
{ "path": ":docs:connection:vault" }
],
"low_quality_page": "false",
"page_id": "tolx54t1e4mfb0i75vixb"
}
---
====== Tabul Configuration Vault (.tabul.yml) ======
===== About =====
The ''Tabul configuration vault'' is a [[docs:conf:conf|configuration file]] named ''.tabul.yml'' that stores:
* [[global_env|global env parameters]]
* [[..:connection:connection|connections]]
* [[:docs:service:service|services]]
and is located:
* at the [[:docs:app:app|root of your app]]
* or in your user home directory ''%%$HOME\.tabul%%''
===== Location =====
By default,
* the file is searched recursively from the working directory
* if:
* found, it defines the [[docs:app:app|app home directory]]
* not found, the path is in the user ''%%$HOME\.tabul%%'' directory.
You can get the location of the configuration vault with the [[docs:tabul:env:list|variable list command]].
tabul env list conf
attribute value origin description
--------- -------------------------------- ------- ------------------------
CONF /home/tabulify/.tabul/.tabul.yml Default The conf vault file path
===== Default creation if not found =====
By default, if a configuration vault file does not exist, it will be created with:
* the [[:docs:connection:howtos|howtos connections]]
* and [[:docs:service:howtos|howtos services]]
Init env
tabul data drop --no-strict-selection .tabul/.tabul.yml@home
tabul data print --type text .tabul/.tabul.yml@home
kind: tabul
spec:
connections:
mysql:
comment: The default mysql data store
driver: com.mysql.cj.jdbc.Driver
password: my-secret-pw
uri: jdbc:mysql://localhost:3306/howto
user: root
varchar-default-precision: 2000
oracle:
comment: The howto oracle connection
driver: oracle.jdbc.OracleDriver
login-statements: ALTER SESSION SET CURRENT_SCHEMA = tabulify
name-quoting-enabled: false
password: oracle
uri: jdbc:oracle:thin:@localhost:1521/freepdb1
user: system
postgres:
comment: The howto postgres connection
driver: org.postgresql.Driver
password: welcome
uri: jdbc:postgresql://localhost:5432/postgres
user: postgres
smtp:
comment: HowTo Smtp Connection
from: support@tabulify.com
to: support@tabulify.com
uri: smtp://localhost:1025
sqlite:
comment: The sqlite default connection
driver: org.sqlite.JDBC
uri: jdbc:sqlite:////home/tabulify/.tabul/sqlite.sqlite3
sqlite_target:
comment: The default sqlite target (Sqlite cannot read and write with the same
connection)
driver: org.sqlite.JDBC
uri: jdbc:sqlite:////home/tabulify/.tabul/sqlite_target.sqlite3
sqlserver:
comment: The default sqlserver connection
driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
password: TheSecret1!
uri: jdbc:sqlserver://localhost:1433;encrypt=true;trustServerCertificate=true
user: sa
services:
mysql:
environment:
MYSQL_DATABASE: howto
MYSQL_ROOT_PASSWORD: my-secret-pw
image: mysql:5.7.37
ports:
- 3306:3306
type: docker
oracle:
environment:
APP_USER: tabulify
APP_USER_PASSWORD: oracle
ORACLE_ALLOW_REMOTE: 'true'
ORACLE_DISABLE_ASYNCH_IO: 'true'
ORACLE_PASSWORD: oracle
image: ghcr.io/gvenzl/oracle-free:23.7-slim-faststart
ports:
- 1521:1521
type: docker
postgres:
environment:
POSTGRES_PASSWORD: welcome
image: postgres:13.21
ports:
- 5432:5432
type: docker
smtp:
environment:
MP_LABEL: Tabulify HowTo Service
MP_TENANT_ID: tabulify
image: axllent/mailpit:v1.25.1
ports:
- 1025:1025
- 8025:8025
type: docker
sqlserver:
environment:
ACCEPT_EULA: Y
MSSQL_SA_PASSWORD: TheSecret1!
image: mcr.microsoft.com/mssql/server:2022-CU19-ubuntu-22.04
ports:
- 1433:1433
type: docker
===== Cli Command =====
Advanced user will modify the file directly with a text editor but
for convenience, we provide also:
* the [[docs:tabul:connection:start|Tabul Connection module]]
* the [[docs:tabul:env:start|Tabul Env module]]
In every [[docs:tabul:tabul|tabul command]], you can specify the location of this file with:
* the ''%%--conf%%'' [[docs:tabul:global|global option]].
* or the ''TABUL_CONF'' [[docs:conf:os|OS environment variable]]
===== Secret =====
The configuration vault supports [[docs:conf:secret|secrets]] as value.
You can:
* encrypt any value with [[docs:tabul:vault:encrypt|vault encrypt]]
* or define [[:docs:conf:os|environment variables]] as value
===== Format =====
The ''.tabul.yml'' file is a [[:docs:common:manifest|manifest]] where the configurations are stored in the ''spec'' field
kind: tabul
spec:
# List of global attributes
env:
key1: value
key2: value
# List of connections
connections:
connectionName1:
# uri
uri: uri
# description
description: description
# user
user: user
# password
password: ${MY_PASSWORD}
# Native Driver extra attributes
natives:
# for example, for jdbc sql driver
applicationName: myName
connectionName2:
uri: xxx
# List of Services
services:
name:
type: docker
image: xxx
...