diff --git a/CHANGELOG.md b/CHANGELOG.md index a1997de..76e3824 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## [v0.6.1] - 2026-09-21 + +### Changed + +- User and admin interfaces now label **Live ACL** as **ACL**. +- ACL lists now show only Super Admin entries returned by the API. + +Requires vtafarm-api 0.6.1. + ## [v0.6.0] - 2026-09-21 ### Added diff --git a/helm/vtafarm/Chart.yaml b/helm/vtafarm/Chart.yaml index 88be428..d4a5750 100644 --- a/helm/vtafarm/Chart.yaml +++ b/helm/vtafarm/Chart.yaml @@ -3,5 +3,5 @@ name: vtafarm description: VTA Farm — React frontend served by nginx type: application # Kept equal; one release bumps both. -version: 0.6.0 -appVersion: "0.6.0" +version: 0.6.1 +appVersion: "0.6.1" diff --git a/src/lib/api.ts b/src/lib/api.ts index 0911fb9..68c1bff 100644 --- a/src/lib/api.ts +++ b/src/lib/api.ts @@ -822,7 +822,7 @@ export const api = { // domain row, DNS, session — by one action; this is the only route that can // mint a domains row for our own zone. getPlatformStack: () => req('GET', '/api/v1/admin/platform-stack'), - /** Last complete `vta acl list` snapshot. Reading it causes no downtime. */ + /** Super Admin entries from the last complete ACL snapshot. Reading causes no downtime. */ getPlatformStackAdmins: (force = false) => req('GET', `/api/v1/admin/platform-stack/admins${force ? `?refresh=${Date.now()}` : ''}`), /** diff --git a/src/pages/admin/PlatformStackAdmins.tsx b/src/pages/admin/PlatformStackAdmins.tsx index 14eba90..fd8d9bd 100644 --- a/src/pages/admin/PlatformStackAdmins.tsx +++ b/src/pages/admin/PlatformStackAdmins.tsx @@ -66,7 +66,7 @@ export function PlatformStackAdmins() { try { const result = await api.refreshPlatformStackAdmins() setAcl(result) - setNotice({ area: 'acl', message: 'Live ACL refreshed.' }) + setNotice({ area: 'acl', message: 'ACL refreshed.' }) if (result.warning) setWarning(result.warning) } catch (err) { setError(err instanceof Error ? err.message : 'Failed to refresh the ACL') @@ -119,7 +119,7 @@ export function PlatformStackAdmins() {
-
Live ACL
+
ACL
{acl?.synced_at ? `Synced ${new Date(acl.synced_at).toLocaleString()}` : 'Not synced yet'}
@@ -129,13 +129,13 @@ export function PlatformStackAdmins() {

Refreshing temporarily stops and restarts the VTA.

{!loadingAcl && acl?.synced_at && acl.entries.length === 0 && ( -

No ACL entries.

+

No Super Admin entries.

)} {acl && acl.entries.length > 0 && (
diff --git a/src/pages/portal/SessionPnmCard.tsx b/src/pages/portal/SessionPnmCard.tsx index a82fecd..5409a2f 100644 --- a/src/pages/portal/SessionPnmCard.tsx +++ b/src/pages/portal/SessionPnmCard.tsx @@ -80,7 +80,7 @@ export function SessionPnmCard({ sessionId, onVtaRestarted }: SessionPnmCardProp const result = await api.refreshSessionAcl(sessionId) onVtaRestarted() setAcl(result) - setNotice('Live ACL refreshed.') + setNotice('ACL refreshed.') if (result.warning) setWarning(result.warning) } catch (err) { setError(err instanceof Error ? err.message : 'Failed to refresh the ACL') @@ -134,7 +134,7 @@ export function SessionPnmCard({ sessionId, onVtaRestarted }: SessionPnmCardProp
-
Live ACL
+
ACL
{acl?.synced_at ? `Synced ${new Date(acl.synced_at).toLocaleString()}` : 'Not synced yet'}
@@ -143,13 +143,13 @@ export function SessionPnmCard({ sessionId, onVtaRestarted }: SessionPnmCardProp disabled={linking || refreshingAcl}> {refreshingAcl ? <>Refreshing… - : 'Refresh live ACL'} + : 'Refresh ACL'}

Refreshing temporarily stops and restarts the VTA.

{!loadingAcl && acl?.synced_at && acl.entries.length === 0 && ( -

No ACL entries.

+

No Super Admin entries.

)} {acl && acl.entries.length > 0 && (