Skip to content

Release 1.13.0

Choose a tag to compare

@github-actions github-actions released this 12 Sep 17:46

OWA 1.13.0 is a major release that sets the stage for the upcoming 2.0 branch of rleases. As such, there are multiple changes to the admin interface, a renovation of existing features and code base, as well as several exciting new features (custom reports, etc.).

Read the upgrade notes before istalling as there are multiple database schema updates and changes to OWA admin urls. While it is a large release with many moving parts, there should be no breaking changes.

See the wiki for updated documentation.

Upgrading

1. Apply the schema updates. This release moves the base schema from 16 to
27
:

php cli.php cmd=update

Nothing periodic runs until updates complete — the job scheduler refuses every job while updates are pending. The updates create the organization, property, setting, notification, custom report and goal event tables, and migrate existing goals into them. They are idempotent, so a run that stops part way can be run again.

2. Report URLs have changed. Reports are now reached through one action with a report id, rather than an action per report:

before:  index.php?do=base.reportPages&siteId=...
now:     index.php?do=base.report&reportId=pages&siteId=...

There is no redirect from the old form — an old link answers 404. Anything outside OWA that points at a report URL (bookmarks, dashboards, emailed links) needs updating. Links inside OWA are already correct. The report ids are the filenames in modules/Base/reports/.

3. Some reports are gone. Eight detail reports whose parent report already showed the same thing were retired, along with the transaction detail report. Those ids answer 404 rather than redirecting.

4. cmd=activate now installs. It creates a module's tables and records its schema version, which is what the Modules screen's Activate control has always done — previously the command only set the active flag, leaving a module switched on with no tables. cmd=install-module is deprecated and will be removed in 2.0; it still works and does the same thing.

If a module was enabled with the old command, php cli.php cmd=instance-info names it as "active, but never installed", and running cmd=activate on it repairs it.

Existing site ids do not change. Site identity is now minted rather than derived from the domain, but no update rewrites existing values — tracking snippets already deployed keep working.

Check the result:

php cli.php cmd=instance-info

New in this release: one report covering the environment, module and schema state, the scheduler, partitioning, data freshness, queue depth and what the instance holds.

New

  • Reports are configuration (#1044, #1047). Around sixty reports are now definitions rather than controllers, and users can build their own custom reports from the same pieces.
  • Organization, Property and Observation Profile (#1063). A tracked website and the way it is observed are separate things, and settings live at the tier they belong to.
  • Goal events (#1064). Goals were twenty numbered slots per site; they are now rows, modelled for what v2 needs.
  • cmd=instance-info (#1082). The whole instance in one report, safe to run at any time.
  • A signed-in user can edit their own account (#1070).
  • Dimension catalog keyed by entity, and scopable (#1049); metrics are declarations (#1053); the tracking wire surface is enumerated in one config file (#1055, #1058).
  • Campaign tags are named apart from the source they resolve to (#1056).
  • Timezone is asked for at install (#1043), because it is baked into every fact row and cannot be changed retroactively.
  • Site identity is minted, not derived from the domain (#1050), so one domain can be measured by more than one observation profile/tracker.

Fixed

  • A tracking request could overwrite values the server derives (#1054). A parameter whose name matched a column was written to that column, including the observed IP address and the event timestamp.
  • Schema updates are idempotent in both directions (#1065), and addColumn() now works for an indexed column (#1066)
  • Activating a module no longer skips its updates (#1083). Re-running an install advanced the schema version without migrating the tables, permanently skipping everything in between.
  • Installer now checks for build packages (#1081) instead of answering every request with a blank 500.
  • The installer no longer loads the config file it just wrote (#1072).
  • An unset column is written as NULL, not its type's zero (#1045).
  • A mistyped password no longer ends the password reset (#1059), and the login and reset screens no longer say two things they shouldn't (#1060).
  • doAction() no longer discards what errorAction() returned (#1071), which blanked the page on the most ordinary form mistakes.
  • userName is a column on the fact row, not a table to join (#1051).

Also

  • Three vulnerable build-toolchain dependencies patched (#1075).
  • The schema updates are now actually exercised by CI against a database with a past, data included (#1067, #1068).
  • Migration and modernization leftovers removed (#1048, #1074, #1076).