Search K
Appearance
Appearance
MinuteView uses a file-based licensing system with built-in grace periods to ensure uninterrupted operation during license renewals and disaster recovery scenarios. This document explains how the licensing system works, what users will experience, and how to resolve license issues.
.licTemp Store Location (typically C:\TTCache) Configured in web.configMVServerUrl - The authorized server URLMACAddress - The authorized server's network MAC addressSEARCH, CREATOR, CONTROLLER, CONFIGURATOR)Startup.csLicensed = true if valid, false if invalidLicenseError.aspxDataBaseSetup.aspxMinuteView includes two separate grace periods to prevent unexpected downtime:
Duration: 60 days
Purpose: Allows continued operation after license expiration to facilitate renewals without service interruption.
Behavior Timeline:
Day 0: License expires
Days 1-60: GRACE PERIOD - System continues to operate normally
- Warning banners appear on all pages
- Users can upload new license without disruption
Day 61: HARD EXPIRATION - System locks
- All pages redirect to `LicenseError.aspx`
- Only license upload page accessibleUser Impact:
Duration: 30 days
Purpose: Supports disaster recovery scenarios where server hardware changes (new network card, VM migration, server replacement).
Behavior Timeline:
Day 0: MAC address mismatch detected
- Mismatch timestamp saved to minuteDbSettings.json
- DR grace period begins
Days 1-30: DR GRACE PERIOD - System continues to operate
- Warning banner: "DR RECOVERY MODE - 30 days remaining"
- System fully functional
Day 31: DR GRACE PERIOD EXPIRES
- System locks if MAC still doesn't match
- Redirects to `LicenseError.aspx`How It Works:
MacMismatchDetectedDate is saved to settingsMacMismatchDetectedDate + 30 daysCommon Scenarios:
Server Hardware Replacement
Virtual Machine Migration
Network Card Replacement
Tentech Exception:
┌─────────────┐
│ User visits │
│ any page │
└──────┬──────┘
│
▼
┌──────────────┐ Yes ┌─────────────┐
│ Database ├─────────────►│ Redirect │
│ configured? │ │ to Setup │
└──────┬───────┘ └─────────────┘
│ No
▼
┌──────────────┐ Yes ┌─────────────┐
│ License ├─────────────►│ Redirect │
│ valid? │ │ to Error │
└──────┬───────┘ └─────────────┘
│ No
▼
┌──────────────┐
│ Allow access │
│ to page │
└──────────────┘
┌──────────────┐ Yes ┌─────────────┐
│ In grace ├─────────────►│ Show │
│ period? │ │ warning │
└──────┬───────┘ │ banner │
│ No └─────────────┘
▼
┌──────────────┐ Yes ┌─────────────┐
│ License ├─────────────►│ Show │
│ expiring? │ │ warning │
│ (<30 days) │ │ banner │
└──────────────┘ └─────────────┘
┌─────────┐
│ Valid │
│ License │
│ No │
│ Warning │
└─────────┘┌──────────────────────────────┐
│ License Expired (Hard) │
│ Beyond Grace Period │
└──────────┬───────────────────┘
│
▼
┌──────────────┐
│ Redirect to │
│LicenseError │
│ .aspx │
└──────┬───────┘
│
▼
┌──────────────┐
│ Display │
│ - Error msg │
│ - Upload │
│ button │
└──────┬───────┘
│
User uploads
new license
│
▼
┌──────────────┐
│ Validation │
│ Success? │
└──────┬───────┘
│
┌─────┴─────┐
│ │
Yes No
│ │
▼ ▼
┌─────────┐ ┌────────────┘
│ Redirect│ │ Show error │
│ to │ │ and │
│ Home │ │ retry │
└─────────┘ └────────────┘┌──────────────────────────────┐
│ License Expiring Soon │
│ (Within 30 days) │
└──────────┬───────────────────┘
│
▼
┌──────────────┐
│ Yellow/Amber │
│ Banner │
└──────┬───────┘
│
┌───────┴────────┐
│ │
│ ┌────────────┴──────┐
│ │ 7 Days or Less? │
│ └────────┬──────────┘
│ │
│ Yes
│ │
│ ▼
│ ┌──────────────┐
│ │ Red Banner │
│ └──────────────┘
│
No
│
▼
┌──────────────┐
│ Continue │
│ with Amber │
│ Banner │
└──────────────┘
┌──────────────────────────────┐
│ License Expired │
│ (Within Grace Period) │
└──────────┬───────────────────┘
│
▼
┌──────────────┐
│ Red Banner │
│ Shows days │
│ remaining │
└──────┬───────┘
│
┌───────┴────────┐
│ │
Days > 0 Days = 0
│ │
▼ ▼
┌────────┐ ┌─────────────┐
│Continue│ │Hard Lock │
│showing │ │Redirect to │
│warning │ │LicenseError │
└────────┘ └─────────────┘
┌──────────────────────────────┐
│ MAC Mismatch (DR Mode) │
│ (Within 30-day grace) │
└──────────┬───────────────────┘
│
▼
┌──────────────┐
│Orange Banner │
│ "DR Mode" │
│Shows days │
│remaining │
└──────┬───────┘
│
┌───────┴────────┐
│ │
Days > 0 Days = 0
│ │
▼ ▼
┌────────┐ ┌─────────────┐
│Continue│ │Lock System │
│showing │ │Redirect to │
│warning │ │LicenseError │
└────────┘ └─────────────┘LicenseError.aspx) ┌─────────────────────────────────────────┐
│ │
│ MinuteView License Error │
│ │
│ Your MinuteView license is invalid, │
│ expired, or could not be found. │
│ │
│ Please upload a valid license file: │
│ │
│ ┌───────────────┐ ┌──────────────┐ │
│ │ Choose File │ │Upload License│ │
│ └───────────────┘ └──────────────┘ │
│ │
│ Supported format: .lic files │
│ │
└─────────────────────────────────────────┘DataBaseSetup.aspx) ┌─────────────────────────────────────────┐
│ MinuteView Database Setup │
│ │
│ Database Information: │
│ Server Name: [____________] │
│ Instance: [____________] │
│ Username: [____________] │
│ Password: [____________] │
│ │
│ License File: │
│ ┌───────────────┐ │
│ │ Choose File │ No file chosen │
│ └───────────────┘ │
│ │
│ ┌──────────────────┐ │
│ │ Create Database │ │
│ └──────────────────┘ │
└─────────────────────────────────────────┘┌─────────────────────────────────────────┐
│ ⚠️ License will expire on 2024-03-15. │
│ [Upload New License] │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│ │
│ MinuteView Dashboard │
│ │
│ [Normal page content continues...] │
│ │
└─────────────────────────────────────────┘┌─────────────────────────────────────────┐
│ ⚠️ LICENSE EXPIRED on 2024-02-01 │
│ Grace Period Active: 45 days │
│ remaining until system lockout. │
│ [Upload New License] │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│ │
│ MinuteView Dashboard │
│ │
│ [Normal page content continues...] │
│ │
└─────────────────────────────────────────┘┌─────────────────────────────────────────┐
│ ⚠️ DR RECOVERY MODE │
│ Server MAC address does not match │
│ license. 25 days remaining. │
│ Please contact │
│ support@tentechsoftware.com.au │
│ for a new license. │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│ │
│ MinuteView Dashboard │
│ │
│ [Normal page content continues...] │
│ │
└─────────────────────────────────────────┘1. User navigates to: http://minuteview/Dashboard
↓
2. HTTP Module intercepts request
↓
3. Checks: Licensed = false
↓
4. Checks: DateTime.Now > (Licexpiration + 60 days)
↓
5. Result: Hard expiration detected
↓
6. Redirect: http://minuteview/LicenseError.aspx
↓
7. User sees license upload page1. User navigates to: http://minuteview/
↓
2. HTTP Module intercepts request
↓
3. Checks: minuteDbSettings.json exists?
↓
4. Result: File not found
↓
5. Redirect: http://minuteview/DataBaseSetup.aspx
↓
6. User sees database setup page1. User navigates to: http://minuteview/Projects
↓
2. HTTP Module intercepts request
↓
3. Checks: License expired? Yes
↓
4. Checks: Within 60-day grace? Yes
↓
5. Result: Allow access, show warning
↓
6. Page loads normally with red banner:
"LICENSE EXPIRED - Grace Period: 45 days remaining"1. User navigates to: http://minuteview/Settings
↓
2. HTTP Module intercepts request
↓
3. Checks: Current MAC = Licensed MAC? No
↓
4. Checks: MacMismatchDetectedDate + 30 days > Now? Yes
↓
5. Result: DR grace period active
↓
6. Page loads normally with orange banner:
"DR RECOVERY MODE - 25 days remaining"┌──────────────┐
│ User on │
│ LicenseError │
│ .aspx │
└──────┬───────┘
│
▼
┌──────────────┐
│ Clicks │
│ "Choose File"│
└──────┬───────┘
│
▼
┌──────────────┐
│ Selects │
│ .lic file │
└──────┬───────┘
│
▼
┌──────────────┐
│ Clicks │
│ "Upload │
│ License" │
└──────┬───────┘
│
▼
┌──────────────┐
│ Server │
│ validates │
│ license │
└──────┬───────┘
│
✅ Valid
│
▼
┌──────────────┐
│ Updates │
│ config │
│ values │
└──────┬───────┘
│
▼
┌──────────────┐
│ Saves to │
│ settings │
│ file │
└──────┬───────┘
│
▼
┌──────────────┐
│ Redirect to │
│ Home page │
└──────────────┘┌──────────────┐
│ User uploads │
│ license file │
└──────┬───────┘
│
▼
┌──────────────┐
│ Server │
│ validates │
│ license │
└──────┬───────┘
│
❌ Invalid
│
▼
┌──────────────┐
│ Shows error: │
│ "Failed to │
│ validate │
│ license" │
└──────┬───────┘
│
▼
┌──────────────┐
│ Remains on │
│ LicenseError │
│ .aspx │
└──────┬───────┘
│
▼
┌──────────────┐
│ User can │
│ try again │
└──────────────┘Every HTTP Request
│
▼
┌──────────────────┐
│ Is request for │ Yes
│ DataBaseSetup or ├────► Allow (no redirect)
│ LicenseError? │
└────────┬─────────┘
│ No
▼
┌──────────────────┐
│ Does settings │ No ┌─────────────────┐
│ file exist? ├───────►│ Redirect to │
└────────┬─────────┘ │ DataBaseSetup │
│ Yes └─────────────────┘
▼
┌──────────────────┐
│ Is license │ No ┌─────────────────┐
│ valid? ├───────►│ Redirect to │
│ (Licensed) │ └─────────────────┘
└────────┬─────────┘
│ Yes
▼
┌──────────────────┐
│ Check expiration │
│ on every request │
└────────┬─────────┘
│
▼
┌──────────────────┐
│ Expired beyond │ Yes ┌─────────────────┐
│ grace period? ├───────►│ Set IsLicensed │
│ (Expiration + │ │ = false │
│ 60 days < Now) │ │ Redirect to │
└────────┬─────────┘ │ LicenseError │
│ No └─────────────────┘
▼
┌──────────────────┐
│ MAC mismatch │ Yes ┌─────────────────┐
│ beyond grace? ├───────►│ Set IsLicensed │
│ (Mismatch + │ │ = false │
│ 30 days < Now) │ │ Redirect to │
└────────┬─────────┘ │ LicenseError │
│ No └─────────────────┘
▼
┌──────────────────┐
│ Allow request │
│ Insert warning │
│ banner if needed │
└──────────────────┘Week 1: License expires in 25 days
↓ User logs in
┌─────────────────────────────┐
│ ⚠️ Yellow banner shows: │
│ "License expires on │
│ 2024-03-15" │
└─────────────────────────────┘
↓ User continues working
Week 2: License expires in 18 days
↓ User logs in
┌─────────────────────────────┐
│ ⚠️ Yellow banner still │
│ visible on all pages │
└─────────────────────────────┘
↓ User contacts vendor
Week 3: License expires in 5 days
↓ User logs in
┌─────────────────────────────┐
│ ⚠️ Red banner shows: │
│ "License expires in 5 days" │
└─────────────────────────────┘
↓ New license arrives
↓ User clicks "Upload New License"
↓ Selects new .lic file
↓ Clicks Upload
✅ Success!
↓ Redirect to Home
┌─────────────────────────────┐
│ No warnings │
│ License valid until 2025 │
└─────────────────────────────┘Day -30: User sees yellow warning banner
↓ User ignores warning
Day 0: License expiration date reached
↓ User logs in
┌─────────────────────────────┐
│ ⚠️ Red banner shows: │
│ "LICENSE EXPIRED │
│ Grace Period: 60 days" │
└─────────────────────────────┘
↓ System still fully functional
↓ User contacts vendor
Day 15: Still in grace period
┌─────────────────────────────┐
│ ⚠️ "Grace Period: 45 days" │
└─────────────────────────────┘
↓ User waits for new license
Day 45: Receiving new license
┌─────────────────────────────┐
│ ⚠️ "Grace Period: 15 days" │
└─────────────────────────────┘
↓ User uploads new license
✅ Success!
┌─────────────────────────────┐
│ System fully licensed │
│ No warnings │
└─────────────────────────────┘Day 0: License expires
┌─────────────────────────────┐
│ ⚠️ "Grace Period: 60 days" │
└─────────────────────────────┘
Day 30: ┌─────────────────────────────┐
│ ⚠️ "Grace Period: 30 days" │
└─────────────────────────────┘
Day 59: ┌─────────────────────────────┐
│ ⚠️ "Grace Period: 1 day" │
└─────────────────────────────┘
Day 60: User tries to log in
↓ System detects hard expiration
┌─────────────────────────────┐
│ Automatic redirect to │
│ LicenseError.aspx │
└─────────────────────────────┘
↓ User sees:
┌─────────────────────────────┐
│ "Your MinuteView license │
│ is invalid, expired, or │
│ could not be found." │
│ │
│ [Choose File] [Upload] │
└─────────────────────────────┘
↓ User contacts vendor urgently
↓ Receives new license
↓ Uploads via LicenseError page
✅ Immediate access restoredDay 0: Production server fails
↓ IT team restores to new hardware
↓ New server has different MAC address
↓ User logs in to restored system
┌─────────────────────────────┐
│ ⚠️ Orange banner: │
│ "DR RECOVERY MODE │
│ Server MAC does not match │
│ license. 30 days │
│ remaining." │
└─────────────────────────────┘
↓ System fully operational
↓ IT contacts support
Day 3: ┌─────────────────────────────┐
│ ⚠️ "DR MODE: 27 days left" │
└─────────────────────────────┘
↓ Support generates new license
↓ IT uploads new license
✅ Orange banner disappears
┌─────────────────────────────┐
│ System fully licensed │
│ Normal operation │
└─────────────────────────────┘Step 1: IT installs MinuteView
↓ No database configured yet
↓ User navigates to server URL
┌─────────────────────────────┐
│ Automatic redirect to │
│ DataBaseSetup.aspx │
└─────────────────────────────┘
Step 2: ┌─────────────────────────────┐
│ Database Setup Page │
│ │
│ Server: [SQL01] │
│ Instance: [] │
│ Username: [sa] │
│ Password: [••••••] │
│ │
│ License: [Choose File] │
└─────────────────────────────┘
↓ User fills form
↓ Uploads .lic file
Step 3: ↓ Clicks "Create Database"
┌─────────────────────────────┐
│ Creating MinuteData DB... │
│ Creating tables... │
│ Running migrations... │
│ Validating license... │
│ Creating default users... │
└─────────────────────────────┘
Step 4: ✅ Setup complete
┌─────────────────────────────┐
│ Redirect to Login page │
└─────────────────────────────┘
↓ User logs in
┌─────────────────────────────┐
│ Welcome to MinuteView │
│ Dashboard │
└─────────────────────────────┘| Scenario | Accessible Pages | Restricted Pages |
|---|---|---|
| No Database Config | DataBaseSetup.aspx | All other pages |
| License Expired (Hard) | LicenseError.aspx, DataBaseSetup.aspx | All other pages |
| Valid License | All pages | None |
| License in Grace Period | All pages (with warnings) | None |
| MAC Mismatch (DR Mode) | All pages (with warnings) | None |
Warning banners appear at the top of all pages when license issues are detected. These are always visible and provide clear action paths.
Appearance: Yellow/Amber banner
Message:
⚠️ License will expire on [YYYY-MM-DD].
[Upload New License] ← clickable linkWhen Shown:
User Action: Click link to upload new license proactively
Appearance: Red banner
Message:
⚠️ LICENSE EXPIRED on [YYYY-MM-DD] - Grace Period Active: [X] days remaining until system lockout.
[Upload New License] ← clickable linkWhen Shown:
User Action: Upload new license immediately to avoid lockout
Appearance: Orange banner
Message:
⚠️ DR RECOVERY MODE - Server MAC address does not match license. [X] days remaining.
Please contact support@tentechsoftware.com.au for a new license.When Shown:
User Action: Contact support to obtain license for new hardware
.lic file from file systemLicenseError.aspx.lic fileDataBaseSetup.aspxMinuteData databaseSituation: Production server fails, need to restore on new hardware
Steps:
C:\TTCache\minuteDbSettings.json from backupC:\TTCache\LicenseError.aspx or License ManagementTimeline: 30 days to complete license transfer
Situation: VM migrated to new host, MAC address changed
Steps:
Timeline: 30 days to complete
Situation: Network interface card replaced due to hardware failure
Steps:
Timeline: 30 days to complete
Situation: Both license expired AND MAC doesn't match
Behavior:
Action Required:
LicenseError.aspxCauses:
C:\TTCache\minuteDbSettings.jsonLicFileName property empty/nullResolution:
C:\TTCache\ for .lic fileminuteDbSettings.json has correct LicFileName valueLicenseError.aspx or DataBaseSetup.aspxCauses:
Resolution:
Causes:
Resolution:
LicenseError.aspxCauses:
Resolution:
Causes:
Resolution:
C:\TEMP\WebServerDebug\ logs for validation errorsiisresetDataBaseSetup.aspx After License Upload Causes:
minuteDbSettings.json was deleted/corruptedResolution:
C:\TTCache\minuteDbSettings.json exists| File | Path | Purpose |
|---|---|---|
| Database Settings | C:\TTCache\minuteDbSettings.json | Database connection, license filename, JWT secret |
| License File | C:\TTCache\[LicFileName].lic | Encrypted license with expiration, MAC, features |
| Debug Logs | C:\TEMP\WebServerDebug\[Date]_WebServerDebug.log | License validation logs, errors |
Monitor Expiration Dates
Backup License Files
C:\TTCache\ in backup proceduresTest License Uploads
DR Preparation
Grace Period Awareness
Quick License Issuance
Communication
Troubleshooting
C:\TEMP\WebServerDebug\MinuteView's licensing system is designed for reliability and business continuity:
✅ 60-day license grace period prevents service interruption during renewals ✅ 30-day MAC grace period supports disaster recovery scenarios ✅ Automatic detection of expiration without app restart (lazy validation) ✅ Clear warning banners with direct action links ✅ Simple upload process with no database reconfiguration required ✅ Zero-downtime license renewal during grace periods
The system prioritizes keeping services running while encouraging proactive license management through visible warnings and ample grace periods.
Document Version: 1.0 Last Updated: 2024