Skip to content

MinuteView Licensing System - User Guide

Overview

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.


Table of Contents

  1. License File Format
  2. License Validation Process
  3. Grace Periods
  4. User Experience & Redirects
  5. Warning Banners
  6. License Renewal Process
  7. Disaster Recovery Scenarios
  8. Troubleshooting

License File Format

File Details

  • Extension: .lic
  • Location: Stored in Temp Store Location (typically C:\TTCache) Configured in web.config
  • Encryption: AES-encrypted with signature validation
  • Content: Contains company name, expiration date, MAC address, and licensed features

Required License Features

  • MVServerUrl - The authorized server URL
  • MACAddress - The authorized server's network MAC address
  • Product features (e.g., SEARCH, CREATOR, CONTROLLER, CONFIGURATOR)

License Validation Process

When Validation Occurs

1. Application Startup (Always)

  • Runs during OWIN startup in Startup.cs
  • Validates all license requirements
  • Sets Licensed = true if valid, false if invalid

2. Every HTTP Request (Lazy Validation)

  • Lightweight date check (microseconds per request)
  • Detects license expiration without requiring app restart
  • Checks if license has expired beyond grace period
  • No file I/O - just in-memory date comparison

3. Manual Upload (On Demand)

  • When uploading new license via LicenseError.aspx
  • When completing initial setup via DataBaseSetup.aspx

What Gets Validated

  1. File Existence - License file must exist in temp location
  2. Decryption - License must decrypt successfully with AES key
  3. Signature - Cryptographic signature must be valid
  4. Expiration Date - License must not be expired beyond grace period (60 days)
  5. MAC Address - Server MAC must match licensed MAC (with 30-day DR grace period)
  6. Product Features - Required features must be present in license

Grace Periods

MinuteView includes two separate grace periods to prevent unexpected downtime:

1. License Expiration Grace Period

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 accessible

User Impact:

  • ✅ No service disruption during grace period
  • ✅ Visible warnings encourage proactive renewal
  • ✅ 60 days is sufficient time for license procurement
  • ⚠️ After grace period, system becomes inaccessible until new license uploaded

2. MAC Address Mismatch Grace Period (Disaster Recovery)

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:

  • When MAC mismatch detected, MacMismatchDetectedDate is saved to settings
  • Grace period expiration = MacMismatchDetectedDate + 30 days
  • Sets Grace Period to true
  • If MAC address matches again, grace period is cleared and system returns to normal

Common Scenarios:

  1. Server Hardware Replacement

    • Old server fails, new server deployed
    • License still valid but MAC doesn't match
    • 30 days to obtain new license for new hardware
  2. Virtual Machine Migration

    • VM moved to new host
    • MAC address changes during migration
    • 30 days to update license
  3. Network Card Replacement

    • NIC fails and is replaced
    • New MAC address assigned
    • 30 days to update license

Tentech Exception:

  • Licenses issued to "TENTECH" company bypass MAC validation
  • Used for development and testing environments

User Experience & Redirects

Redirect Logic Flow

┌─────────────┐
│ 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 │
                      └─────────┘

Page Access During License Issues

┌──────────────────────────────┐
│  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 Warning Flow

┌──────────────────────────────┐
│  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 │
└────────┘   └─────────────┘

Visual Examples

License Upload Page (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           │
│                                         │
└─────────────────────────────────────────┘

Database Setup Page (DataBaseSetup.aspx)

┌─────────────────────────────────────────┐
│ MinuteView Database Setup               │
│                                         │
│ Database Information:                   │
│  Server Name:    [____________]         │
│  Instance:       [____________]         │
│  Username:       [____________]         │
│  Password:       [____________]         │
│                                         │
│ License File:                           │
│  ┌───────────────┐                      │
│  │ Choose File   │  No file chosen      │
│  └───────────────┘                      │
│                                         │
│  ┌──────────────────┐                   │
│  │ Create Database  │                   │
│  └──────────────────┘                   │
└─────────────────────────────────────────┘

Normal Page with Expiring License Warning

┌─────────────────────────────────────────┐
│ ⚠️ License will expire on 2024-03-15.   │
│    [Upload New License]                 │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│                                         │
│  MinuteView Dashboard                   │
│                                         │
│  [Normal page content continues...]     │
│                                         │
└─────────────────────────────────────────┘

Normal Page with Expired License (Grace Period)

┌─────────────────────────────────────────┐
│ ⚠️ LICENSE EXPIRED on 2024-02-01        │
│    Grace Period Active: 45 days         │
│    remaining until system lockout.      │
│    [Upload New License]                 │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│                                         │
│  MinuteView Dashboard                   │
│                                         │
│  [Normal page content continues...]     │
│                                         │
└─────────────────────────────────────────┘

Normal Page with MAC Mismatch (DR Mode)

┌─────────────────────────────────────────┐
│ ⚠️ 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...]     │
│                                         │
└─────────────────────────────────────────┘

Redirect Sequence Examples

Scenario: License Expired Beyond Grace Period

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 page

Scenario: First-Time Setup (No Database)

1. 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 page

Scenario: License Within Grace Period

1. 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"

Scenario: MAC Mismatch in DR Mode

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"

Error Page Workflows

License Upload Success Flow

┌──────────────┐
│ 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    │
└──────────────┘

License Upload Failure Flow

┌──────────────┐
│ User uploads │
│ license file │
└──────┬───────┘


┌──────────────┐
│ Server       │
│ validates    │
│ license      │
└──────┬───────┘

   ❌ Invalid


┌──────────────┐
│ Shows error: │
│ "Failed to   │
│  validate    │
│  license"    │
└──────┬───────┘


┌──────────────┐
│ Remains on   │
│ LicenseError │
│   .aspx      │
└──────┬───────┘


┌──────────────┐
│ User can     │
│ try again    │
└──────────────┘

HTTP Module Decision Tree

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 │
└──────────────────┘

Complete User Journey Examples

Journey 1: Proactive License Renewal

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    │
         └─────────────────────────────┘

Journey 2: License Expires, Uses Grace Period

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                 │
         └─────────────────────────────┘

Journey 3: Grace Period Expires, Hard Lock

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 restored

Journey 4: Disaster Recovery - Server Migration

Day 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            │
         └─────────────────────────────┘

Journey 5: Database Setup (First Install)

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                   │
         └─────────────────────────────┘

Page Access Rules

ScenarioAccessible PagesRestricted Pages
No Database ConfigDataBaseSetup.aspxAll other pages
License Expired (Hard)LicenseError.aspx, DataBaseSetup.aspxAll other pages
Valid LicenseAll pagesNone
License in Grace PeriodAll pages (with warnings)None
MAC Mismatch (DR Mode)All pages (with warnings)None

Warning Banners

Warning banners appear at the top of all pages when license issues are detected. These are always visible and provide clear action paths.

1. License Expiring Soon (30 Days Warning)

Appearance: Yellow/Amber banner

Message:

⚠️ License will expire on [YYYY-MM-DD].
[Upload New License] ← clickable link

When Shown:

  • License expiration is within 30 days
  • System still fully operational
  • Severity increases as expiration approaches (7 days = red)

User Action: Click link to upload new license proactively


2. License Expired (Grace Period Active)

Appearance: Red banner

Message:

⚠️ LICENSE EXPIRED on [YYYY-MM-DD] - Grace Period Active: [X] days remaining until system lockout.
[Upload New License] ← clickable link

When Shown:

  • License has expired but within 60-day grace period
  • Days countdown shows urgency (60, 59, 58... 1)

User Action: Upload new license immediately to avoid lockout


3. MAC Address Mismatch (DR Recovery Mode)

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:

  • Server MAC address doesn't match licensed MAC
  • Within 30-day DR grace period
  • System fully operational

User Action: Contact support to obtain license for new hardware


License Renewal Process

For Active Licenses (Before Expiration)

  1. Navigate to Settings → License Management (requires admin permissions)
  2. Click Upload New License
  3. Select new .lic file from file system
  4. Click Upload
  5. System validates and applies license immediately
  6. Warning banners disappear
  7. No service interruption

For Expired Licenses (During Grace Period)

  1. Access any page → Automatic redirect to LicenseError.aspx
  2. Page displays: "Your MinuteView license is invalid, expired, or could not be found"
  3. Click Choose File and select new .lic file
  4. Click Upload License
  5. System validates license:
    • ✅ Success → Redirect to Home page, full access restored
    • ❌ Failure → Error message, try again with valid license
  6. No database reconfiguration required

For First-Time Setup

  1. Navigate to server URL → Redirect to DataBaseSetup.aspx
  2. Fill in Database Information:
    • Server Name
    • Instance Name (optional)
    • Database Username
    • Database Password
  3. Upload License File (.lic)
  4. Click Create Database
  5. System:
    • Creates MinuteData database
    • Creates database tables
    • Validates license
    • Creates default users
    • Runs database migrations
  6. Redirect to Login page

Disaster Recovery Scenarios

Scenario 1: Server Hardware Failure

Situation: Production server fails, need to restore on new hardware

Steps:

  1. Deploy MinuteView on new server
  2. Restore database backup
  3. Copy C:\TTCache\minuteDbSettings.json from backup
  4. Copy old license file to C:\TTCache\
  5. Start MinuteView
  6. Expected Behavior:
    • Orange banner: "DR RECOVERY MODE - 30 days remaining"
    • System fully operational
    • All data accessible
  7. Action Required:
    • Contact support@tentechsoftware.com.au
    • Provide new server MAC address
    • Receive new license for new hardware
    • Upload new license via LicenseError.aspx or License Management

Timeline: 30 days to complete license transfer


Scenario 2: Virtual Machine Migration

Situation: VM migrated to new host, MAC address changed

Steps:

  1. Complete VM migration
  2. Start MinuteView on new host
  3. Expected Behavior:
    • Orange banner: "DR RECOVERY MODE - [X] days remaining"
    • System continues operating normally
  4. Action Required:
    • Note new MAC address (from network settings or warning banner details)
    • Contact support with new MAC address
    • Upload new license when received

Timeline: 30 days to complete


Scenario 3: Network Card Replacement

Situation: Network interface card replaced due to hardware failure

Steps:

  1. Replace network card
  2. MinuteView detects MAC mismatch on next request
  3. Expected Behavior:
    • DR grace period activates automatically
    • Orange warning banner appears
    • System remains operational
  4. Action Required:
    • Contact support with new MAC address
    • Upload new license file

Timeline: 30 days to complete


Scenario 4: License AND MAC Expired Simultaneously

Situation: Both license expired AND MAC doesn't match

Behavior:

  • License expiration takes precedence
  • System locks after license grace period (60 days)
  • MAC grace period irrelevant if license invalid

Action Required:

  1. Obtain new license with correct MAC address
  2. Upload via LicenseError.aspx
  3. System validates both expiration and MAC
  4. Full access restored

Troubleshooting

Issue: "License File not found" Error

Causes:

  • License file missing from C:\TTCache\
  • Incorrect filename in minuteDbSettings.json
  • LicFileName property empty/null

Resolution:

  1. Check C:\TTCache\ for .lic file
  2. Verify minuteDbSettings.json has correct LicFileName value
  3. Re-upload license via LicenseError.aspx or DataBaseSetup.aspx

Issue: "Failed to Validate License" Error

Causes:

  • Corrupted license file
  • Wrong encryption key
  • Invalid signature
  • Tampered license content

Resolution:

  1. Download fresh copy of license from vendor
  2. Do not edit license file
  3. Upload new license file
  4. Contact support if issue persists

Issue: "MAC Address Mismatch" Error (Outside Grace Period)

Causes:

  • Server MAC changed more than 30 days ago
  • DR grace period expired

Resolution:

  1. Contact support@tentechsoftware.com.au immediately
  2. Provide current server MAC address
  3. Receive new license for current hardware
  4. Upload new license via LicenseError.aspx

Issue: "License Expired" Error (Outside Grace Period)

Causes:

  • License expired more than 60 days ago
  • Grace period exhausted

Resolution:

  1. Contact vendor to purchase/renew license
  2. Upload new license via LicenseError.aspx
  3. Immediate access restored upon upload

Issue: Warning Banners Don't Disappear After License Upload

Causes:

  • Browser cache showing old page
  • License validation failed silently

Resolution:

  1. Hard refresh browser (Ctrl + F5)
  2. Check C:\TEMP\WebServerDebug\ logs for validation errors
  3. Verify license file is valid and not expired
  4. Restart IIS if issue persists: iisreset

Issue: Redirected to DataBaseSetup.aspx After License Upload

Causes:

  • minuteDbSettings.json was deleted/corrupted
  • License upload didn't update settings file

Resolution:

  1. Check if C:\TTCache\minuteDbSettings.json exists
  2. If missing, restore from backup OR
  3. Complete database setup again (database won't be recreated if exists)
  4. Upload license file again

Technical Details

File Locations

FilePathPurpose
Database SettingsC:\TTCache\minuteDbSettings.jsonDatabase connection, license filename, JWT secret
License FileC:\TTCache\[LicFileName].licEncrypted license with expiration, MAC, features
Debug LogsC:\TEMP\WebServerDebug\[Date]_WebServerDebug.logLicense validation logs, errors

Best Practices

For Administrators

  1. Monitor Expiration Dates

    • Set calendar reminders 60 days before expiration
    • Renew licenses proactively, don't wait for warnings
  2. Backup License Files

    • Include C:\TTCache\ in backup procedures
    • Store license files securely off-server
    • Document license renewal contacts
  3. Test License Uploads

    • Test license upload process before expiration
    • Verify new license before old one expires
    • Keep both old and new license files during transition
  4. DR Preparation

    • Document MAC address of production servers
    • Keep support contact information accessible
    • Include license procurement in DR runbooks
  5. Grace Period Awareness

    • Understand 60-day license grace period
    • Understand 30-day MAC grace period
    • Don't rely on grace periods - renew proactively

For Support Teams

  1. Quick License Issuance

    • Have process to issue DR licenses within 24 hours
    • Collect MAC address before issuing license
    • Verify company/customer before issuing
  2. Communication

    • Notify customers 90 days before expiration
    • Provide clear upload instructions
    • Offer remote assistance if needed
  3. Troubleshooting

    • Check debug logs first: C:\TEMP\WebServerDebug\
    • Verify MAC address matches license
    • Confirm license file not corrupted

Summary

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

Tentech