Connections
Connection types:
- Knex
Knex
Properties
client: enum
: Required - Should besqlite3
orsqlite
to connect to SQLite.connection: object
:filename: string
: Required - The path to the SQLite file (relative to the project root).
useNullAsDefault: boolean
: If true, undefined keys are replaced with NULL instead of DEFAULT.
Examples
Specify filename:
connections:
- id: sqlite
type: Knex
properties:
client: sqlite
connection:
filename: ./mydb.sqlite
Different connections in deployment and production environments:
connections:
- id: knex
type: Knex
properties:
client:
_secret: KNEX_CLIENT
connection:
_json.parse:
_secret: KNEX_CONNECTION
Environment variables in development:
LOWDEFY_SECRET_KNEX_CLIENT = sqlite
LOWDEFY_SECRET_KNEX_CONNECTION = {"filename": "./mydb.sqlite"}
Environment variables in production:
LOWDEFY_SECRET_KNEX_CLIENT = postgres
LOWDEFY_SECRET_KNEX_CONNECTION = {"user": "dbuser", "host": "database.server.com", "database": "mydb", "password": "secretpassword"}
Requests
Request types:
- KnexBuilder
- KnexRaw
KnexBuilder
Properties
query: object[]
: Required - SQL query builder array. An array of objects, with a single key which is the name of the knex builder function. The value should be an array of arguments to pass to the builder function.tableName: string | object
: The name of the table to query from.
Examples
Build a query:
id: knexBuilder
type: KnexBuilder
connectionId: knex
properties:
query:
- select:
- '*'
- from:
- users
- where:
- name
- _state: name
Using tableName
:
id: knexBuilder
type: KnexBuilder
connectionId: knex
properties:
tableName: users
query:
- select:
- '*'
- where:
- name
- _state: name
Aliases:
id: knexBuilder
type: KnexBuilder
connectionId: knex
properties:
tableName:
a: tableA
b: tableB
query:
- select:
- aField: 'a.field'
- bField: 'b.field'
- limit:
- 1
KnexRaw
Properties
query: string
: Required - SQL query string.parameters: string | number | array | object
: SQL query parameters.
Examples
Simple raw query:
id: knexRaw
type: KnexRaw
connectionId: knex
properties:
query: SELECT * FROM "my_table";
Query with named parameters:
id: knexRaw
type: KnexRaw
connectionId: knex
properties:
query: select * from users where name = :name
parameters:
name:
_state: selected_name
Query with positional parameters:
id: knexRaw
type: KnexRaw
connectionId: knex
properties:
query: select * from users where name = ?
parameters:
- _state: selected_name
Reference a .sql
file:
id: knexRaw
type: KnexRaw
connectionId: knex
properties:
query:
_ref: my_query.sql