Cepheus
How-To Guide
navis@cepheusonline.com
The complete pipeline at a glance
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.

Create Your Spec File

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:

spec.toml — the lines you need to edit
[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.

Cepheus Navis

Qlik Sense → Power BI Migration

Convert Qlik Sense / QlikView workbooks to Microsoft Power BI. Proven calculation equivalence, tamper-evident audit trails, airgapped operation.

spec.toml — minimal example
[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.

Extract Source Data Definitions

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.

Analyze Your Workbooks

Scan .navis-qlik artifacts (produced by the extract step) to assess what can be automatically migrated before committing to a conversion.

Complexity Ratings
Per-workbook complexity assessment across the portfolio
Automation Rate
How many calculations can be auto-converted with proven accuracy
Fidelity Gap Report
Features that need manual attention, disclosed upfront
SHA-256 Checksums
Embedded in the PDF for license issuance
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.

Get & Verify Your License
  1. Run navis analyze and save the License Request PDF
  2. Email the PDF to navis@cepheusonline.com
  3. Receive a license file back
spec.toml
[convert]
license = "cepheus-license.pdf"
navis verify-license spec.toml
StatusMeaning
VALIDLicensed and ready to convert
MISMATCHLicensed, but file has changed since the license was issued
UNLICENSEDNot covered by this license

Checksum mismatch? The workbook file changed after analysis. Re-run analyze and request an updated license.

Convert
navis convert spec.toml

What Navis produces

For each workbook: a .pbip folder (Power BI Project), plus a _CEC.zip Evidence Capsule.

How calculations are converted

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.

Deploy

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.

Open in Power BI Desktop

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.

Connecting to production data

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.

What Gets Converted
Qlik SensePower BI
Qlik sheets / chart objectsPower BI report pages with visuals
Qlik dimensions and measuresDAX 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 expressionsDAX CALCULATE filters
IF/PICK/MATCH expressionsDAX IF / SWITCH
String, date, and math functionsEquivalent DAX functions
Data model (tables, keys, relationships)Power BI semantic model with TMDL
Filters on sheets / objectsPower BI page / visual filters
VariablesPreserved as model metadata
What Needs Manual Attention

Review the PDF report inside the Evidence Capsule for anything flagged:

  • Data connections — connect to your production data source after import.
  • Unmapped expressions — set expressions or aggr() patterns without a proven equivalent; clearly marked.
  • Qlik extensions and custom objects — not converted.
  • Bookmarks and alternate states — not transferred.
  • Variables used as dynamic expression bodies — flagged for manual review.
  • Nothing is ever silently skipped. If Navis can’t convert something, it tells you.
Understanding the Output

Power BI Project folder

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.

Evidence Capsule (_CEC.zip)

Every conversion produces a _CEC.zip alongside the converted output. It contains:

  • A signed PDF with formula-level translation evidence
  • SHA-256 checksums of all input files
  • A machine-readable JSON manifest of all conversions and fidelity gaps
  • A timestamp and license reference

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.

Digital Signing

The Evidence Capsule PDF is cryptographically signed by Cepheus. The signature certifies:

  • The workbooks that were analyzed match the license issued
  • The conversion was performed by an authentic, unmodified Navis binary
  • The formula translations are the ones Cepheus has validated

Signature verification does not require internet access. The public key is embedded in the license file.

Audit Logs

Every command writes a structured log alongside the output. Log entries include:

  • Per-workbook conversion decisions and fidelity gaps
  • SHA-256 of each input file at conversion time
  • Formula translation records (source expression → target expression)
  • Any warnings or skipped elements

Logs are in JSON Lines format for easy ingestion into SIEM or audit tooling.

Troubleshooting

License errors

ErrorFix
MISMATCHFile changed after analysis. Re-run analyze, request new license.
UNLICENSEDFile not in the license. Check path matches analyzed workbook.
EXPIREDLicense past validity date. Contact navis@cepheusonline.com.
INVALID_SIGLicense file corrupted or modified. Request replacement.

Common issues

SymptomFix
No workbooks foundCheck the input path in your spec file. Use absolute paths.
Fidelity gaps in every workbookExpected — review the PDF. Gaps are documented, not hidden.
Output folder not createdCreate the parent directory first; Navis creates the final folder.

For other issues: navis@cepheusonline.com

Named Pathlists

To analyze or convert a specific subset of workbooks, name the batch in your spec file and list the files you want:

spec.toml
[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.