How-To Guide
navis init # creates spec.toml — edit the paths inside
navis-extract spec.toml # pull data and definitions from source
navis analyze spec.toml # portfolio assessment + License Request PDF
# → email PDF to navis@cepheusonline.com
navis verify-license spec.toml # confirm license is valid
navis convert spec.toml # convert to Power BI
navis-deploy spec.toml # wire data so output opens populated
# Open the converted output in Power BI — your reports are ready.
Requires Python 3.9, 3.10, or 3.11
Requires access to the Qlik Sense Engine (Desktop or Server).
navis is the short form. This guide uses navis, navis-extract, and navis-deploy throughout. If you have more than one Navis migration package installed on the same machine, use the explicit forms — navis-qlik-pbi, navis-qlik-pbi-extract, navis-qlik-pbi-deploy — so the right converter is invoked.
All Navis commands read from a configuration file you point them at. Run init to generate one with all required fields pre-filled:
navis init
This creates spec.toml in your current directory. You can pass a different filename if you prefer — every subsequent command just takes the file as its argument. Open it and fill in the paths:
[pipeline]
input = "/path/to/source/files" # folder containing your source files
working = "/path/to/working" # staging folder (created automatically)
output = "/path/to/output" # where converted output is written
[analyze]
license_output_folder = "/path/to/license-requests" # where the License Request PDF goes
[convert]
license = "/path/to/cepheus-license.pdf" # the license file Cepheus sends you
One file, every command. Every step in the pipeline reads from the same configuration file. Set your paths once and run each command in sequence — no flags, no other arguments to remember.
Convert Qlik Sense / QlikView workbooks to Microsoft Power BI. Proven calculation equivalence, tamper-evident audit trails, airgapped operation.
[general]
epoch = "2025-11-14T09:00:00-05:00" # pin this — same epoch reproduces byte-identical output
[pipeline]
input = "C:/Workbooks" # folder of .navis-qlik files (produced by extract step)
output = "C:/Output"
working = "C:/Working" # staging folder for pre/deploy steps
[analyze]
license_output_folder = "C:/Reports"
[convert]
license = "cepheus-license.pdf"
[extract]
app = "C:/Apps/Sales.qvf" # Qlik app file
engine_url = "ws://localhost:4848/app/engineData" # or Qlik Server websocket
[deploy]
# Reads [extract].engine_url to reconnect and export table data
Every command reads from spec.toml. Relative paths resolve from the spec file’s directory.
The Qlik Sense source platform is either a proprietary binary or lives on a server. The extract step connects to the Qlik Sense Engine (local Desktop or Qlik Server), exports each app's structure as a portable .navis-qlik file, and saves the underlying data to your working folder. The analyze and convert steps then run entirely offline — no engine, no server, no network required.
Run once per source workbook. The .navis-qlik artifact is portable. You can produce it on a machine with access to the Qlik Sense engine, then carry the artifact to an airgapped machine to analyze and convert.
Configure the Qlik Engine WebSocket URL in [extract]:
[extract]
engine_url = "ws://localhost:4848/app/engineData"
app = "C:/Apps/YourApp.qvf"
navis-extract spec.toml
It reads your source folder, saves the exported definitions and data to your working folder, and produces a working.sig integrity manifest that the analyze and convert steps verify to detect tampering.
Scan .navis-qlik artifacts (produced by the extract step) to assess what can be automatically migrated before committing to a conversion.
navis analyze spec.toml # Analyze all workbooks
navis analyze spec.toml --summary-only # High-level numbers only
navis analyze spec.toml --no-recursion # Top-level folder only
Submit the License Request PDF to navis@cepheusonline.com. The PDF embeds cryptographic fingerprints of your workbooks. Cepheus replies with a license file.
Why checksums? The license is tied to your workbook files as they existed when analyzed. Modified files won’t match and conversion is blocked — preventing accidental conversion of untested workbooks.
navis analyze and save the License Request PDF[convert]
license = "cepheus-license.pdf"
navis verify-license spec.toml
| Status | Meaning |
|---|---|
| VALID | Licensed and ready to convert |
| MISMATCH | Licensed, but file has changed since the license was issued |
| UNLICENSED | Not covered by this license |
Checksum mismatch? The workbook file changed after analysis. Re-run analyze and request an updated license.
navis convert spec.toml
For each workbook: a .pbip folder (Power BI Project), plus a _CEC.zip Evidence Capsule.
Navis translates Qlik Sense expressions to their Power BI equivalents using a formal atom-by-atom mapping that has been tested against actual Qlik Sense output. If an expression cannot be converted with verified accuracy, Navis flags it in the Evidence Capsule rather than guessing.
Windows only. The converter produces a .pbip project with the correct semantic model and DAX measures, but the M queries point to placeholder data sources. The deploy step writes the source data as CSV files alongside the project and repoints the M queries at those CSVs — so you can open the project in Power BI Desktop and see live data immediately.
Verification aid only. The CSV data and M query rewrites are a temporary scaffold for demo and QA. Your data team will reconnect to production sources using Power BI Desktop's Change Source dialog or the Admin portal.
Connects to the Qlik Engine (using [extract].engine_url and [extract].app) and exports each data-model table to CSV.
[deploy]
# No extra [deploy] keys required — reads [extract].engine_url / [extract].app automatically
navis-deploy spec.toml
After the deploy step, open the .pbip file in Power BI Desktop — all visuals will populate with data. Review the conversion, check the Evidence Capsule PDF for any fidelity gaps, and hand off to your data team.
Navigate to the _wired folder for any converted workbook and open the .pbip file in Power BI Desktop (File → Open report). Your report pages load with data immediately.
You're done. Walk through each report page and compare against the original. Open _CEC.zip for the full audit PDF. When satisfied, hand the wired project off to your data team to reconnect to the production data source.
In Power BI Desktop: Home → Transform data → Data source settings. Select the CSV source and click Change Source. The semantic model and all measures are already correct — no other changes needed.
| Qlik Sense | Power BI |
|---|---|
| Qlik sheets / chart objects | Power BI report pages with visuals |
| Qlik dimensions and measures | DAX measures and column references |
| Master items (measures) | DAX measures in the semantic model |
| Master items (dimensions) | Columns and hierarchies in the semantic model |
| Aggregations (Sum, Count, Avg, etc.) | Equivalent DAX aggregate functions |
| Set expressions | DAX CALCULATE filters |
| IF/PICK/MATCH expressions | DAX IF / SWITCH |
| String, date, and math functions | Equivalent DAX functions |
| Data model (tables, keys, relationships) | Power BI semantic model with TMDL |
| Filters on sheets / objects | Power BI page / visual filters |
| Variables | Preserved as model metadata |
Review the PDF report inside the Evidence Capsule for anything flagged:
SalesDashboard/
SalesDashboard.pbip <-- open this in Power BI Desktop
SalesDashboard.Report/
definition.pbir
report.json
SalesDashboard.SemanticModel/
definition.pbism
definition/
model.tmdl
database.tmdl
tables/
_CEC.zip <-- Evidence Capsule
Open SalesDashboard.pbip in Power BI Desktop. The semantic model and all DAX measures are fully defined — you only need to point the data source at your production data.
The _CEC.zip Evidence Capsule contains the PDF audit report with formula-level conversion evidence, SHA-256 checksums, and any fidelity gaps.
_CEC.zip)
Every conversion produces a _CEC.zip alongside the converted output. It contains:
The capsule is tamper-evident: any modification to the converted output invalidates the checksums in the PDF. Keep _CEC.zip alongside your converted project as your audit record.
The Evidence Capsule PDF is cryptographically signed by Cepheus. The signature certifies:
Signature verification does not require internet access. The public key is embedded in the license file.
Every command writes a structured log alongside the output. Log entries include:
Logs are in JSON Lines format for easy ingestion into SIEM or audit tooling.
| Error | Fix |
|---|---|
| MISMATCH | File changed after analysis. Re-run analyze, request new license. |
| UNLICENSED | File not in the license. Check path matches analyzed workbook. |
| EXPIRED | License past validity date. Contact navis@cepheusonline.com. |
| INVALID_SIG | License file corrupted or modified. Request replacement. |
| Symptom | Fix |
|---|---|
| No workbooks found | Check the input path in your spec file. Use absolute paths. |
| Fidelity gaps in every workbook | Expected — review the PDF. Gaps are documented, not hidden. |
| Output folder not created | Create the parent directory first; Navis creates the final folder. |
For other issues: navis@cepheusonline.com
To analyze or convert a specific subset of workbooks, name the batch in your spec file and list the files you want:
[pipeline]
input = "my_batch"
working = "C:/Working"
output = "C:/Output"
[pathlists.my_batch]
base = "C:/Workbooks"
files = [
"Sales.twbx",
"Finance.twbx",
"subfolder/HR.twbx",
]
Each path in files is resolved relative to base. Use a named batch when you want to hand-pick specific files rather than converting an entire folder.