buttercup-importer
buttercup-importer copied to clipboard
Various issues with importing 1Password data
Hi, after some time I gave a second shot to Buttercup and found that it still inherit plenty of issues with importing 1password data. Last time I tried it was version 1.16, and the last one is 2.10. Let me summarize the issues:
- unable to load 1pif data, I got the following error message:
Failed importing: The first argument must be of type string or an instance of Buffer, ArrayBuffer, or Array or an Array-like Object. Received undefined
- unable to load CSV data, I got the following error message:
Failed importing: Invalid Closing Quote: got "I" at line 105 instead of delimiter, record delimiter, trimable character (if activated) or comment
Both issue seems to be related to handling quotes in attribute values, e.g. if I have a string value "some-string" and it may have additional quotes, e.g. some-string \"something\"
the Buttercup will yield the above errors
But most importantly, if I fix quotes issue, and try to load the data of mixed types (logins, notes, etc.) I get invalid imports, see attachment.
I'm attaching my CSV example (which contains a structure I got from 1password) and associated screen shot of the data I got in Buttercup:
"account number(accountNo)","address(address)","address(branchAddress)","admin console URL(admin_console_url)","admin console username(admin_console_username)","AirPort ID(airport_id)","alias(alias)","AOL/AIM(aim)","approved wildlife(game)","attached storage password(disk_password)","auth method(pop_authentication)","auth method(smtp_authentication)","bank name(bankName)","base station name(name)","base station password(password)","birth date(birthdate)","business(busphone)","cardholder name(cardholder)","cash withdrawal limit(cashLimit)","cell(cellphone)","company name(company_name)","company(company)","conditions / restrictions(conditions)","connection options(options)","console password(admin_console_password)","country(country)","Created Date","credit limit(creditLimit)","customer service phone(customer_service_phone)","database(database)","date of birth(birthdate)","default phone(defphone)","department(department)","download page(download_link)","email(email)","expires(expires)","expiry date(expiry_date)","expiry date(expiry)","first name(firstname)","forum signature(forumsig)","full name(fullname)","full name(name)","group(org_name)","height(height)","home(homephone)","IBAN(iban)","ICQ(icq)","initial(initial)","interest rate(interest)","issue number(issuenumber)","issued on(issue_date)","issuing authority(issuing_authority)","issuing bank(bank)","issuing country(issuing_country)","job title(jobtitle)","last name(lastname)","license class(class)","license key(reg_code)","licensed to(reg_name)","maximum quota(quota)","member ID (additional)(additional_no)","member ID(membership_no)","member name(member_name)","member since(member_since)","Modified Date","MSN(msn)","name on account(owner)","name(name)","nationality(nationality)","network name(network_name)","Notes","number(ccnum)","number(number)","occupation(occupation)","order number(order_number)","order total(order_total)","Password","password(password)","password(pop_password)","password(smtp_password)","phone (intl)(phoneIntl)","phone (local)(phone_local)","phone (local)(phoneLocal)","phone (toll free)(phone_tollfree)","phone (toll free)(phoneTollFree)","phone for reservations(reservations_phone)","phone(branchPhone)","PIN(pin)","PIN(telephonePin)","place of birth(birthplace)","port number(pop_port)","port number(smtp_port)","port(port)","provider's website(provider_website)","provider(provider)","publisher(publisher_name)","purchase date(order_date)","registered email(reg_email)","reminder answer(remindera)","reminder question(reminderq)","retail price(retail_price)","routing number(routingNo)","Scope","security(pop_security)","security(smtp_security)","server / IP address(server)","server(hostname)","server(pop_server)","sex(sex)","SID(sid)","skype(skype)","SMTP server(smtp_server)","state(state)","support email(support_email)","support phone(support_contact_phone)","support URL(support_contact_url)","SWIFT(swift)","Tags","telephone(phone)","Title","Type","type(accountType)","type(database_type)","type(pop_type)","type(type)","URL","URL(url)","Username","username(pop_username)","username(smtp_username)","username(username)","valid from(valid_from)","valid from(validFrom)","verification number(cvv)","version(product_version)","website(publisher_website)","website(website)","wireless network password(wireless_password)","wireless security(wireless_security)","Yahoo(yahoo)",
,,,,,,,,,,,,,,,,,,,,,,,,,,"1347032394",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1549942031",,,,,,,,,,,,"xxxxxxx",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{(
XXX,
\"Bus\"
)}",,"XXX bus ","Login",,,,,"https://somesite.com",,"[email protected]",,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,"1483120107",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1535301362",,,,,,,,,,,,"xxxxxxx.",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{(
United Club explorer
)}",,"Chase","Login",,,,,"https://www.chase.com/",,"username",,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,"ChoiceHotels",,,,,,"1251996662",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"SOMECODE","Name Family",,"1535301354",,,,,,,,,,,,"xxxxxxx",,,,,,,,,,,"xxxxxxx",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{(
)}",,"Choice Privileges","Reward Program",,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,"1333240326",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"1535301353",,,,,,"export CVSROOT=:pserver:[email protected]:/path
xxxxxx",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"{(
)}",,"CCC cvs login","Secure Note",,,,,,,,,,,,,,,,,,,,
The quotes errors comes from Bus value
, i.e. remove the escaped quotes and everything will be fine. And, here is what this data shows after the import in Buttercup desktop version:
As you can clearly see none of the entries was properly imported. Therefore, I have no idea how correctly import data from 1Password.
#63