Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions examples/sign/connector-sign.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,6 @@ deactivate_users: False

# Instead of storing API key in plaintext, store in OS credential keychain
# See https://adobe-apiplatform.github.io/user-sync.py/en/user-manual/sign_sync.html#securing-the-api-key
# Comment out integration_key above when using secure_integration_key_key.
# Store the credential with admin_email as its username.
#secure_integration_key_key: sign_key
15 changes: 14 additions & 1 deletion tests/test_sign_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import pytest

from user_sync.config.sign_sync import SignConfigLoader
from user_sync.config.sign_sync import SignConfigLoader, connector_schema
from user_sync.config.user_sync import DictConfig
from user_sync.engine.common import AdobeGroup
from user_sync.engine.sign import SignSyncEngine
Expand Down Expand Up @@ -162,6 +162,19 @@ def test_target_config_options(default_sign_args, modify_sign_config):
config.get_target_options()


@pytest.mark.parametrize('credential', [
{'integration_key': 'plaintext-key'},
{'secure_integration_key_key': 'AdobeSignCreds'},
])
def test_connector_schema_credentials(credential):
options = {
'host': 'api.echosignstage.com',
'admin_email': 'user@example.com',
**credential,
}
assert connector_schema().validate(options) == options


def test_logging_config(default_sign_args):
config = SignConfigLoader(default_sign_args)
logging_config = config.get_logging_config()
Expand Down
2 changes: 1 addition & 1 deletion user_sync/config/sign_sync.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def connector_schema() -> Schema:
from schema import And, Optional, Or, Regex
return Schema({
'host': str,
Or('integration_key', 'secure_integration_key'): str,
Or('integration_key', 'secure_integration_key_key'): str,
'admin_email': str,
Optional('create_users'): Optional(bool),
Optional('deactivate_users'): Optional(bool),
Expand Down