cuenca 2.0.0.dev4__tar.gz → 2.0.0.dev5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/PKG-INFO +1 -1
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/__init__.py +2 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/api_keys.py +2 -2
- cuenca-2.0.0.dev5/cuenca/resources/jwt.py +12 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/login_tokens.py +7 -1
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/otps.py +2 -2
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/sessions.py +5 -2
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/version.py +1 -1
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca.egg-info/PKG-INFO +1 -1
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca.egg-info/SOURCES.txt +1 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_api_keys.py +1 -1
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_login_tokens.py +1 -1
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_otps.py +1 -1
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_sessions.py +3 -1
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/LICENSE +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/README.md +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/__init__.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/exc.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/http/__init__.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/http/client.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/jwt.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/py.typed +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/accounts.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/arpc.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/balance_entries.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/base.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/bill_payments.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/card_activations.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/card_transactions.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/card_validations.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/cards.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/cash_references.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/clabes.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/commissions.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/curp_validations.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/deposits.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/endpoints.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/file_batches.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/files.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/identities.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/identity_events.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/kyc_validations.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/kyc_verifications.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/limited_wallets.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/platforms.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/questionnaires.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/resources.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/savings.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/service_providers.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/statements.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/transfers.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/user_credentials.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/user_events.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/user_lists_validation.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/user_logins.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/users.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/verifications.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/wallet_transactions.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/webhooks.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca/resources/whatsapp_transfers.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca.egg-info/dependency_links.txt +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca.egg-info/requires.txt +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/cuenca.egg-info/top_level.txt +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/setup.cfg +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/setup.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/__init__.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/conftest.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/http/__init__.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/http/conftest.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/http/test_client.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/__init__.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_accounts.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_arpc.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_balance_entries.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_bill_payments.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_card_activations.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_card_transactions.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_card_validations.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_cards.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_cash_references.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_clabes.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_commissions.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_curp_validations.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_deposits.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_endpoints.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_file_batches.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_files.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_identities.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_identity_events.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_kyc_validations.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_kyc_verifications.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_limited_wallets.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_platforms.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_questionnaires.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_resources.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_savings.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_service_providers.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_statements.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_transfers.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_user_credentials.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_user_events.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_user_lists_validation.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_user_logins.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_users.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_verifications.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_wallet_transactions.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_webhooks.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/resources/test_whatsapp_transfers.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/test_cuenca.py +0 -0
- {cuenca-2.0.0.dev4 → cuenca-2.0.0.dev5}/tests/test_jwt.py +0 -0
|
@@ -38,6 +38,7 @@ __all__ = [
|
|
|
38
38
|
'WalletTransaction',
|
|
39
39
|
'Webhook',
|
|
40
40
|
'WhatsappTransfer',
|
|
41
|
+
'Jwt',
|
|
41
42
|
]
|
|
42
43
|
|
|
43
44
|
from .accounts import Account
|
|
@@ -59,6 +60,7 @@ from .file_batches import FileBatch
|
|
|
59
60
|
from .files import File
|
|
60
61
|
from .identities import Identity
|
|
61
62
|
from .identity_events import IdentityEvent
|
|
63
|
+
from .jwt import Jwt
|
|
62
64
|
from .kyc_validations import KYCValidation
|
|
63
65
|
from .kyc_verifications import KYCVerification
|
|
64
66
|
from .limited_wallets import LimitedWallet
|
|
@@ -2,7 +2,7 @@ import datetime as dt
|
|
|
2
2
|
from typing import ClassVar, Optional, cast
|
|
3
3
|
|
|
4
4
|
from cuenca_validations.types import ApiKeyQuery, ApiKeyUpdateRequest
|
|
5
|
-
from pydantic import ConfigDict
|
|
5
|
+
from pydantic import ConfigDict, SecretStr
|
|
6
6
|
|
|
7
7
|
from ..http import Session, session as global_session
|
|
8
8
|
from .base import Creatable, Queryable, Retrievable, Updateable
|
|
@@ -12,7 +12,7 @@ class ApiKey(Creatable, Queryable, Retrievable, Updateable):
|
|
|
12
12
|
_resource: ClassVar = 'api_keys'
|
|
13
13
|
_query_params: ClassVar = ApiKeyQuery
|
|
14
14
|
|
|
15
|
-
secret:
|
|
15
|
+
secret: SecretStr
|
|
16
16
|
deactivated_at: Optional[dt.datetime] = None
|
|
17
17
|
user_id: Optional[str] = None
|
|
18
18
|
model_config = ConfigDict(
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
from typing import ClassVar, cast
|
|
2
2
|
|
|
3
|
-
from pydantic import ConfigDict
|
|
3
|
+
from pydantic import ConfigDict, SecretStr
|
|
4
4
|
|
|
5
5
|
from ..http import Session, session as global_session
|
|
6
6
|
from .base import Creatable
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
# mypy: disable-error-code=override
|
|
9
10
|
class LoginToken(Creatable):
|
|
10
11
|
_resource: ClassVar = 'login_tokens'
|
|
12
|
+
|
|
13
|
+
# Override the `id` field to be a `SecretStr`
|
|
14
|
+
# To ensure sensitive data is not exposed in logs.
|
|
15
|
+
id: SecretStr # type: ignore
|
|
16
|
+
|
|
11
17
|
model_config = ConfigDict(
|
|
12
18
|
json_schema_extra={'example': {'id': 'LTNEUInh69SuKXXmK95sROwQ'}}
|
|
13
19
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import ClassVar, cast
|
|
2
2
|
|
|
3
|
-
from pydantic import ConfigDict
|
|
3
|
+
from pydantic import ConfigDict, SecretStr
|
|
4
4
|
|
|
5
5
|
from ..http import Session, session as global_session
|
|
6
6
|
from .base import Creatable
|
|
@@ -8,7 +8,7 @@ from .base import Creatable
|
|
|
8
8
|
|
|
9
9
|
class Otp(Creatable):
|
|
10
10
|
_resource: ClassVar = 'otps'
|
|
11
|
-
secret:
|
|
11
|
+
secret: SecretStr
|
|
12
12
|
model_config = ConfigDict(
|
|
13
13
|
json_schema_extra={
|
|
14
14
|
'example': {
|
|
@@ -2,16 +2,19 @@ import datetime as dt
|
|
|
2
2
|
from typing import ClassVar, Optional, cast
|
|
3
3
|
|
|
4
4
|
from cuenca_validations.types import AnyUrlString, SessionRequest, SessionType
|
|
5
|
-
from pydantic import ConfigDict
|
|
5
|
+
from pydantic import ConfigDict, SecretStr
|
|
6
6
|
|
|
7
7
|
from .. import http
|
|
8
8
|
from .base import Creatable, Queryable, Retrievable
|
|
9
9
|
|
|
10
10
|
|
|
11
|
+
# mypy: disable-error-code=override
|
|
11
12
|
class Session(Creatable, Retrievable, Queryable):
|
|
12
13
|
_resource: ClassVar = 'sessions'
|
|
13
14
|
|
|
14
|
-
id
|
|
15
|
+
# Override the `id` field to be a `SecretStr`
|
|
16
|
+
# To ensure sensitive data is not exposed in logs.
|
|
17
|
+
id: SecretStr = None # type: ignore
|
|
15
18
|
created_at: dt.datetime
|
|
16
19
|
user_id: str
|
|
17
20
|
platform_id: str
|
|
@@ -35,6 +35,7 @@ cuenca/resources/file_batches.py
|
|
|
35
35
|
cuenca/resources/files.py
|
|
36
36
|
cuenca/resources/identities.py
|
|
37
37
|
cuenca/resources/identity_events.py
|
|
38
|
+
cuenca/resources/jwt.py
|
|
38
39
|
cuenca/resources/kyc_validations.py
|
|
39
40
|
cuenca/resources/kyc_verifications.py
|
|
40
41
|
cuenca/resources/limited_wallets.py
|
|
@@ -18,7 +18,7 @@ def test_api_keys_retrieve():
|
|
|
18
18
|
id_key = 'AKMPSxy2UeSKqU1J6spDNwqA'
|
|
19
19
|
api_key: ApiKey = ApiKey.retrieve(id_key)
|
|
20
20
|
assert api_key.id == id_key
|
|
21
|
-
assert api_key.secret == '********'
|
|
21
|
+
assert api_key.secret.get_secret_value() == '********'
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
@pytest.mark.vcr
|
|
@@ -20,5 +20,5 @@ def test_login_token(session):
|
|
|
20
20
|
UserLogin.create('222222', session=session)
|
|
21
21
|
login_token = LoginToken.create(session=session)
|
|
22
22
|
session.headers.pop('X-Cuenca-LoginId')
|
|
23
|
-
session.configure(login_token=login_token.id)
|
|
23
|
+
session.configure(login_token=login_token.id.get_secret_value())
|
|
24
24
|
Transfer.count(session=session)
|
|
@@ -36,6 +36,8 @@ def test_session_create(curp_validation_request: dict, user_request: dict):
|
|
|
36
36
|
assert user_session.failure_url == failure_url
|
|
37
37
|
|
|
38
38
|
ephimeral_cuenca_session = cuenca.http.Session()
|
|
39
|
-
ephimeral_cuenca_session.configure(
|
|
39
|
+
ephimeral_cuenca_session.configure(
|
|
40
|
+
session_token=user_session.id.get_secret_value()
|
|
41
|
+
)
|
|
40
42
|
user = User.update(user.id, email_address='manu@example.com')
|
|
41
43
|
assert user.email_address == 'manu@example.com'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|