Reorganizing software licenses
December 1, 2018 at 7:35 PM by Dr. Drang
As part of the slow process of moving myself away from 1Password to iCloud Keychain, last week I exported the list of software licenses and put them in a database. This took more time than I expected, as I tried out different ways to organize the list.
I have, by the way, nothing against 1Password. It’s a great program and has been a big help to me for many years. But as I try to simplify my computing setup, it seemed best to avoid having a separate program that, as I use it, largely replicates a function of the operating system. Especially when that separate program has moved to a subscription service—I’d rather use that money to pay for software that’s substantially different from what Apple provides.
One of 1Password’s functions that isn’t in iCloud Keychain is the list of software licenses.
There are a couple of ways to get the license data out of 1Password:
On the Mac, there’s an Export command under the File menu that lets you save the data for all the selected items into a CSV file. But it’s not without its annoyances. The main problem is that if you choose the Common Fields radio button in the export sheet, you don’t get most of the data you need (like the license key); and if you choose All Fields, you get a ton of stuff that’s of no value.
In theory, you can work your way through the list of fields, deleting those you don’t need. In practice, that’s impossible because the text box with all the fields can’t be scrolled. The best bet is to go ahead and export everything, import the resulting CSV file into a spreadsheet, delete the columns you don’t want, and rearrange and rename the columns you do want.
On iOS, your only option is to do something that’s probably more time consuming: copy and paste the data one item at a time by tapping the Share button at the bottom of the item and then choosing the Copy option. 1Password warns you that your info will be visible to the world when you do this.
You can build up a file with entries from all the licenses you want to export and then edit that file down to something that can be converted to another format.
I started out doing it the iOS way and quickly decided the Mac way would take less time for the several dozen licenses I needed to export. Whichever method you choose, you won’t be pleased with how much fiddling you have to do.
With the data in a Numbers spreadsheet, I figured there were three options:
- Just keep it in a spreadsheet. That’s not a bad format for this kind of data, and I could make it available on all my devices by saving it to iCloud Drive.1
- Export the spreadsheet out to a CSV file and import that into a database. Airtable would be my choice, as it looks good and works across platforms. I’m not entirely sold on its security2, but software licenses don’t strike me as especially damaging if they get hacked.
Export the spreadsheet to CSV and then turn it into formatted text that can be kept in Notes. This is also available on all my devices and notes have the additional advantage of being lockable. This little Python script reads the CSV and formats it for a note:
python: 1: #!/usr/bin/env python 2: 3: import csv 4: 5: print("Software licenses\n") 6: with open('1p.csv') as csvfile: 7: reader = csv.DictReader(csvfile) 8: for row in reader: 9: print(row['app']) 10: for f in reader.fieldnames[1:]: 11: if row[f]: 12: print("{}: {}".format(f, row[f])) 13: print() 14:
It opens the CSV file named
1p.csv
, and writes out every record in its own paragraph. The first line is the name of the app, and the subsequent lines are all the other fields inkey: value
format. After importing to Notes, it looks like this:
The disadvantage of using Notes is that I have to type everything in myself when adding a new entry. Also, I can’t just add it to the bottom if I want the list to stay alphabetized.
Although I’ve done all three of these to see how they work, I think I’ll stick with the Airtable solution. It’s easier to scroll through than Notes and has a single-entry view that Numbers doesn’t provide, which is especially convenient when using an iPhone.
-
And password protect it, too. Thanks to Teddy Svoronos for reminding me. ↩
-
No particular reason for this; I’m just generally skeptical of cloud security, especially with things I’m not paying for. ↩