---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 ...