You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 9ea4f49
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/source/License-configuration.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,9 +40,13 @@ No code change is required when using an environment variable—just register Au
40
40
Licensing is enforced via log messages at various levels:
41
41
42
42
- INFO: Valid license message
43
-
- WARNING: Missing license message
43
+
- WARNING: Missing license message, or a license term that has ended but is still within its grace period
44
44
- ERROR: Invalid/expired license message
45
45
46
+
### Renewal grace period
47
+
48
+
License keys include a 30-day grace period after the end of their term. When your subscription renews, you receive a new license key, and the previous key keeps logging only a WARNING (not an ERROR) for 30 days after its term ends. This gives you time to deploy the renewed key. Your current license key is always available on your [account page](https://luckypennysoftware.com/account).
49
+
46
50
There is no other license enforcement besides log messages. No central license server, no outbound HTTP calls, no degrading or disabling of features.
47
51
48
52
The log messages are logged using standard `Microsoft.Extensions.Logging` loggers under the category name `LuckyPennySoftware.AutoMapper.License`.
"Your license for the Lucky Penny software AutoMapper expired {expiredDaysAgo} days ago, but perpetual licensing is active because the build date ({buildDate:O}) is before the license expiration date ({licenseExpiration:O}).",
49
-
diff,_buildDate,license.ExpirationDate);
77
+
diff,_buildDate,termEnd);
50
78
// Don't add to errors - perpetual fallback applies
51
79
}
52
80
else
53
81
{
54
-
errors.Add($"Your license for the Lucky Penny software AutoMapper expired {diff} days ago.");
82
+
Expired(diff);
55
83
}
56
84
}
57
85
else
@@ -61,7 +89,7 @@ public void Validate(License license)
61
89
_logger.LogWarning(
62
90
"Your license for the Lucky Penny software AutoMapper has the perpetual flag set, but the build date could not be determined. Perpetual licensing is unavailable.");
63
91
}
64
-
errors.Add($"Your license for the Lucky Penny software AutoMapper expired {diff} days ago.");
92
+
Expired(diff);
65
93
}
66
94
}
67
95
@@ -81,12 +109,16 @@ public void Validate(License license)
81
109
_logger.LogError(
82
110
"Please visit https://luckypennysoftware.com to obtain a valid license for the Lucky Penny software AutoMapper.");
83
111
}
112
+
elseif(warning!=null)
113
+
{
114
+
_logger.LogWarning(warning);
115
+
}
84
116
else
85
117
{
86
118
_logger.LogInformation("You have a valid license key for the Lucky Penny software {type} {edition} edition. The license expires on {licenseExpiration}.",
0 commit comments