aWhere Manual
Releases

Release 5.0.0

The first Release after v4: what is new, what breaks and what to do, and the known issues

This page is still a draft of Release 5.0.0. It will be complete when the Release is published, and will not change after that.

Release 5.0.0 is the first Release with a number. Every image in a site is always the same Release, and changing Release goes through a command that checks readiness first. If your site is still v4, read Upgrade from v4. If it is a new site, read Install a new site.

For app users

  • The platform has a front page at /, the Portal. People who are signed in see My work, can search, and can open any App from one place. Signing in directly now brings you to the Portal instead of Drive.
  • The Help button in the account card opens the manual of the Release that app runs (Get started). If the open page is older than the platform, a bar tells you, with a Reload button. The bar does not block your work.
  • You stay signed in longer. A token lasts one day and can be refreshed for up to 30 days. When you sign out, you sign out of every app at once.
  • Drive has an Activity tab, a gallery view, and a file preview page with a Copy link button.
  • Maps now use MapLibre. The browser must support WebGL and must be able to reach the public font server, or map labels will not show.
  • The apps no longer use a service worker. A tab left open may reload itself once.

For administrators

  • Configuration becomes an admin center, with an Overview page that shows what needs attention (The Configuration admin center).
  • The Apps page is a Marketplace for installing and removing apps. The user needs the Can manage apps setting, which the system gives the admin role once by itself (Apps and the Marketplace).
  • Public access is a new switch that is off at first. When it is on, people who are not signed in can read Items shared Public (Public access).
  • Administrators with Edit the Portal page can place Blocks, check the draft and publish the front page (Edit the Portal page). The system gives the admin role this permission once by itself.
  • The System page is new. It shows every node with the Release it runs, every Migration, and the check results of each node (System).
  • Log Monitoring becomes an Audit log that cannot be edited afterwards and is kept for 365 days. Whoever reads it needs the viewAuditLog permission, and the usage numbers need viewUsage. For now the Roles page has no checkbox for these two permissions.

For installers

  • The awhere command installs, upgrades and rolls back. Every step checks before it changes anything (Install a new site, Upgrade). It works on both Docker and Apple Container.
  • A Migration is a one-time change to existing data. Each database records which Migrations have run. This Release has seven Migrations, and every one is an expand Migration, so you can roll back one Release.
  • Every node checks itself with Preflight before it starts, and reports its state at /live and /ready on port 3001.
  • There is a new container, portal, a core App that serves the front page. If you use your own proxy, send every path nobody else takes, including /, to it (If you use your own proxy).
  • The Activity stream in JetStream holds at most 2 GiB and at most 14 days (Requirements).
  • A new site works at once. The nodes make the admin and user roles, the core apps and the default map by themselves. awhere setup makes the first administrator, with a password you set or one the system makes. There is no default password (Install a new site).

Breaking changes

What changedWhat to do
select accepts only column names set to 1 or 0. If you give an alias, an expression, $$ROOT or a hidden column, the system drops it with no error.Name only the columns you want.
Authentication works only with a Bearer token or an API key. The system does not read the X-Auth-* headers, and HTTP Basic is no longer supported.Send the token or API key in a header, and set the proxy to remove X-Auth-*.
/api/image/item, /api/image/attachment and /api/image/thumbnail are gone, and the system does not accept a token in the URL.Use /api/file/<id>/content, /download and /thumbnail/<width>, and send the credential in a header or use a signed link from POST /api/file/links.
actions/aggregate accepts less. The system refuses $out, $merge, $function, $accumulator, $where, $unionWith, $graphLookup and $facet. $lookup works only on relations the Item declares.Rewrite the pipeline.
Map tiles check the right to read the Item every time. Before, anyone with a valid token or API key got the tiles of every Item. Now they get 404 if they cannot read that Item, and a web map does not draw a layer it cannot read.Check that whatever fetches tiles uses an account or key that can read the Item.
When an administrator turns on Public access, the Public level in the Share dialog means everyone, not only people who are signed in. Items shared Public before are then open to everyone. The switch is off after the upgrade.Read the list the system shows before turning it on, and ask owners to change what should not be open to Internal (Public access).
Databases are set with URLs (DATASTORE_URL and three more). The split variables of v4 no longer work, and PLATFORM_URL must be set for core-services.Node settings
You need NATS with JetStream on, MongoDB 4.2 or newer, and the content database must be a replica set.Requirements
The right to read the Audit log does not carry over from v4.Give the viewAuditLog and viewUsage permissions to the roles that need them (Upgrade from v4).
At the first start, the system copies the old logs, then deletes the Activities older than AUDIT_RETENTION_DAYS (365 days).To keep them longer, set this value before the first start (Upgrade from v4).

This Release has no contract Migration, so you can roll back from a newer 5.x to 5.0.0. Going back to v4 needs a restore from a backup (Upgrade from v4).

Known issues

None of them affects installing or upgrading a site.

  • If one user's OAuth client uses the same id as an app, you cannot install or move that app, and there is no fix yet, because an administrator cannot see that client.
  • Importing into a new table in a database shared with a group fails with the message "_id" is required.
  • An Organizer who is not the owner sees the Delete forever button, but pressing it deletes nothing. A Reader can press Submit in a form but gets a 403. The restrictions on an API key can be saved but have no real effect, and a CSV export shows false or 0 as an empty cell.
  • Some screens still show raw keys and untranslated text, and some buttons do nothing when pressed.
  • There is no tool yet to back up and restore a whole site. Installers must back up the data themselves.

On this page