feat(license): add BSL license enforcement with device limit indicator

- Add LICENSE_DEVICES env var (default 250, matches BSL 1.1 free tier)
- Add /api/settings/license endpoint returning device count vs limit
- Header shows flashing red "502/500 licensed" badge when over limit
- About page shows license tier, device count, and over-limit warning
- Nothing is crippled — all features work regardless of device count
- Bump version to 9.7.1

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Jason Staack
2026-03-19 22:28:56 -05:00
parent 0142107e68
commit fdc8d9cb68
9 changed files with 81 additions and 5 deletions

View File

@@ -45,3 +45,15 @@ export async function testSMTPSettings(data: {
const res = await api.post('/api/settings/smtp/test', data)
return res.data
}
export interface LicenseStatus {
licensed_devices: number
actual_devices: number
over_limit: boolean
tier: 'free' | 'commercial'
}
export async function getLicenseStatus(): Promise<LicenseStatus> {
const res = await api.get('/api/settings/license')
return res.data
}