giovium format
The giovium format is the official format for importing and exporting items inside giovium.
Bulk Import and Export
This format allows people to format data unencrypted, enabling giovium to perform bulk imports and exports. By structuring your data according to the giovium format, you can easily migrate from other password managers or backup your data in a readable manner before it gets encrypted within the vault.
Deduplication: When importing items, giovium automatically checks for duplicates to
prevent clutter. If an item is imported multiple times, it will not be re-added to your vault if both
its name and date exactly match an item that already exists.
Items with a Second Password
Important: Items encrypted with a second password cannot be imported or exported in bulk. While the giovium format could theoretically incorporate a field to enter the second password for each item, these items are extremely sensitive. To ensure maximum security, I deliberately do not allow the second password to ever be written in a bulk file. At the time of a bulk import or export, giovium does not know the second password, making it impossible to correctly process these specific items automatically. Therefore, they must always be exported and imported manually.
Format Specification
The format is a stringified JSON array of objects. Remember that the final JavaScript array object must
be properly stringified and explicitly saved to disk as a .giovium file in order to be
imported correctly. Each object represents a single item and contains the following properties:
name(string): The title or name of the item.tags(string): A comma-separated list of tags for searching and categorization.hidden(boolean): Set totrueorfalseto control the visibility of the item.date(string): The epoch timestamp in milliseconds representing the item's date.fields(array): An array of field objects. Each field object must contain aname(string), avalue(string), and atype(string). Valid types aretext,textarea,totp, andpassword. Important: The first field in this array must always be of typetextarea, even if it is empty.files(array): An array of strings, where each string is a relative path to an attachment that will be imported.
Please see the detailed JSON structure example below, which demonstrates the complete structure of a
single item inside the required JSON array (note the opening [ and closing ]
brackets):
[
{
"name": "New Login",
"tags": "work,important,project-x",
"hidden": false,
"date": "1777808882000",
"fields": [
{
"name": "Notes",
"value": "Important project credentials",
"type": "textarea"
},
{
"name": "username",
"value": "admin",
"type": "text"
},
{
"name": "password",
"value": "supersecretpassword",
"type": "password"
},
{
"name": "One-time Password",
"value": "JBSWY3DPEHPK3PXP",
"type": "totp"
}
],
"files": [
"attachments/4A26A9D3CBE74910BAD6391B54E9DAAB/importantFile.txt"
]
}
]
Conversion Scripts
Below are scripts to convert data from popular password managers into the giovium format. Feel free to send me your own scripts and I will add them here.
1Password (.1pif)
The 1pif script has been added as an example. You can use the 1Password .1pif export
(supported up until 1Password 7). Exporting your vault in 1Password will create a .1pif file and an attachments folder. To use this script without modifications, you must name your exported file exactly export.1pif. Alternatively, you can open the script and modify the first few lines to match your custom file name.
Simply download the convert script, place it in the same folder as your export, and run it with Node.js:
node convert1pif.js
It will automatically convert the 1pif file into a giovium-compatible file. The script currently supports migrating the item's fields, sections, and its attachments. Both 1Password tags and folders are merged and converted directly into giovium tags.
I encourage you to inspect the JavaScript code and modify it on your own if you need to extract or map specific custom details for your vault. If you encounter any bugs or important errors with the script, please contact me.
Do you need another conversion? Ask me directly and I will gladly help you write one.