Skip to content
Tagaris
Features Pricing FAQs Docs Live demo

Changelog

Every notable change to Tagaris, newest first. The project uses semantic versioning.

Upgrading is a pull of the new image tag; database migrations apply themselves at start. Take a backup before a major upgrade. Install and upgrade guides are in the documentation.

2.2.027 July 2026

Changed

  • The custom report builder is now part of the paid tiers. The eight built-in reports on the Reports page stay free, with CSV export and print unchanged.
  • API access (personal and organisation keys) is now part of the paid tiers. The API section in Settings and My account shows the paid state on an unlicensed organisation, and requests are refused.
  • A new Multi-organisation add-on is available in three sizes (up to 5, 15 or 50 organisations on one install), sold alongside the Team plans.

Added

  • Licensing now runs against the Goodhall Solutions licensing service. Applying a purchased key activates the install once and stores a signed certificate; day to day checks are then offline. Air-gapped servers apply a licence file instead, with no internet access at all. Keys bought through the website arrive by email within minutes of checkout.
  • More than one licence can be active on an install at once. Entitlements combine across them: features are the union, and seat and organisation limits take the highest granted. Useful for a seat plan plus a beta key.
  • The licence card lists each applied licence with its status, features, seats and expiry, with per-licence refresh and remove. Refresh picks up renewals and upgrades; monthly licences refresh themselves daily.
  • Official images bake the licensing service's public verification key, so a purchased key works with zero configuration. It is a public key: it can verify licences, never create them.

Changed

  • Keys from the previous hand-signed scheme still verify, for development and evaluation installs. New keys come from the licensing service.
  • The Docker image ships only the break-glass maintenance script (scripts/reset-2fa.mjs). Issuer, demo and build tooling no longer ship, and nested environment files are excluded from the build context.

2.1.021 July 2026

Changed

  • The paid model is now explicit. Free is one organisation, one user, unlimited assets and stock, two-factor authentication and every email option. The paid seat tiers (5, 10, 25 and 50 users) each include multi-user roles, single sign-on, the audit log and scheduled reports. Multiple organisations is a paid add-on (the free plan includes one; creating more needs the add-on). Device and Entra sync stay a free beta. Paid tiers no longer bundle the beta or add-on features.
  • Device sync (Microsoft Intune and Jamf) and the "Pull from Microsoft Entra" people import are now free beta features rather than paid. They are enabled with a free beta key requested from [email protected], so we know who is testing and can act on feedback. They show a "Beta" badge in the app; single sign-on, email and the rest of the paid tier are unchanged.

Added

  • Asset attachments: upload receipts, invoices, warranty certificates and manuals to an asset, alongside photos. Accepts PDF, image, Office, OpenDocument, text and email files up to 10 MB, with up to 10 files per asset. Attachments appear in the asset history and in the organisation data export, and live on the photos volume, so existing backups already cover them.
  • Scheduled backups with restore: Application settings gained a Backups tab. A backup is one archive holding the whole database and, optionally, uploaded photos and attachments. Run one by hand or on a daily or weekly schedule; copies land in a backups folder on the uploads volume with a retention count, and can also upload to S3 or S3-compatible storage (MinIO, Backblaze, Wasabi). Restore replaces the database from a chosen archive, with a typed confirmation, and archives from another install can be uploaded on the same page, so moving servers is download, upload, restore. Backups can be encrypted at rest with a passphrase (AES-256-GCM), needed again to restore. Deployment secrets (the master key and single sign-on values, which live in the environment, not the backup) are listed on the same page so you can set them on a new server before restoring. If a restored install uses single sign-on, which needs reconfiguring on the new server, the owner is shown a one-time password so they are never locked out. Install owner only.
  • Search on every list page: people, locations, categories, software and domains, accessories, components and consumables now have a search box, in the URL so results are shareable. Assets already had one.
  • Deeper location trees are now first class: the location page shows the full breadcrumb path and its sub-locations with rolled-up asset counts, every location picker shows the full path (Head office > Ground floor > Comms room), and the asset list and export can include sub-locations when filtering by location. Deleting a location moves its children up a level instead of orphaning them.
  • Searchable pickers: choosing a person, location or asset (assigning, checking out, issuing stock, picking a parent location) now opens a popup with a search box instead of a long dropdown.
  • Personal API keys: any user can create their own key in My account. A personal key acts as that user and is capped at their role (a read-only viewer only ever gets a read key), and changes made with it are recorded as that person. Organisation keys, for headless integrations, are created by an administrator in Settings as before. Every key now has an expiry chosen at creation (30, 90, 180 or 365 days, or never); an expired key stops working.
  • An API kill switch: the REST API can be turned off install-wide by the install owner in Application settings, or with API_ENABLED=false in the environment. When off, every API request is refused whatever the key.
  • A demo mode for the public demo server (DEMO_MODE=true, off by default and not intended for normal installs). Everything stays visible and entitled, but outbound calls (email, webhooks, device sync, Entra pull, S3 upload) and actions that could break the shared instance (restore, password and two-factor changes, single sign-on config) are refused with a plain message. The demo login is shown on the sign-in page and the dataset reloads nightly and on every restart.

Security

  • The Docker image now scans clean: no critical or high vulnerabilities (Docker Scout). The base image moved to Node 24 on Alpine 3.24, build-only toolchains that never run in production (esbuild, vite, vitest) are stripped from the image, and the bundled npm is refreshed to pick up patched dependencies.

Fixed

  • Photo uploads over 1 MB no longer fail. The app accepted files up to the documented 10 MB in its own checks, but the framework's request size limit rejected them first; the limit now matches.
  • The account created by the setup wizard now always sees its own organisation first. Previously, if that account was later given access to other organisations, the app could open one of those instead and leave the home organisation out of the organisation switcher.

2.0.016 July 2026

First release of the paid tier and the integrations and launch-ops work. Covers everything accumulated since 1.9: roles and access, single sign-on, two-factor, the connector framework, financial lifecycle, migration imports and launch polish.

Added

  • Roles and access: a SuperAdmin install-owner tier above Admin, Editor and Viewer, one least-privilege permission check behind everything, and settings split into Organisation (per organisation) and Application (install-wide, owner only). Cross-organisation access groups grant one role across several orgs. An access overview lists every account, how they sign in, and their protection.
  • Single sign-on hardened: Microsoft Entra ID, a required directory role mapping, "require single sign-on" (password sign-in blocked for everyone except the owner, the break-glass account), and client-secret expiry warnings.
  • Two-factor authentication for password sign-in: an authenticator app, an email code or backup codes; a per-install policy (off, admins, everyone) with an enrolment gate; and a server-side break-glass reset.
  • My account: profile, theme, default organisation, per-organisation personal colours, change password, and a list of signed-in devices.
  • Email can send through Microsoft 365 or Google Workspace with OAuth, not only SMTP, since providers are retiring basic-auth SMTP.
  • Snipe-IT parity: check-out and check-in; accessories, components and consumables; maintenance records; straight-line depreciation; a physical audit workflow; per-organisation custom fields; custom status labels; bulk status changes.
  • Financial lifecycle: any ISO 4217 currency; a dispose and retire workflow with a book-value snapshot and reinstate; Disposals and Value-by-location reports; soft delete.
  • Device sync: pull managed devices from Microsoft Intune and Jamf into a review queue, with per-connector filters, schedule and policy.
  • Onboarding and polish: a getting-started checklist, empty states, branded error pages, a built-in reports page and a custom report builder, and a five-minute quickstart guide.
  • Full organisation data export: one always-free JSON download of every register record (assets and their history, stock, people, locations, categories, templates, custom fields, status labels) from Settings, Organisation, Data. Secrets, the gated audit log and photo binaries are excluded. The Data tab also reminds admins to back up the database and photos volume.
  • Migrate from another system: the asset CSV importer has source presets for Snipe-IT and Halo that recognise those systems' column names and translate their status vocabulary, with the manual mapping step as the safety net. The people importer now accepts common header variants and separate first/last name columns, so Snipe-IT and Halo user exports import cleanly. Documented in docs/public/importing.md.
  • Pull people from Microsoft Entra ID: an admin can import directory users from the same Entra app used for email or single sign-on (needs User.Read.All), with the same preview and commit as a CSV. Enabled users are matched by email, so re-running only adds new starters. Read-only against the directory.
  • The audit log now covers single sign-on, the two-factor policy, cross-org group changes and full data exports.

Fixed

  • The Intune connector explains the "not applicable to target tenant" response in plain words (the tenant has no Microsoft Intune, so there are no managed devices to read), and connections can be tested before saving.
  • Single sign-on accounts are no longer asked to set a password to enrol in two-factor; two-factor is handled at their identity provider.

1.9.0

  • The organisation's own Tagaris licence expiry joins the renewals digest, plus an in-app banner for admins within 30 days of expiry or after it.

1.8.0

  • In-app upgrade prompts on gated pages, with a link to apply a licence. Gated navigation items stay visible with a lock until entitled.

1.7.0

  • Licence issuing flow: npm run licence:issue signs an offline key from friendly flags and keeps a ledger. Documented in docs/internal/licensing.md.

1.6.0

  • Scheduled reports (paid): a weekly or monthly summary email, with a send-now button, driven by pg-boss crons.

1.5.0

  • Single sign-on scaffolded (paid): OIDC via better-auth, provisioning on the login screen, off until configured.

1.4.0

  • Organisation-wide audit log (paid): a searchable trail with CSV export.

1.3.0

  • Multi-user (paid): Admin, Editor and Viewer roles, invitations and seat limits.

1.2.0

  • Assets can be "with" their assignee rather than at a location.

1.1.0

  • Standout features: visual identity, location-first workflows, a starter catalogue and templates, serial-number smart handling, and lifecycle flags.

1.0.0

First public release. A self-hostable IT asset register that runs from docker compose up.

Added

  • Setup wizard: the first run creates the organisation and the first admin.
  • Email and password sign in (better-auth).
  • Assets: list with search, filter by status, category, location and person, and sort; a detail page with a history timeline; create and edit forms with shared validation; automatic asset tags (TAG-0001, prefix configurable).
  • People, locations, categories and software licences: list, create, edit and delete. Locations support a parent, with loop protection.
  • Photos on assets: upload JPEG, PNG, WebP or HEIC, stored on a local volume, EXIF location stripped on upload, thumbnails generated, served through an authenticated route.
  • CSV import with column mapping and a dry-run preview that reports bad rows by line. CSV and JSON export covering all fields, including custom fields.
  • QR label sheets: pick assets and print a grid. Each code opens that asset's page.
  • Dashboard: counts by status and category, warranties expiring within 90 days, and recently added assets.
  • Warranty and software licence renewal alerts: a daily email digest, with SMTP settings, alert thresholds and a run-now button. The SMTP password is encrypted at rest.
  • Public REST API v1 for assets, people and locations, with bearer tokens that are hashed at rest, read and write scopes, and a per-token rate limit.
  • Licensing groundwork: offline Ed25519 licence key checks, a server-side feature gate and a client upgrade prompt. The free tier is not limited by asset count or export.

Notes

  • Two containers: the app and PostgreSQL. Designed to run on a small VPS.
  • A self-hosted instance makes no third-party calls by default.
Tagaris

A self-hosted IT asset register from Goodhall Solutions.

[email protected]

Other products: Fodaris and Autos Invoice.

Product

Features Pricing FAQs Licensing Changelog

Guides

Switching from Snipe-IT Self-hosting For MSPs Documentation Live demo

Legal

Privacy Notice Cookie Notice Terms of Use Refund policy
© Goodhall Solutions Ltd. Registered in England and Wales, company number 17058612.