Retention
Extendy GeoShield retention controls automatic cleanup of stored Extendy GeoShield login event records.
Retention is intended to limit how long operational security log rows remain in the live WHMCS database. It does not remove all addon data, it does not remove WHMCS core data, and it does not purge independent backups.
This page is technical product documentation. It is not legal advice, a privacy notice, a data processing agreement, or a compliance certification. Operators remain responsible for assessing their own legal, contractual, retention, and privacy obligations.
What retention applies to
The current retention cleanup applies only to Extendy GeoShield login event records in:
mod_extendy_geoshield_events
These records support the Login Events Log and can include login-event metadata such as WHMCS User ID, Client Account ID when safely resolved, user email snapshot, resolved IP address when available, detected country, provider, alert decision, alert email status, and IP source metadata.
For the read-only admin view, see Login Events Log.
What retention does not clean up
The current retention cleanup does not delete:
- Smart Mode known country records;
- trust token records;
- addon settings;
- encrypted provider credentials;
- WHMCS email templates;
- WHMCS core client, user, invoice, ticket, or authentication data;
- WHMCS Activity Log records;
- server, database, staging, disaster-recovery, or other external backups.
Those data areas have separate operational meanings and are not part of the Phase 11 login-event retention cleanup.
Retention setting
The setting is shown in the Extendy GeoShield Settings page as:
Retention
The internal setting key is:
retention_days
Allowed values:
| UI value | Stored value | Behaviour |
|---|---|---|
| 180 Days | 180 | Automatic cleanup is enabled |
| Disabled (Automatic Cleanup Off) | 0 | Automatic cleanup is disabled |
Default value:
180 Days
Only an explicit stored value of 0 means Disabled. If the setting is missing, empty, invalid, null, or unexpected, the current runtime implementation falls back to 180 days.
When records become eligible for deletion
When retention is set to 180 Days, Extendy GeoShield deletes login event rows whose stored created_at timestamp is older than the calculated cutoff.
The current cutoff is calculated as:
current runtime time - 180 days
Rows are deleted when:
created_at < cutoff
This means rows newer than the cutoff remain, and rows exactly at or after the cutoff are not selected by that cleanup comparison.
The addon stores and compares its event timestamps using the WHMCS/PHP runtime date-time representation used by the addon. The Login Events page does not apply a separate per-view timezone conversion layer.
Cleanup trigger
Retention cleanup is registered through the WHMCS DailyCronJob hook.
The cleanup is intended to run when the normal WHMCS cron invokes daily cron hooks.
It does not run on every admin page load, client page load, or login event.
If the WHMCS cron is not running, Extendy GeoShield retention cleanup will not run through the scheduled path.
Cleanup frequency and timing
Extendy GeoShield registers a daily cron hook. The exact wall-clock time depends on the WHMCS cron schedule in the operator’s environment.
Rows become eligible after they are older than the configured retention window, but they are removed only when a later scheduled cleanup runs successfully.
For example, a row older than 180 days may remain visible until the next successful WHMCS daily cron execution.
Disabled retention
When Retention is set to Disabled (Automatic Cleanup Off):
- automatic cleanup exits safely;
- no login event rows are deleted by the retention cleanup;
- existing login event rows remain;
- new login event rows can continue accumulating;
- Disabled is not treated as an error.
Use Disabled only if your organisation manages retention separately.
Cleanup failure behaviour
Retention cleanup is designed not to break WHMCS cron execution.
If cleanup fails, the addon catches the failure and writes a safe WHMCS Activity Log summary when activity logging is available.
When rows are deleted successfully, the Activity Log entry contains only a safe summary count, for example that a number of Extendy GeoShield login event records was deleted. It does not include individual event details.
Interaction with the Login Events Log
The Login Events Log displays stored login event records.
When retention cleanup removes old rows, those rows no longer appear in the Extendy GeoShield Login Events Log.
Retention cleanup does not change the behaviour of alert decisions, email sending, GeoIP providers, Smart Mode known countries, or trust links.
Deactivation
Deactivating Extendy GeoShield from WHMCS Admin preserves addon data.
Deactivation is not a full uninstall and does not delete:
- login events;
- known countries;
- trust tokens;
- settings;
- provider credentials;
- email templates.
When the addon is deactivated in WHMCS, its normal addon runtime behaviour and hooks are no longer expected to operate as an active addon.
Full removal and uninstall boundary
This page does not provide the full Manual Full Removal / Uninstall Procedure.
For this retention context, the important boundary is:
- deactivation preserves data;
- Extendy GeoShield does not add table-drop logic to deactivation;
- the current implementation does not rely on a separate documented WHMCS addon uninstall callback;
- full removal of addon files and database tables is a separate administrator action and should be performed only with an appropriate database backup and a documented removal procedure.
Backups and copied environments
Retention cleanup affects the live WHMCS database records that the cleanup deletes.
It does not automatically remove copies of older records from:
- database backups;
- server snapshots;
- staging or development copies;
- disaster-recovery systems;
- external backup providers.
Operators should assess whether their own backup, staging, and disaster-recovery processes need separate retention rules.