16 KiB
16 KiB
Import Matrix — Field Mapping
All tables use the same columns. Empty cells = competitor does not support that field for that type.
Field Kinds
kind describes the data type for rendering. NOT sensitivity — that's tier.
| Kind | Rendering | Examples |
|---|---|---|
text |
Plain text | username, cardholder, city, ssn, cvv, password |
email |
mailto: link | email fields |
phone |
tel: link | phone fields |
totp |
TOTP code generator | totp seeds / otpauth URIs |
url |
Clickable link | hostname fields |
date |
Formatted date | expiry, purchase_date |
Encryption Tiers
tier determines encryption and visibility. Independent of kind.
| Tier | Encryption | Who can decrypt | Examples |
|---|---|---|---|
| L1 | Server-side (AES-GCM with L1 key) | Server, all agents | title, urls, notes, username, email, cardholder, address, expiry |
| L2 | Client-side (PRF-derived L2 key) | CLI, extension, agents with L2 | password, totp, license_key, passphrase, db password, wifi password |
| L3 | Client-side (PRF-derived L3 key) | Hardware tap only | card number, cvv, pin, ssn, passport, license, private_key, seed_phrase |
Canonical Field Definitions
Every field we store. The label, kind, and tier are authoritative.
Credential fields
| Label | Kind | Tier |
|---|---|---|
| username | text | L1 |
| password | text | L2 |
| totp | totp | L2 |
| L1 |
Card fields
| Label | Kind | Tier |
|---|---|---|
| cardholder | text | L1 |
| number | text | L3 |
| cvv | text | L3 |
| pin | text | L3 |
| brand | text | L1 |
Identity fields
| Label | Kind | Tier |
|---|---|---|
| first_name | text | L1 |
| last_name | text | L1 |
| middle_name | text | L1 |
| L1 | ||
| phone | phone | L1 |
| address1 | text | L1 |
| address2 | text | L1 |
| city | text | L1 |
| state | text | L1 |
| zip | text | L1 |
| country | text | L1 |
| company | text | L1 |
| ssn | text | L3 |
| passport | text | L3 |
| license | text | L3 |
SSH Key fields
| Label | Kind | Tier |
|---|---|---|
| public_key | text | L1 |
| private_key | text | L3 |
| passphrase | text | L2 |
| fingerprint | text | L1 |
| key_type | text | L1 |
Software License fields
| Label | Kind | Tier |
|---|---|---|
| license_key | text | L2 |
| version | text | L1 |
| publisher | text | L1 |
| purchase_date | date | L1 |
| L1 |
Database fields
| Label | Kind | Tier |
|---|---|---|
| db_type | text | L1 |
| hostname | url | L1 |
| port | text | L1 |
| database | text | L1 |
| username | text | L1 |
| password | text | L2 |
| sid | text | L1 |
| connection_string | text | L2 |
Wi-Fi fields
| Label | Kind | Tier |
|---|---|---|
| ssid | text | L1 |
| password | text | L2 |
| encryption | text | L1 |
Server fields
| Label | Kind | Tier |
|---|---|---|
| hostname | url | L1 |
| username | text | L1 |
| password | text | L2 |
Crypto Wallet fields
| Label | Kind | Tier |
|---|---|---|
| seed_phrase | text | L3 |
| private_key | text | L3 |
| wallet_address | text | L1 |
| derivation_path | text | L1 |
| network | text | L1 |
| passphrase | text | L2 |
Competitor Mapping
Credential
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | metadata.name |
name |
overview.title |
name |
title |
Title |
name |
title |
Name |
title |
name |
hostname |
Title |
Title |
| urls | — | L1 | content.urls[] |
login.uris[].uri |
overview.urls[] |
url |
domain |
URL |
url |
login_url |
Url |
field type=url |
url |
url |
URL |
URL |
| notes | — | L1 | metadata.note |
notes |
details.notesPlain |
extra |
note |
Notes |
note |
notes |
Note |
notes |
Notes |
Notes |
||
| username | text | L1 | content.itemEmail / itemUsername |
login.username |
designation=username |
username |
email / login |
UserName |
username |
login |
Login |
type=username |
username |
username |
Username |
Username |
| password | password | L2 | content.password |
login.password |
designation=password |
password |
password |
Password |
Password |
Password |
password |
password |
Pwd |
type=password |
password |
password |
| totp | totp | L2 | content.totpUri |
login.totp |
field type=otp |
totp |
otpSecret |
plugin: TimeOtp-Secret-Base32 |
$oneTimeCode |
type=totp |
OTPAuth |
TOTP |
||||
| text | L1 | content.itemEmail |
field label=email |
email |
type=email |
|||||||||||
| custom fields | per type | L1/L2 | extraFields[] |
fields[] |
sections[].fields[] |
parsed from extra |
custom strings | custom_fields[] |
RfFieldsV2 |
extra fields |
Card
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | metadata.name |
name |
overview.title |
name |
name |
Title |
name |
title |
Name |
title |
||||
| notes | — | L1 | metadata.note |
notes |
details.notesPlain |
Notes |
note |
Notes |
note |
notes |
Note |
notes |
||||
| cardholder | text | L1 | cardholderName |
card.cardholderName |
field=cardholder |
Name on Card |
holder |
cardholdername |
cardholderName |
label=Cardholder |
||||||
| number | password | L3 | number |
card.number |
field=ccnum |
Number |
cardNumber |
cardnumber |
cardNumber |
type=credit_card |
||||||
| cvv | password | L3 | verificationNumber |
card.code |
field=cvv |
Security Code |
securityCode |
cvc |
cardSecurityCode |
label=CVV |
||||||
| expiry | text | L1 | expirationDate |
expMonth+expYear |
field=expiry |
Expiration Date |
expireDate |
expirydate |
cardExpirationDate |
label=Expiry |
||||||
| pin | password | L3 | pin |
field=pin |
pinCode |
|||||||||||
| brand | text | L1 | cardType |
card.brand |
field=type |
Type |
issuing_bank |
Identity
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | metadata.name |
name |
overview.title |
name |
name |
Title |
name |
title |
Name |
title |
||||
| notes | — | L1 | metadata.note |
notes |
details.notesPlain |
Notes |
note |
Notes |
notes |
Note |
notes |
|||||
| first_name | text | L1 | firstName |
identity.firstName |
field=firstname |
First Name |
firstName |
full_name |
name.first |
First Name |
label=First name |
|||||
| last_name | text | L1 | lastName |
identity.lastName |
field=lastname |
Last Name |
lastName |
name.last |
Last Name |
label=Last name |
||||||
| middle_name | text | L1 | identity.middleName |
field=initial |
Middle Name |
middleName |
name.middle |
Middle Name |
||||||||
| text | L1 | email |
identity.email |
field=email |
Email |
email |
email |
email |
Email |
type=email |
||||||
| phone | text | L1 | phoneNumber |
identity.phone |
field=defphone |
Phone |
phone_number |
phone_number |
phone.default |
Phone |
type=phone |
|||||
| address1 | text | L1 | streetAddress |
identity.address1 |
field=address.street |
Address 1 |
addressStreet |
address1 |
address.street |
Address 1 |
label=Address |
|||||
| address2 | text | L1 | identity.address2 |
Address 2 |
address2 |
Address 2 |
||||||||||
| city | text | L1 | city |
identity.city |
field=address.city |
City / Town |
addressCity |
city |
address.city |
City |
label=City |
|||||
| state | text | L1 | stateOrProvince |
identity.state |
field=address.state |
State |
addressState |
state |
address.state |
State |
label=State |
|||||
| zip | text | L1 | zipOrPostalCode |
identity.postalCode |
field=address.zip |
Zip / Postal Code |
addressZipcode |
zipcode |
address.zip |
Zip |
label=ZIP |
|||||
| country | text | L1 | country |
identity.country |
field=address.country |
Country |
addressCountry |
country |
address.country |
Country |
label=Country |
|||||
| company | text | L1 | organization |
identity.company |
field=company |
Company |
company |
Company |
label=Company |
|||||||
| ssn | password | L3 | socialSecurityNumber |
identity.ssn |
field=socialsecurity |
Social Security Number |
accountNumber |
|||||||||
| passport | password | L3 | passportNumber |
identity.passportNumber |
field=passport |
Passport Number |
label=Passport |
|||||||||
| license | password | L3 | licenseNumber |
identity.licenseNumber |
field=license |
Driver's License |
label=License |
Note
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | metadata.name |
name |
overview.title |
name |
title |
Title |
name |
title |
Name |
title |
||||
| notes | — | L2 | metadata.note |
notes |
details.notesPlain |
extra |
content |
Notes |
note |
notes |
Note |
notes |
SSH Key
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | overview.title |
name |
title |
|||||||||||
| public_key | text | L1 | field=public_key |
Public Key |
keyPair.publicKey |
|||||||||||
| private_key | password | L3 | field=private_key |
Private Key |
keyPair.privateKey |
|||||||||||
| passphrase | password | L2 | field=password |
Passphrase |
passphrase |
|||||||||||
| fingerprint | text | L1 | field=fingerprint |
|||||||||||||
| key_type | text | L1 |
Software License
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | overview.title |
name |
||||||||||||
| license_key | password | L2 | field=reg_code |
License Key |
||||||||||||
| version | text | L1 | field=product_version |
Version |
||||||||||||
| publisher | text | L1 | field=publisher_name |
|||||||||||||
| purchase_date | text | L1 | field=order_date |
|||||||||||||
| text | L1 | field=reg_email |
Database
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | overview.title |
name |
||||||||||||
| db_type | text | L1 | field=database_type |
Type |
||||||||||||
| hostname | text | L1 | field=hostname |
Hostname |
||||||||||||
| port | text | L1 | field=port |
Port |
||||||||||||
| database | text | L1 | field=database |
Database |
||||||||||||
| username | text | L1 | field=username |
Username |
||||||||||||
| password | password | L2 | field=password |
Password |
||||||||||||
| sid | text | L1 | field=options |
|||||||||||||
| connection_string | password | L2 |
Wi-Fi
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | name |
|||||||||||||
| ssid | text | L1 | SSID |
|||||||||||||
| password | password | L2 | Password |
|||||||||||||
| encryption | text | L1 | Connection Type |
Server
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | overview.title |
name |
||||||||||||
| hostname | text | L1 | field=url |
Hostname |
||||||||||||
| username | text | L1 | field=username |
Username |
||||||||||||
| password | password | L2 | field=password |
Password |
Crypto Wallet (Clavitor-only)
| Clavitor Field | Kind | Tier | Proton Pass | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| title | — | L1 | ||||||||||||||
| seed_phrase | password | L3 | ||||||||||||||
| private_key | password | L3 | ||||||||||||||
| wallet_address | text | L1 | ||||||||||||||
| derivation_path | text | L1 | ||||||||||||||
| network | text | L1 | ||||||||||||||
| passphrase | password | L2 |
Tier Summary
| Tier | What | Examples |
|---|---|---|
| L1 | Server-readable. Titles, URLs, usernames, labels, metadata. | title, urls, notes, username, email, cardholder, expiry, address fields |
| L2 | Agent-decryptable. Operational secrets that agents/extensions need. | password, totp, license_key, db password, wifi password, server password, ssh passphrase, note content |
| L3 | Hardware tap only. PII, financial, government IDs. | card number, cvv, pin, ssn, passport, driver's license, private keys, seed phrases |
Coverage Summary
| Feature | Proton | Bitwarden | 1Password | LastPass | Dashlane | KeePass | NordPass | Keeper | RoboForm | Enpass | Chrome | Firefox | Safari/iCloud | KeePassXC | Clavitor |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Credential | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| TOTP | ✓ | ✓ | ✓ | ✓ | ✓ | plugin | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
| Card | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||||||
| Identity | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| Note | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| SSH Key | ✓ | ✓ | ✓ | ✓ | |||||||||||
| License | ✓ | ✓ | ✓ | ||||||||||||
| Database | ✓ | ✓ | ✓ | ||||||||||||
| Wi-Fi | ✓ | ✓ | |||||||||||||
| Server | ✓ | ✓ | ✓ | ||||||||||||
| Crypto Wallet | ✓ | ||||||||||||||
| Custom Fields | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||
| L2/L3 tiers | ✓ |