From dea67f75d81c2ebf07f431e932c2fa609fa8ae5b Mon Sep 17 00:00:00 2001 From: Michael McRae Date: Wed, 8 Jul 2026 14:45:16 +1000 Subject: [PATCH 1/2] enshrine --- packages/tempo/src/plugin/license/license.manager.ts | 4 ++++ packages/tempo/src/tempo.type.ts | 2 ++ 2 files changed, 6 insertions(+) diff --git a/packages/tempo/src/plugin/license/license.manager.ts b/packages/tempo/src/plugin/license/license.manager.ts index a20a4c87..259066df 100644 --- a/packages/tempo/src/plugin/license/license.manager.ts +++ b/packages/tempo/src/plugin/license/license.manager.ts @@ -67,6 +67,8 @@ export function setLicense(state: Internal.State, key: string): void { license.key = key; license.status = LICENSE.Pending; license.scopes = claims?.scopes || {}; + if (claims?.role) license.role = claims.role; + else delete license.role; if (claims?.exp) license.expires = claims.exp; if (claims?.iat) license.issuedAt = claims.iat; @@ -86,6 +88,8 @@ export function setLicense(state: Internal.State, key: string): void { const isValidStatus = isSyncToken(res.status) || LICENSE.values().includes(res.status); license.status = isValidStatus ? res.status : LICENSE.Invalid; license.scopes = isObject(res.scopes) ? res.scopes : {}; + if (res.role) license.role = res.role; + else delete license.role; delete (license as any).error; if (res.error) license.error = res.error; if (res.expires) license.expires = res.expires; diff --git a/packages/tempo/src/tempo.type.ts b/packages/tempo/src/tempo.type.ts index 0fc9552b..c67eff45 100644 --- a/packages/tempo/src/tempo.type.ts +++ b/packages/tempo/src/tempo.type.ts @@ -377,6 +377,7 @@ export namespace Internal { /** structure of the verified license reckoning */ export interface ValidationResult { status: enums.LICENSE; + role?: string; scopes: Record; expires?: number | string; issuedAt?: number; @@ -396,6 +397,7 @@ export namespace Internal { export interface LicenseState { status: enums.LICENSE; key?: string; + role?: string; scopes: Record; jws?: Pledge; expires?: number | string; From ad92da3de7111aa3276c050c6f5ec4fc8f7a8244 Mon Sep 17 00:00:00 2001 From: Michael McRae Date: Wed, 8 Jul 2026 14:59:32 +1000 Subject: [PATCH 2/2] prep for 3.7.1 --- package-lock.json | 8 ++++---- package.json | 2 +- packages/library/package.json | 2 +- packages/tempo/CHANGELOG.md | 5 +++++ packages/tempo/package.json | 2 +- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 519de593..d3b6d457 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "tempo-monorepo", - "version": "3.7.0", + "version": "3.7.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "tempo-monorepo", - "version": "3.7.0", + "version": "3.7.1", "workspaces": [ "packages/*" ], @@ -10149,7 +10149,7 @@ }, "packages/library": { "name": "@magmacomputing/library", - "version": "3.7.0", + "version": "3.7.1", "license": "MIT", "dependencies": { "tslib": "^2.8.1" @@ -10160,7 +10160,7 @@ }, "packages/tempo": { "name": "@magmacomputing/tempo", - "version": "3.7.0", + "version": "3.7.1", "license": "MIT", "dependencies": { "tslib": "^2.8.1" diff --git a/package.json b/package.json index b390d917..a8dee3b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tempo-monorepo", - "version": "3.7.0", + "version": "3.7.1", "private": true, "engines": { "node": ">=20.0.0" diff --git a/packages/library/package.json b/packages/library/package.json index ed7e6776..87ad3390 100644 --- a/packages/library/package.json +++ b/packages/library/package.json @@ -1,6 +1,6 @@ { "name": "@magmacomputing/library", - "version": "3.7.0", + "version": "3.7.1", "description": "Shared utility library for Tempo", "author": "Magma Computing Solutions", "license": "MIT", diff --git a/packages/tempo/CHANGELOG.md b/packages/tempo/CHANGELOG.md index e532dd91..680b8207 100644 --- a/packages/tempo/CHANGELOG.md +++ b/packages/tempo/CHANGELOG.md @@ -6,6 +6,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.7.1] - 2026-07-08 + +### Fixed +- **License Admin Isolation**: Restructured the commercial licensing JWT payload to isolate administrative privileges (like `tempo-adm`) into a dedicated root-level `role` claim. This prevents internal admin flags from polluting the `scopes` dictionary and erroneously surfacing as "uninstalled premium plugins" in the `Tempo.terms` registry UI. + ## [3.7.0] - 2026-07-08 ### Added diff --git a/packages/tempo/package.json b/packages/tempo/package.json index 5b3e6095..afe70369 100644 --- a/packages/tempo/package.json +++ b/packages/tempo/package.json @@ -1,6 +1,6 @@ { "name": "@magmacomputing/tempo", - "version": "3.7.0", + "version": "3.7.1", "engines": { "node": ">=20.0.0" },