SQLite
SQLite
Scan tables in a local SQLite database file with no server required.
- Category
- Databases
- Source type
- SQLITE
- Produces
- table
- Links
- SQLiteProduct
SQLite is a whole database in a single file — which is why it turns up in mobile app backups, desktop applications, exported archives, and forensic images. If you have the file, you can scan it.
What you need to connect
A path to the file. There are no credentials, no host, no port — SQLite has no server and no login. The file must be readable by the scanning process, which in practice means a path on the desktop application’s machine or a volume mounted into the cluster.
What Classifyre reads
Every table in the file, or just the tables you list.
Shared behaviour · SQL databases
One asset per table or view, never one per row. The asset carries the table's structure — database, schema, table name, object type, its columns and their types, and a row-count estimate — and its content is a sample of real rows, formatted so a detector reads actual values rather than a schema dump.
How many rows, and which ones, is entirely up to the sampling strategy. Large tables are paged through by key rather than by OFFSET, so a scan that stops halfway can resume from where it left off instead of re-reading from the top.
Read-only throughout. The connector issues catalog queries and bounded SELECTs. Nothing is written back, and a read-only account is the right account to give it.
Relationships come out of the engine's own catalog: foreign keys are recorded as REFERENCE links — useful, but they move no data, so they never become a lineage hop. See Lineage.
Metadata on every asset
Asset kind · table
| Field | Type | Always present | What it is |
|---|---|---|---|
| database | string | Yes | Database or catalog name |
| table_name | string | Yes | Table name |
| table_type | string | Yes | Object type (TABLE/VIEW) |
| schema | string | No | Schema name |
| columns | object[] | No | Columns as {name, type} objects |
| row_count | integer | No | Estimated number of rows |
Lineage
Lineage
Foreign keys are read and recorded as references, which maps out how the tables relate. SQLite exposes nothing about data movement, so there is no lineage — see Lineage & Relationships for the difference.
Worth knowing
- The file is opened read-only. Scanning a database an application is actively using does not interfere with it.
- Internal
sqlite_*tables are skipped.
Configuration
Beyond the fields below, every source also has the settings shared by all of them: the sampling strategy, the detectors to run, the scan schedule, and the compute limits for its scan jobs.
Required
Without these, the source will not save.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| required | object | Yes | —no extra properties | — |
| database_path | string | Yes | Absolute or relative path to the SQLite database file (e.g. /data/app.db) | — |
Secrets
Stored encrypted and never shown again after you save them. See Configuration & Fields.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| masked | object | No | SQLite has no credentials; this section is intentionally empty.no extra properties | — |
Optional
Everything you can tune. Sensible defaults apply when you leave them alone.
| Field | Type | Required | What it does | Default |
|---|---|---|---|---|
| optional | object | No | —no extra properties | — |
| scope | object | No | Table selection scope.no extra properties | — |
| scope.include_tables | array | No | Optional table allowlist. Only tables in this list will be scanned. | — |
| scope.include_tables[] | string | No | — | — |
| scope.table_limit | integer | No | Optional cap on number of table assets extractedmin 1 | — |