Vinza Connect is the panel's read-side link to VinzaWeb. It shows the local licence state — masked key, cached validation status, last verification time, expiry date, hardware UUID and plan name — entirely from local data, with no network call, so the status card still renders when VinzaWeb is unreachable.
Everything else is pulled over HTTP from VinzaWeb: recent blog posts and a ticket summary, licence-expiry reminders and announcements, and the helpdesk. From the panel you can list your tickets, open one with its replies, file a new ticket with a category and priority, and post a reply. Ticket creation and replies always go out live and invalidate the relevant cache; reads are cached (roughly ten minutes for the feed, one to two minutes for tickets and notifications) and a failed call caches a short error stub so a down VinzaWeb is not hammered on every page load.
Notifications are computed server-side with no read state, so "mark as read" is stored panel-locally: the plugin remembers the ids you acknowledged and flags them read on subsequent pulls, and genuinely new notifications still show up unread. The transport is plain stdlib HTTP with the licence key as a bearer token, and it needs VINZA_WEBURL configured. Without a key the notification feed simply returns empty rather than erroring — a free-tier install has no subscription to remind you about. This is a one-way pull bridge: VinzaWeb cannot drive the panel through it.
Use VinzaPanel's REST API to download and install this app programmatically.
POST /plugins/api/download/vinza-connect/ Content-Type: application/json { "panel_version": "1.0.0" }
{
"success": true,
"plugin_id": "vinza-connect",
"version": "1.1.1",
"download_url": "..."
}