salt.pillar.sqlcipher

Retrieve Pillar data by running a SQLCipher query

New in version 2016.3.0.

Python SQLCipher support is provided by the pysqlcipher Python package. You need this module installed to query Pillar data from a SQLCipher database.

This module is a concrete implementation of the sql_base ext_pillar for SQLCipher.

maturity

new

depends

pysqlcipher (for py2) or pysqlcipher3 (for py3)

platform

all

Configuring the sqlcipher ext_pillar

Use the 'sqlcipher' key under ext_pillar for configuration of queries.

SQLCipher database connection configuration requires the following values configured in the master config:

  • sqlcipher.database - The SQLCipher database to connect to. Defaults to '/var/lib/salt/pillar-sqlcipher.db'.

  • sqlcipher.pass - The SQLCipher database decryption password.

  • sqlcipher.timeout - The connection timeout in seconds.

Example configuration

sqlcipher:
  database: /var/lib/salt/pillar-sqlcipher.db
  pass: strong_pass_phrase
  timeout: 5.0

Complete Example

sqlcipher:
  database: '/var/lib/salt/pillar-sqlcipher.db'
  pass: strong_pass_phrase
  timeout: 5.0

ext_pillar:
  - sqlcipher:
      fromdb:
        query: 'SELECT col1,col2,col3,col4,col5,col6,col7
                  FROM some_random_table
                 WHERE minion_pattern LIKE ?'
        depth: 5
        as_list: True
        with_lists: [1,3]
class salt.pillar.sqlcipher.SQLCipherExtPillar

This class receives and processes the database rows from SQLCipher.

salt.pillar.sqlcipher.ext_pillar(minion_id, pillar, *args, **kwargs)

Execute queries against SQLCipher, merge and return as a dict