feat(sync): add provider contracts and OAuth token broker
Draft the generic SyncProvider/SyncObserver contracts and implement OAuthTokenBroker: valid access tokens with a five-minute refresh skew, rotation persisted before use so a new refresh token is never lost, 400/401 refresh rejections erase the secret and surface AccountDisconnected, and no credential material in error messages.
This commit is contained in:
@@ -32,6 +32,7 @@ nocal_sources = files(
|
||||
'src/sync/oauth.cpp',
|
||||
'src/sync/oauth_tokens.cpp',
|
||||
'src/sync/secret_store.cpp',
|
||||
'src/sync/token_broker.cpp',
|
||||
'src/tui/Screen.cpp',
|
||||
'src/tui/EventEditor.cpp',
|
||||
'src/tui/Terminal.cpp',
|
||||
@@ -72,6 +73,9 @@ test('desktop-oauth', desktop_oauth_tests)
|
||||
oauth_token_tests = executable('oauth-token-tests',
|
||||
'tests/oauth_token_tests.cpp', dependencies: nocal_dep)
|
||||
test('oauth-tokens', oauth_token_tests)
|
||||
token_broker_tests = executable('token-broker-tests',
|
||||
'tests/token_broker_tests.cpp', dependencies: nocal_dep)
|
||||
test('token-broker', token_broker_tests)
|
||||
secret_store_tests = executable('secret-store-tests',
|
||||
'tests/secret_store_tests.cpp', dependencies: nocal_dep)
|
||||
test('secret-store', shell,
|
||||
|
||||
Reference in New Issue
Block a user