fix(auth): make provision/revoke consistent with the app-password store
The OAuth provisioning tools (check_provisioning_status, revoke_nextcloud_ access) only consulted the refresh-token store + Astrolabe status, ignoring the app_passwords store that Login Flow v2 (nc_auth_provision_access) and the management API write to — the same store require_provisioning / get_client use to grant tool access. Result: status reported "not provisioned" while tools worked, and revoke said "nothing to revoke" while the credential persisted. - _get_provisioning_status: also check storage.get_app_password_with_scopes, reporting is_provisioned with credential_type=app_password, flow_type=login_flow_v2. - _revoke_nextcloud_access: when the credential is an app password, delete it from storage + invalidate the scope cache (no IdP token to revoke); refresh-token revocation via the Token Broker is unchanged. - tests/unit/test_oauth_tools_app_password_provisioning.py: cover status + revoke for the app-password path. - bump astrolabe submodule (deprovision MCP on disable); fix a stale assertion in the migrated bg-sync test (one-click flow has no separate app-password generation step). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
4ed228613e
commit
d9a716080a
@@ -446,9 +446,6 @@ async def test_multi_user_astrolabe_background_sync_enablement(
|
||||
assert result["settings_accessed"], (
|
||||
f"{username} could not access Astrolabe settings"
|
||||
)
|
||||
assert result["app_password_generated"], (
|
||||
f"{username} app password was not generated"
|
||||
)
|
||||
assert result["sync_enabled"], (
|
||||
f"{username} background sync enablement did not complete successfully"
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user