Releases: srkyn/lapse
Releases · srkyn/lapse
v0.1.0
lapse v0.1.0
Initial public release.
What It Does
- Queries Microsoft Graph API with a server-side
$filteronapproximateLastSignInDateTimeto pull stale device candidates. -
- Cross-checks each candidate against
auditLogs/signInsfor actual interactive user authentication — eliminating false positives from background sync, Windows Update heartbeats, and MDM check-ins.
- Cross-checks each candidate against
-
- Excludes hybrid-joined devices by default.
-
--company-onlyexcludes BYOD devices.
-
--skip-vdiexcludes non-persistent VDI registrations.
-
--disablesetsaccountEnabled = false— reversible, no deletion.
-
--deletepermanently removes stale devices (confirmation prompt unless--force).
-
--dry-runproduces a full report with no changes made.
-
- JSON and CSV output for review workflows.
-
- Parallel sign-in log checks via
concurrent.futureswithRetry-Afterbackoff.
- Parallel sign-in log checks via
-
- Persistent token cache; supports device code flow and client credentials.
Deployment Stages
- Audit —
--dry-runfor a week, look for false positives. -
- Review —
--output-csv, human approves before any action.
- Review —
-
- Disable —
--disablefor two weeks, confirm nothing legitimate breaks.
- Disable —
-
- Purge —
--delete, schedule as weekly automation.
- Purge —
Installation
git clone https://github.com/srkyn/lapse.git
cd lapse && pip install .
lp --version
Validation
- 37 unit tests pass.
-
- CI passes on Python 3.8 and 3.12.