Skip to content

load_dict fails when looking up keys with periods in them #44

Open
@Joe-Still

Description

@Joe-Still

Your environment

SDK Version: 1.2.0

  • installed via pip install onepasswordconnectsdk
    Connect Server Version:
    OS: Ubuntu 20.04
    Python Version: 3.8.10

What happened?

Using load_dict against a key with a period in it generates an error: onepasswordconnectsdk.config.InvalidFieldPathException

What did you expect to happen?

Retrieval of value matching that key

Steps to reproduce

Attempt to retreive a value matching a key with a . in it.
My case has been part of a Section.
`
from onepasswordconnectsdk.client import (
Client,
new_client_from_environment,
new_client
)
from onepasswordconnectsdk import (
load_dict
)

client: Client = new_client_from_environment()
account="[email protected]"
creds = load_dict(client, {
"pass": {
"opitem": "My Account",
"opfield": "Main Login." + account
}
})
`

Notes & Logs

Traceback (most recent call last):
File "test.py", line 45, in
creds = load_dict(client, {
File "/home/dev1/.local/lib/python3.8/site-packages/onepasswordconnectsdk/config.py", line 80, in load_dict
_set_values_for_item(client=client,
File "/home/dev1/.local/lib/python3.8/site-packages/onepasswordconnectsdk/config.py", line 185, in _set_values_for_item
raise InvalidFieldPathException(
onepasswordconnectsdk.config.InvalidFieldPathException: Invalid field path format for pass

It's understandable that the '.' is normally chaining fields to get one field deeper but keys with email addresses are common and keys with ip addresses are not uncommon in our particular setup.
I would expect either an attempt to look for keys with '.'s in them if it fails or a way to wrap it to escape the '.'s

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtrackedIssue is tracked in 1Password's internal ticketing system as well.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions