Releases: joemanis/ai-offboard
Release list
ai-offboard v0.4.5
Changelog
0.4.2 (2026-08-18)
Noninteractive audit reliability patch.
Fixed
audit --jsonandaudit --bundlenow fail fast when the cached Microsoft
login is missing or expired instead of blocking on a device-code prompt.- Authentication failures are rendered as concise CLI errors instead of Rich
tracebacks or invalid JSON output.
0.4.1 (2026-08-18)
Live-scan reliability patch.
Fixed
- Resolve catalog-matched AI app assignments and application permissions through
a bounded six-worker pool instead of serial 30-second Graph calls. - Preserve explicit
not assessedcoverage when any assignment lookup returns
HTTP 403.
0.4.0 (2026-08-18)
Audit evidence portability for MSP and insurance/compliance workflows.
Added
offboard audit --bundle <path>creates a self-contained evidence ZIP.- Bundles include the Markdown and HTML reports, full machine-readable snapshot,
findings JSON/CSV, coverage metadata, a manifest, and SHA-256 checksums. - Bundle manifests record the package version, tenant, scan counts, and
confidentiality handling warning. - JSON stdout remains clean when bundle creation is combined with
--json.
Changed
- README now documents the evidence-bundle workflow and handling requirements.
0.3.0 (2026-08-17)
Trustworthy Entra inventory and safer operator workflows.
Added
- Real Graph
appRoleAssignedTodiscovery for catalog-matched AI applications, including assigned principal and role attribution. - Enterprise-app inventory counts are separated from actual app-role assignments.
- Delegated OAuth grants and application permissions now include client/resource names, consent type, and grant type where Graph provides them.
- MFA registration coverage states and explicit
NOT_ASSESSEDpolicy results when reports telemetry is unavailable. - Remote web mode with explicit host opt-in, operator token, SameSite session cookie, cross-origin state-change protection, and POST-only logout.
- MSP guard preventing
audit --allfrom reusing an interactive device-code session across tenants. - Graph payload contract tests and a cross-platform built-wheel smoke-test matrix.
Changed
- R4 no longer treats every Entra service principal as a high-privilege assignment.
- R5 findings use readable app/resource attribution and deduplicate identical grants.
- Reports expose data-coverage and app-role-assignment counts instead of overstating inventory.
0.2.0 (2026-08-15)
Zero Trust policy engine, gated remediation, MSP multi-tenant mode, Google Workspace. Full v1 → v3 roadmap delivered.
Added
- Zero Trust policy engine (v3): declarative YAML policies evaluated against the scan inventory —
offboard policy list/policy check(exit 0 = PASS, 2 = FAIL). Five bundled policies (ZT-001..ZT-005) including the default-deny approved-app allowlist. Named checks only — policy files can never execute code. offboard execute(v2): applies remediation (block sign-in, revoke tokens, remove app assignment) behind an explicit approval gate; every mutation logged to a local audit table.- Google Workspace connector: reads users + OAuth-connected AI apps via Admin SDK Directory API (
offboard audit --workspace); R5 scope normalization covers Google OAuth URLs. Full setup guide indocs/connectors.md. - Scheduled recurring audits:
offboard schedule add/remove/list/run-due(daily/weekly/monthly) with SMTP report delivery. - Multi-tenant MSP mode:
offboard tenant add/remove/list+offboard audit --allfindings matrix. - Trend comparison:
offboard report --comparediffs the last two saved scans. - CSV export:
offboard audit --csv. - AI-app catalog expanded 5 → 41 real tools with DLP tiers; specificity-aware matcher (longest match wins).
- Web UI: scan progress in CLI, pre-seeded sample report on first load, findings severity filter, Zero Trust policy compliance view.
- PyPI publication:
pip install "ai-offboard[web]".
Changed
- Connector layer refactored around a
Connectorinterface + auth providers (device code / client credentials);build_connectorauto-detects. - Device-code auth replaces App Registration as the recommended path — no tenant ID or client secret needed.
0.1.0 (2026-08-13)
Initial release — read-only Microsoft 365 AI tool audit and offboarding report tool.
Added
- Connector: Microsoft Entra ID (Graph) read-only scanner via MSAL client credentials.
- Mock connector: deterministic demo snapshot —
offboard audit --mockworks with zero Azure setup. - AI-app catalog (JSON) with DLP-risk tiers; substring matcher for fast community contributions.
- Risk rules: R1 stale/unused accounts, R2 MFA gap, R4 high-privilege app.
- Dry-run revocation planner — typed revoke steps, provably executes nothing.
- Audit report — Markdown + HTML output with findings table and remediation steps.
- JSON output —
offboard audit --jsonfor machine consumption. - CLI:
audit(--report, --mock, --json),plan(--mock),setup(interactive wizard),doctor(pre-flight checks),web(local UI),--version. - Setup wizard (
offboard setup) — one-time interactive connector configuration that writes.env. - Local web UI (
offboard web) — FastAPI-based dashboard with scan results, drill-down, and report download. - Pre-flight doctor (
offboard doctor) — validates.env, config completeness, and auth connectivity. - README with full usage, screenshots, and quick-start.
- Docs:
docs/connectors.md(Entra App Registration guide),SPEC.md(build spec),examples/(sample reports + screenshots). - CI: GitHub Actions (ruff + pytest on push/PR).
- Security posture: read-only by design (v1),
SECURITY.md, Apache-2.0 license.
ai-offboard v0.4.4
Changelog
0.4.2 (2026-08-18)
Noninteractive audit reliability patch.
Fixed
audit --jsonandaudit --bundlenow fail fast when the cached Microsoft
login is missing or expired instead of blocking on a device-code prompt.- Authentication failures are rendered as concise CLI errors instead of Rich
tracebacks or invalid JSON output.
0.4.1 (2026-08-18)
Live-scan reliability patch.
Fixed
- Resolve catalog-matched AI app assignments and application permissions through
a bounded six-worker pool instead of serial 30-second Graph calls. - Preserve explicit
not assessedcoverage when any assignment lookup returns
HTTP 403.
0.4.0 (2026-08-18)
Audit evidence portability for MSP and insurance/compliance workflows.
Added
offboard audit --bundle <path>creates a self-contained evidence ZIP.- Bundles include the Markdown and HTML reports, full machine-readable snapshot,
findings JSON/CSV, coverage metadata, a manifest, and SHA-256 checksums. - Bundle manifests record the package version, tenant, scan counts, and
confidentiality handling warning. - JSON stdout remains clean when bundle creation is combined with
--json.
Changed
- README now documents the evidence-bundle workflow and handling requirements.
0.3.0 (2026-08-17)
Trustworthy Entra inventory and safer operator workflows.
Added
- Real Graph
appRoleAssignedTodiscovery for catalog-matched AI applications, including assigned principal and role attribution. - Enterprise-app inventory counts are separated from actual app-role assignments.
- Delegated OAuth grants and application permissions now include client/resource names, consent type, and grant type where Graph provides them.
- MFA registration coverage states and explicit
NOT_ASSESSEDpolicy results when reports telemetry is unavailable. - Remote web mode with explicit host opt-in, operator token, SameSite session cookie, cross-origin state-change protection, and POST-only logout.
- MSP guard preventing
audit --allfrom reusing an interactive device-code session across tenants. - Graph payload contract tests and a cross-platform built-wheel smoke-test matrix.
Changed
- R4 no longer treats every Entra service principal as a high-privilege assignment.
- R5 findings use readable app/resource attribution and deduplicate identical grants.
- Reports expose data-coverage and app-role-assignment counts instead of overstating inventory.
0.2.0 (2026-08-15)
Zero Trust policy engine, gated remediation, MSP multi-tenant mode, Google Workspace. Full v1 → v3 roadmap delivered.
Added
- Zero Trust policy engine (v3): declarative YAML policies evaluated against the scan inventory —
offboard policy list/policy check(exit 0 = PASS, 2 = FAIL). Five bundled policies (ZT-001..ZT-005) including the default-deny approved-app allowlist. Named checks only — policy files can never execute code. offboard execute(v2): applies remediation (block sign-in, revoke tokens, remove app assignment) behind an explicit approval gate; every mutation logged to a local audit table.- Google Workspace connector: reads users + OAuth-connected AI apps via Admin SDK Directory API (
offboard audit --workspace); R5 scope normalization covers Google OAuth URLs. Full setup guide indocs/connectors.md. - Scheduled recurring audits:
offboard schedule add/remove/list/run-due(daily/weekly/monthly) with SMTP report delivery. - Multi-tenant MSP mode:
offboard tenant add/remove/list+offboard audit --allfindings matrix. - Trend comparison:
offboard report --comparediffs the last two saved scans. - CSV export:
offboard audit --csv. - AI-app catalog expanded 5 → 41 real tools with DLP tiers; specificity-aware matcher (longest match wins).
- Web UI: scan progress in CLI, pre-seeded sample report on first load, findings severity filter, Zero Trust policy compliance view.
- PyPI publication:
pip install "ai-offboard[web]".
Changed
- Connector layer refactored around a
Connectorinterface + auth providers (device code / client credentials);build_connectorauto-detects. - Device-code auth replaces App Registration as the recommended path — no tenant ID or client secret needed.
0.1.0 (2026-08-13)
Initial release — read-only Microsoft 365 AI tool audit and offboarding report tool.
Added
- Connector: Microsoft Entra ID (Graph) read-only scanner via MSAL client credentials.
- Mock connector: deterministic demo snapshot —
offboard audit --mockworks with zero Azure setup. - AI-app catalog (JSON) with DLP-risk tiers; substring matcher for fast community contributions.
- Risk rules: R1 stale/unused accounts, R2 MFA gap, R4 high-privilege app.
- Dry-run revocation planner — typed revoke steps, provably executes nothing.
- Audit report — Markdown + HTML output with findings table and remediation steps.
- JSON output —
offboard audit --jsonfor machine consumption. - CLI:
audit(--report, --mock, --json),plan(--mock),setup(interactive wizard),doctor(pre-flight checks),web(local UI),--version. - Setup wizard (
offboard setup) — one-time interactive connector configuration that writes.env. - Local web UI (
offboard web) — FastAPI-based dashboard with scan results, drill-down, and report download. - Pre-flight doctor (
offboard doctor) — validates.env, config completeness, and auth connectivity. - README with full usage, screenshots, and quick-start.
- Docs:
docs/connectors.md(Entra App Registration guide),SPEC.md(build spec),examples/(sample reports + screenshots). - CI: GitHub Actions (ruff + pytest on push/PR).
- Security posture: read-only by design (v1),
SECURITY.md, Apache-2.0 license.
ai-offboard v0.4.3
Changelog
0.4.2 (2026-08-18)
Noninteractive audit reliability patch.
Fixed
audit --jsonandaudit --bundlenow fail fast when the cached Microsoft
login is missing or expired instead of blocking on a device-code prompt.- Authentication failures are rendered as concise CLI errors instead of Rich
tracebacks or invalid JSON output.
0.4.1 (2026-08-18)
Live-scan reliability patch.
Fixed
- Resolve catalog-matched AI app assignments and application permissions through
a bounded six-worker pool instead of serial 30-second Graph calls. - Preserve explicit
not assessedcoverage when any assignment lookup returns
HTTP 403.
0.4.0 (2026-08-18)
Audit evidence portability for MSP and insurance/compliance workflows.
Added
offboard audit --bundle <path>creates a self-contained evidence ZIP.- Bundles include the Markdown and HTML reports, full machine-readable snapshot,
findings JSON/CSV, coverage metadata, a manifest, and SHA-256 checksums. - Bundle manifests record the package version, tenant, scan counts, and
confidentiality handling warning. - JSON stdout remains clean when bundle creation is combined with
--json.
Changed
- README now documents the evidence-bundle workflow and handling requirements.
0.3.0 (2026-08-17)
Trustworthy Entra inventory and safer operator workflows.
Added
- Real Graph
appRoleAssignedTodiscovery for catalog-matched AI applications, including assigned principal and role attribution. - Enterprise-app inventory counts are separated from actual app-role assignments.
- Delegated OAuth grants and application permissions now include client/resource names, consent type, and grant type where Graph provides them.
- MFA registration coverage states and explicit
NOT_ASSESSEDpolicy results when reports telemetry is unavailable. - Remote web mode with explicit host opt-in, operator token, SameSite session cookie, cross-origin state-change protection, and POST-only logout.
- MSP guard preventing
audit --allfrom reusing an interactive device-code session across tenants. - Graph payload contract tests and a cross-platform built-wheel smoke-test matrix.
Changed
- R4 no longer treats every Entra service principal as a high-privilege assignment.
- R5 findings use readable app/resource attribution and deduplicate identical grants.
- Reports expose data-coverage and app-role-assignment counts instead of overstating inventory.
0.2.0 (2026-08-15)
Zero Trust policy engine, gated remediation, MSP multi-tenant mode, Google Workspace. Full v1 → v3 roadmap delivered.
Added
- Zero Trust policy engine (v3): declarative YAML policies evaluated against the scan inventory —
offboard policy list/policy check(exit 0 = PASS, 2 = FAIL). Five bundled policies (ZT-001..ZT-005) including the default-deny approved-app allowlist. Named checks only — policy files can never execute code. offboard execute(v2): applies remediation (block sign-in, revoke tokens, remove app assignment) behind an explicit approval gate; every mutation logged to a local audit table.- Google Workspace connector: reads users + OAuth-connected AI apps via Admin SDK Directory API (
offboard audit --workspace); R5 scope normalization covers Google OAuth URLs. Full setup guide indocs/connectors.md. - Scheduled recurring audits:
offboard schedule add/remove/list/run-due(daily/weekly/monthly) with SMTP report delivery. - Multi-tenant MSP mode:
offboard tenant add/remove/list+offboard audit --allfindings matrix. - Trend comparison:
offboard report --comparediffs the last two saved scans. - CSV export:
offboard audit --csv. - AI-app catalog expanded 5 → 41 real tools with DLP tiers; specificity-aware matcher (longest match wins).
- Web UI: scan progress in CLI, pre-seeded sample report on first load, findings severity filter, Zero Trust policy compliance view.
- PyPI publication:
pip install "ai-offboard[web]".
Changed
- Connector layer refactored around a
Connectorinterface + auth providers (device code / client credentials);build_connectorauto-detects. - Device-code auth replaces App Registration as the recommended path — no tenant ID or client secret needed.
0.1.0 (2026-08-13)
Initial release — read-only Microsoft 365 AI tool audit and offboarding report tool.
Added
- Connector: Microsoft Entra ID (Graph) read-only scanner via MSAL client credentials.
- Mock connector: deterministic demo snapshot —
offboard audit --mockworks with zero Azure setup. - AI-app catalog (JSON) with DLP-risk tiers; substring matcher for fast community contributions.
- Risk rules: R1 stale/unused accounts, R2 MFA gap, R4 high-privilege app.
- Dry-run revocation planner — typed revoke steps, provably executes nothing.
- Audit report — Markdown + HTML output with findings table and remediation steps.
- JSON output —
offboard audit --jsonfor machine consumption. - CLI:
audit(--report, --mock, --json),plan(--mock),setup(interactive wizard),doctor(pre-flight checks),web(local UI),--version. - Setup wizard (
offboard setup) — one-time interactive connector configuration that writes.env. - Local web UI (
offboard web) — FastAPI-based dashboard with scan results, drill-down, and report download. - Pre-flight doctor (
offboard doctor) — validates.env, config completeness, and auth connectivity. - README with full usage, screenshots, and quick-start.
- Docs:
docs/connectors.md(Entra App Registration guide),SPEC.md(build spec),examples/(sample reports + screenshots). - CI: GitHub Actions (ruff + pytest on push/PR).
- Security posture: read-only by design (v1),
SECURITY.md, Apache-2.0 license.
ai-offboard v0.4.2
Changelog
0.4.2 (2026-08-18)
Noninteractive audit reliability patch.
Fixed
audit --jsonandaudit --bundlenow fail fast when the cached Microsoft
login is missing or expired instead of blocking on a device-code prompt.- Authentication failures are rendered as concise CLI errors instead of Rich
tracebacks or invalid JSON output.
0.4.1 (2026-08-18)
Live-scan reliability patch.
Fixed
- Resolve catalog-matched AI app assignments and application permissions through
a bounded six-worker pool instead of serial 30-second Graph calls. - Preserve explicit
not assessedcoverage when any assignment lookup returns
HTTP 403.
0.4.0 (2026-08-18)
Audit evidence portability for MSP and insurance/compliance workflows.
Added
offboard audit --bundle <path>creates a self-contained evidence ZIP.- Bundles include the Markdown and HTML reports, full machine-readable snapshot,
findings JSON/CSV, coverage metadata, a manifest, and SHA-256 checksums. - Bundle manifests record the package version, tenant, scan counts, and
confidentiality handling warning. - JSON stdout remains clean when bundle creation is combined with
--json.
Changed
- README now documents the evidence-bundle workflow and handling requirements.
0.3.0 (2026-08-17)
Trustworthy Entra inventory and safer operator workflows.
Added
- Real Graph
appRoleAssignedTodiscovery for catalog-matched AI applications, including assigned principal and role attribution. - Enterprise-app inventory counts are separated from actual app-role assignments.
- Delegated OAuth grants and application permissions now include client/resource names, consent type, and grant type where Graph provides them.
- MFA registration coverage states and explicit
NOT_ASSESSEDpolicy results when reports telemetry is unavailable. - Remote web mode with explicit host opt-in, operator token, SameSite session cookie, cross-origin state-change protection, and POST-only logout.
- MSP guard preventing
audit --allfrom reusing an interactive device-code session across tenants. - Graph payload contract tests and a cross-platform built-wheel smoke-test matrix.
Changed
- R4 no longer treats every Entra service principal as a high-privilege assignment.
- R5 findings use readable app/resource attribution and deduplicate identical grants.
- Reports expose data-coverage and app-role-assignment counts instead of overstating inventory.
0.2.0 (2026-08-15)
Zero Trust policy engine, gated remediation, MSP multi-tenant mode, Google Workspace. Full v1 → v3 roadmap delivered.
Added
- Zero Trust policy engine (v3): declarative YAML policies evaluated against the scan inventory —
offboard policy list/policy check(exit 0 = PASS, 2 = FAIL). Five bundled policies (ZT-001..ZT-005) including the default-deny approved-app allowlist. Named checks only — policy files can never execute code. offboard execute(v2): applies remediation (block sign-in, revoke tokens, remove app assignment) behind an explicit approval gate; every mutation logged to a local audit table.- Google Workspace connector: reads users + OAuth-connected AI apps via Admin SDK Directory API (
offboard audit --workspace); R5 scope normalization covers Google OAuth URLs. Full setup guide indocs/connectors.md. - Scheduled recurring audits:
offboard schedule add/remove/list/run-due(daily/weekly/monthly) with SMTP report delivery. - Multi-tenant MSP mode:
offboard tenant add/remove/list+offboard audit --allfindings matrix. - Trend comparison:
offboard report --comparediffs the last two saved scans. - CSV export:
offboard audit --csv. - AI-app catalog expanded 5 → 41 real tools with DLP tiers; specificity-aware matcher (longest match wins).
- Web UI: scan progress in CLI, pre-seeded sample report on first load, findings severity filter, Zero Trust policy compliance view.
- PyPI publication:
pip install "ai-offboard[web]".
Changed
- Connector layer refactored around a
Connectorinterface + auth providers (device code / client credentials);build_connectorauto-detects. - Device-code auth replaces App Registration as the recommended path — no tenant ID or client secret needed.
0.1.0 (2026-08-13)
Initial release — read-only Microsoft 365 AI tool audit and offboarding report tool.
Added
- Connector: Microsoft Entra ID (Graph) read-only scanner via MSAL client credentials.
- Mock connector: deterministic demo snapshot —
offboard audit --mockworks with zero Azure setup. - AI-app catalog (JSON) with DLP-risk tiers; substring matcher for fast community contributions.
- Risk rules: R1 stale/unused accounts, R2 MFA gap, R4 high-privilege app.
- Dry-run revocation planner — typed revoke steps, provably executes nothing.
- Audit report — Markdown + HTML output with findings table and remediation steps.
- JSON output —
offboard audit --jsonfor machine consumption. - CLI:
audit(--report, --mock, --json),plan(--mock),setup(interactive wizard),doctor(pre-flight checks),web(local UI),--version. - Setup wizard (
offboard setup) — one-time interactive connector configuration that writes.env. - Local web UI (
offboard web) — FastAPI-based dashboard with scan results, drill-down, and report download. - Pre-flight doctor (
offboard doctor) — validates.env, config completeness, and auth connectivity. - README with full usage, screenshots, and quick-start.
- Docs:
docs/connectors.md(Entra App Registration guide),SPEC.md(build spec),examples/(sample reports + screenshots). - CI: GitHub Actions (ruff + pytest on push/PR).
- Security posture: read-only by design (v1),
SECURITY.md, Apache-2.0 license.
ai-offboard v0.4.1
Changelog
0.4.1 (2026-08-18)
Live-scan reliability patch.
Fixed
- Resolve catalog-matched AI app assignments and application permissions through
a bounded six-worker pool instead of serial 30-second Graph calls. - Preserve explicit
not assessedcoverage when any assignment lookup returns
HTTP 403.
0.4.0 (2026-08-18)
Audit evidence portability for MSP and insurance/compliance workflows.
Added
offboard audit --bundle <path>creates a self-contained evidence ZIP.- Bundles include the Markdown and HTML reports, full machine-readable snapshot,
findings JSON/CSV, coverage metadata, a manifest, and SHA-256 checksums. - Bundle manifests record the package version, tenant, scan counts, and
confidentiality handling warning. - JSON stdout remains clean when bundle creation is combined with
--json.
Changed
- README now documents the evidence-bundle workflow and handling requirements.
0.3.0 (2026-08-17)
Trustworthy Entra inventory and safer operator workflows.
Added
- Real Graph
appRoleAssignedTodiscovery for catalog-matched AI applications, including assigned principal and role attribution. - Enterprise-app inventory counts are separated from actual app-role assignments.
- Delegated OAuth grants and application permissions now include client/resource names, consent type, and grant type where Graph provides them.
- MFA registration coverage states and explicit
NOT_ASSESSEDpolicy results when reports telemetry is unavailable. - Remote web mode with explicit host opt-in, operator token, SameSite session cookie, cross-origin state-change protection, and POST-only logout.
- MSP guard preventing
audit --allfrom reusing an interactive device-code session across tenants. - Graph payload contract tests and a cross-platform built-wheel smoke-test matrix.
Changed
- R4 no longer treats every Entra service principal as a high-privilege assignment.
- R5 findings use readable app/resource attribution and deduplicate identical grants.
- Reports expose data-coverage and app-role-assignment counts instead of overstating inventory.
0.2.0 (2026-08-15)
Zero Trust policy engine, gated remediation, MSP multi-tenant mode, Google Workspace. Full v1 → v3 roadmap delivered.
Added
- Zero Trust policy engine (v3): declarative YAML policies evaluated against the scan inventory —
offboard policy list/policy check(exit 0 = PASS, 2 = FAIL). Five bundled policies (ZT-001..ZT-005) including the default-deny approved-app allowlist. Named checks only — policy files can never execute code. offboard execute(v2): applies remediation (block sign-in, revoke tokens, remove app assignment) behind an explicit approval gate; every mutation logged to a local audit table.- Google Workspace connector: reads users + OAuth-connected AI apps via Admin SDK Directory API (
offboard audit --workspace); R5 scope normalization covers Google OAuth URLs. Full setup guide indocs/connectors.md. - Scheduled recurring audits:
offboard schedule add/remove/list/run-due(daily/weekly/monthly) with SMTP report delivery. - Multi-tenant MSP mode:
offboard tenant add/remove/list+offboard audit --allfindings matrix. - Trend comparison:
offboard report --comparediffs the last two saved scans. - CSV export:
offboard audit --csv. - AI-app catalog expanded 5 → 41 real tools with DLP tiers; specificity-aware matcher (longest match wins).
- Web UI: scan progress in CLI, pre-seeded sample report on first load, findings severity filter, Zero Trust policy compliance view.
- PyPI publication:
pip install "ai-offboard[web]".
Changed
- Connector layer refactored around a
Connectorinterface + auth providers (device code / client credentials);build_connectorauto-detects. - Device-code auth replaces App Registration as the recommended path — no tenant ID or client secret needed.
0.1.0 (2026-08-13)
Initial release — read-only Microsoft 365 AI tool audit and offboarding report tool.
Added
- Connector: Microsoft Entra ID (Graph) read-only scanner via MSAL client credentials.
- Mock connector: deterministic demo snapshot —
offboard audit --mockworks with zero Azure setup. - AI-app catalog (JSON) with DLP-risk tiers; substring matcher for fast community contributions.
- Risk rules: R1 stale/unused accounts, R2 MFA gap, R4 high-privilege app.
- Dry-run revocation planner — typed revoke steps, provably executes nothing.
- Audit report — Markdown + HTML output with findings table and remediation steps.
- JSON output —
offboard audit --jsonfor machine consumption. - CLI:
audit(--report, --mock, --json),plan(--mock),setup(interactive wizard),doctor(pre-flight checks),web(local UI),--version. - Setup wizard (
offboard setup) — one-time interactive connector configuration that writes.env. - Local web UI (
offboard web) — FastAPI-based dashboard with scan results, drill-down, and report download. - Pre-flight doctor (
offboard doctor) — validates.env, config completeness, and auth connectivity. - README with full usage, screenshots, and quick-start.
- Docs:
docs/connectors.md(Entra App Registration guide),SPEC.md(build spec),examples/(sample reports + screenshots). - CI: GitHub Actions (ruff + pytest on push/PR).
- Security posture: read-only by design (v1),
SECURITY.md, Apache-2.0 license.
ai-offboard v0.4.0
Changelog
0.4.0 (2026-08-18)
Audit evidence portability for MSP and insurance/compliance workflows.
Added
offboard audit --bundle <path>creates a self-contained evidence ZIP.- Bundles include the Markdown and HTML reports, full machine-readable snapshot,
findings JSON/CSV, coverage metadata, a manifest, and SHA-256 checksums. - Bundle manifests record the package version, tenant, scan counts, and
confidentiality handling warning. - JSON stdout remains clean when bundle creation is combined with
--json.
Changed
- README now documents the evidence-bundle workflow and handling requirements.
0.3.0 (2026-08-17)
Trustworthy Entra inventory and safer operator workflows.
Added
- Real Graph
appRoleAssignedTodiscovery for catalog-matched AI applications, including assigned principal and role attribution. - Enterprise-app inventory counts are separated from actual app-role assignments.
- Delegated OAuth grants and application permissions now include client/resource names, consent type, and grant type where Graph provides them.
- MFA registration coverage states and explicit
NOT_ASSESSEDpolicy results when reports telemetry is unavailable. - Remote web mode with explicit host opt-in, operator token, SameSite session cookie, cross-origin state-change protection, and POST-only logout.
- MSP guard preventing
audit --allfrom reusing an interactive device-code session across tenants. - Graph payload contract tests and a cross-platform built-wheel smoke-test matrix.
Changed
- R4 no longer treats every Entra service principal as a high-privilege assignment.
- R5 findings use readable app/resource attribution and deduplicate identical grants.
- Reports expose data-coverage and app-role-assignment counts instead of overstating inventory.
0.2.0 (2026-08-15)
Zero Trust policy engine, gated remediation, MSP multi-tenant mode, Google Workspace. Full v1 → v3 roadmap delivered.
Added
- Zero Trust policy engine (v3): declarative YAML policies evaluated against the scan inventory —
offboard policy list/policy check(exit 0 = PASS, 2 = FAIL). Five bundled policies (ZT-001..ZT-005) including the default-deny approved-app allowlist. Named checks only — policy files can never execute code. offboard execute(v2): applies remediation (block sign-in, revoke tokens, remove app assignment) behind an explicit approval gate; every mutation logged to a local audit table.- Google Workspace connector: reads users + OAuth-connected AI apps via Admin SDK Directory API (
offboard audit --workspace); R5 scope normalization covers Google OAuth URLs. Full setup guide indocs/connectors.md. - Scheduled recurring audits:
offboard schedule add/remove/list/run-due(daily/weekly/monthly) with SMTP report delivery. - Multi-tenant MSP mode:
offboard tenant add/remove/list+offboard audit --allfindings matrix. - Trend comparison:
offboard report --comparediffs the last two saved scans. - CSV export:
offboard audit --csv. - AI-app catalog expanded 5 → 41 real tools with DLP tiers; specificity-aware matcher (longest match wins).
- Web UI: scan progress in CLI, pre-seeded sample report on first load, findings severity filter, Zero Trust policy compliance view.
- PyPI publication:
pip install "ai-offboard[web]".
Changed
- Connector layer refactored around a
Connectorinterface + auth providers (device code / client credentials);build_connectorauto-detects. - Device-code auth replaces App Registration as the recommended path — no tenant ID or client secret needed.
0.1.0 (2026-08-13)
Initial release — read-only Microsoft 365 AI tool audit and offboarding report tool.
Added
- Connector: Microsoft Entra ID (Graph) read-only scanner via MSAL client credentials.
- Mock connector: deterministic demo snapshot —
offboard audit --mockworks with zero Azure setup. - AI-app catalog (JSON) with DLP-risk tiers; substring matcher for fast community contributions.
- Risk rules: R1 stale/unused accounts, R2 MFA gap, R4 high-privilege app.
- Dry-run revocation planner — typed revoke steps, provably executes nothing.
- Audit report — Markdown + HTML output with findings table and remediation steps.
- JSON output —
offboard audit --jsonfor machine consumption. - CLI:
audit(--report, --mock, --json),plan(--mock),setup(interactive wizard),doctor(pre-flight checks),web(local UI),--version. - Setup wizard (
offboard setup) — one-time interactive connector configuration that writes.env. - Local web UI (
offboard web) — FastAPI-based dashboard with scan results, drill-down, and report download. - Pre-flight doctor (
offboard doctor) — validates.env, config completeness, and auth connectivity. - README with full usage, screenshots, and quick-start.
- Docs:
docs/connectors.md(Entra App Registration guide),SPEC.md(build spec),examples/(sample reports + screenshots). - CI: GitHub Actions (ruff + pytest on push/PR).
- Security posture: read-only by design (v1),
SECURITY.md, Apache-2.0 license.
ai-offboard v0.3.0
Changelog
0.3.0 (2026-08-17)
Trustworthy Entra inventory and safer operator workflows.
Added
- Real Graph
appRoleAssignedTodiscovery for catalog-matched AI applications, including assigned principal and role attribution. - Enterprise-app inventory counts are separated from actual app-role assignments.
- Delegated OAuth grants and application permissions now include client/resource names, consent type, and grant type where Graph provides them.
- MFA registration coverage states and explicit
NOT_ASSESSEDpolicy results when reports telemetry is unavailable. - Remote web mode with explicit host opt-in, operator token, SameSite session cookie, cross-origin state-change protection, and POST-only logout.
- MSP guard preventing
audit --allfrom reusing an interactive device-code session across tenants. - Graph payload contract tests and a cross-platform built-wheel smoke-test matrix.
Changed
- R4 no longer treats every Entra service principal as a high-privilege assignment.
- R5 findings use readable app/resource attribution and deduplicate identical grants.
- Reports expose data-coverage and app-role-assignment counts instead of overstating inventory.
0.2.0 (2026-08-15)
Zero Trust policy engine, gated remediation, MSP multi-tenant mode, Google Workspace. Full v1 → v3 roadmap delivered.
Added
- Zero Trust policy engine (v3): declarative YAML policies evaluated against the scan inventory —
offboard policy list/policy check(exit 0 = PASS, 2 = FAIL). Five bundled policies (ZT-001..ZT-005) including the default-deny approved-app allowlist. Named checks only — policy files can never execute code. offboard execute(v2): applies remediation (block sign-in, revoke tokens, remove app assignment) behind an explicit approval gate; every mutation logged to a local audit table.- Google Workspace connector: reads users + OAuth-connected AI apps via Admin SDK Directory API (
offboard audit --workspace); R5 scope normalization covers Google OAuth URLs. Full setup guide indocs/connectors.md. - Scheduled recurring audits:
offboard schedule add/remove/list/run-due(daily/weekly/monthly) with SMTP report delivery. - Multi-tenant MSP mode:
offboard tenant add/remove/list+offboard audit --allfindings matrix. - Trend comparison:
offboard report --comparediffs the last two saved scans. - CSV export:
offboard audit --csv. - AI-app catalog expanded 5 → 41 real tools with DLP tiers; specificity-aware matcher (longest match wins).
- Web UI: scan progress in CLI, pre-seeded sample report on first load, findings severity filter, Zero Trust policy compliance view.
- PyPI publication:
pip install "ai-offboard[web]".
Changed
- Connector layer refactored around a
Connectorinterface + auth providers (device code / client credentials);build_connectorauto-detects. - Device-code auth replaces App Registration as the recommended path — no tenant ID or client secret needed.
0.1.0 (2026-08-13)
Initial release — read-only Microsoft 365 AI tool audit and offboarding report tool.
Added
- Connector: Microsoft Entra ID (Graph) read-only scanner via MSAL client credentials.
- Mock connector: deterministic demo snapshot —
offboard audit --mockworks with zero Azure setup. - AI-app catalog (JSON) with DLP-risk tiers; substring matcher for fast community contributions.
- Risk rules: R1 stale/unused accounts, R2 MFA gap, R4 high-privilege app.
- Dry-run revocation planner — typed revoke steps, provably executes nothing.
- Audit report — Markdown + HTML output with findings table and remediation steps.
- JSON output —
offboard audit --jsonfor machine consumption. - CLI:
audit(--report, --mock, --json),plan(--mock),setup(interactive wizard),doctor(pre-flight checks),web(local UI),--version. - Setup wizard (
offboard setup) — one-time interactive connector configuration that writes.env. - Local web UI (
offboard web) — FastAPI-based dashboard with scan results, drill-down, and report download. - Pre-flight doctor (
offboard doctor) — validates.env, config completeness, and auth connectivity. - README with full usage, screenshots, and quick-start.
- Docs:
docs/connectors.md(Entra App Registration guide),SPEC.md(build spec),examples/(sample reports + screenshots). - CI: GitHub Actions (ruff + pytest on push/PR).
- Security posture: read-only by design (v1),
SECURITY.md, Apache-2.0 license.
ai-offboard 0.2.0 — Zero Trust for AI
ai-offboard 0.2.0 — Zero Trust for AI arrives
The full v1 → v3 roadmap from SPEC.md is delivered: audit → execute → Zero Trust policy engine.
What's new since 0.1.0
⚡ Zero Trust policy engine (v3)
Declarative policy-as-code evaluated against the scan inventory. Policies use named checks only — no eval, so opening a policy file can never execute code.
offboard policy list # checks + bundled policies
offboard policy check # scan → evaluate → exit 0 (PASS) / 2 (FAIL)
offboard policy check --json # machine-readable compliance reportBundled baseline (5 policies):
- ZT-001 No stale or orphaned access (high)
- ZT-002 MFA enforced on all principals (high)
- ZT-003 No high-privilege AI app assignments (high)
- ZT-004 No broad OAuth grants (high)
- ZT-005 Approved AI-app allowlist — default-deny Zero Trust (critical)
🎯 offboard execute — real remediation (v2)
Audit findings become real actions — block sign-in, revoke tokens, remove app assignments — behind an explicit approval gate. Every mutation is appended to the local audit log.
offboard plan --tenant <id> # review what will change (read-only)
offboard execute --tenant <id> # approve each step, then it applies📅 Scheduled recurring audits
offboard schedule add/remove/list/run-due — daily/weekly/monthly audits driven from cron or Task Scheduler, with SMTP report delivery.
🏢 Multi-tenant (MSP mode)
offboard tenant add/remove/list + offboard audit --all sweeps every registered tenant into a findings matrix.
📈 Trend comparison + exports
offboard report --compare diffs the last two scans (new/resolved/unchanged); audit --csv exports findings for ConnectWise/Ninja/spreadsheets.
🔌 Google Workspace connector (v1b)
Reads users + their OAuth-connected AI apps (ChatGPT, Fireflies, Zapier, …) through the Admin SDK Directory API — same risk rules as Entra.
🗂️ 41-app AI catalog
apps.json grew from 5 → 41 real AI tools with DLP tiers, plus a specificity-aware matcher (no more "GitHub Copilot → Microsoft Copilot" false positives).
🖥️ Web UI polish
Scan progress in CLI + pre-seeded sample report on first load + severity filter.
Quick start
pip install git+https://github.com/joemanis/ai-offboard.git
offboard policy check --mock # try the policy engine with a demo snapshotFull changelog
See CHANGELOG.md for the complete list.
Installing: Live on PyPI: pip install "ai-offboard[web]"
v0.1.0
ai-offboard v0.1.0 — initial release
Read-only AI access audit + offboarding report for Microsoft 365 tenants.
The compliance artifact you hand your insurer.
What's included
- Read-only Entra (Graph) connector — scans users, app assignments, and
service-principal permission grants. Never writes to the tenant. - AI-app catalog with DLP-risk tiers (high / medium / low) + substring
matcher. Adding a tool is a one-PR contribution. - Risk rules — stale/orphaned access, MFA gaps, unused high-tier seats,
and broad high-privilege grants. - Dry-run revocation planner — produces the exact steps; executes nothing.
- Compliance-ready audit report — renders Markdown, HTML, and JSON.
- Local web UI (
offboard web) — dashboard with app inventory,
per-finding remediation, and report downloads. - One-command setup (
offboard setup) — interactive Entra configuration. - Demo mode (
--mock) — full product walkthrough with zero Azure setup.
Install
pip install -e ".[web]" # from source; PyPI publication coming
offboard web # launch the local UI → click "Run demo scan"
offboard audit --tenant demo --mock
### Try the demo now
No Azure needed: run `offboard web`, then "Run demo scan" to see a live report.
### License
Apache-2.0
Note: because PyPI publication is still on the list (#7), the install command in the notes says "from source" — I'll keep that accurate until we ship it to PyPI.
Go ahead and publish it, then tell me when it's live and we'll roll into #3 (enable Issues + Discussions + issue templates).