レコードの作成と更新

record-addおよびrecord-updateコマンドに関する詳細

record-addコマンドのドキュメント

本ページには、Keeperコマンダーにおけるrecord-addコマンドを使用したレコードの作成方法について、包括的な例を記載しています。このコマンドでは、フィールド指定にドット記法を、複雑なフィールドには $JSON: 構文をサポートしています。

Keeperコマンダーでは、行末にバックスラッシュ (\) を使用することで、長いコマンドを複数行に分割して記述でき、可読性が向上します。


コマンド構文

record-add --title "Record Title" --record-type "RECORD_TYPE" [OPTIONS] [FIELDS...]

主な引数

引数
説明

--title / -t

レコードのタイトル (必須)

--record-type / -rt

レコードタイプ (必須)

--notes / -n

レコードのメモ (任意)

--folder

レコードを保存するフォルダのパスまたはUID (任意)

--force / -f

警告を無視して実行 (任意)

--syntax-help

フィールド構文のヘルプを表示


フィールド構文の概要

ドット記法の形式

[FIELD_SET.][FIELD_TYPE][.FIELD_LABEL]=FIELD_VALUE

各要素の説明

要素名
説明

FIELD_SET

任意。f (標準フィールド) またはc (カスタムフィールド) を指定可能

FIELD_TYPE

フィールドタイプ (例: loginpasswordurlなど)

FIELD_LABEL

任意。フィールドにラベルを付ける場合に使用

FIELD_VALUE

フィールドに設定する値


特殊な値の構文

構文
説明

$JSON:{"key": "value"}

複雑なオブジェクト型フィールドに使用

$GEN

パスワード、TOTPコード、鍵ペアなどを自動生成

file=@filename

ファイルの添付。@のあとにファイルパスを指定


レコードタイプ

Keeperコマンダーでは、以下の2種類のレコードタイプがサポートされています。

  • タイプ付きレコード あらかじめ定義されたスキーマに基づく構造化レコード (例: ログイン、銀行口座、連絡先など)

  • レガシーレコード 一般的なレコード形式。使用時は-rt legacyまたは-rt generalを指定します。


フィールドタイプと例

単純フィールドタイプ

フィールドタイプ
説明

login

ユーザー名/ログインID

password

パスワード (マスク表示)

url

ウェブサイトのURL

email

メールアドレス

text

プレーンテキスト

multiline

複数行のテキスト

secret

マスクされたテキストフィールド

note

マスクされた複数行のテキスト

oneTimeCode

TOTP/2要素認証コード (2FA)

date

Unixエポックタイムまたは日付文字列


複雑フィールドタイプ

$JSON: 構文で指定する必要があります。

フィールドタイプ
説明

phone

電話番号 (地域情報や種別を含む)

name

氏名 (名、ミドルネーム、姓)

address

住所 (郵便番号、都道府県、市区町村、番地など)

paymentCard

クレジットカード情報

bankAccount

銀行口座情報

securityQuestion

セキュリティ質問と回答のペア

host

ホスト名とポート番号の組み合わせ

keyPair

SSH鍵ペア

クイックスタート例

基本的なログインレコード

1行で実行する場合 (コピー&ペースト向け/推奨)

record-add -t "Gmail Account" -rt login login=john.doe@gmail.com password=SecurePass123 url=https://accounts.google.com

複数行で記述する場合 (手入力推奨・コピー&ペースト非推奨)

record-add -t "Gmail Account" -rt login \
  login=john.doe@gmail.com \
  password=SecurePass123 \
  url=https://accounts.google.com

電話番号付きの基本的な連絡先レコード

record-add -t "John Smith" -rt contact \
  name='$JSON:{"first": "John", "middle": "Michael", "last": "Smith"}' \
  email=john.smith@email.com \
  phone.Mobile='$JSON:{"number": "(555) 555-1234", "type": "Mobile"}'

複数レコードのスクリプト実行

Keeperコマンダーでは、run-batchrunコマンドを使って複数のレコード操作をスクリプト化できます。

以下は複雑なオブジェクトフィールドの正確な形式を取得する際の最も簡単な方法となります。

  1. ウェブボルトで1件レコードを作成する

  2. コマンダーで以下を実行し、JSON形式を取得する

    get UID --format=json

    $JSON:{"key": "value"} の形式で取得可能

これをもとにバッチスクリプトを作成し、実行できます。

# my_script.txt
record-add -t "Gmail Account" -rt login login=john.doe@gmail.com
record-add -t "Yahoo Account" -rt login login=john.doe@yahoo.com
# run batch
keeper shell run-batch my_script.txt

レコードタイプ別の詳細な使用例

1. ログイン情報レコード

# 基本的なログイン情報レコード
record-add -t "Gmail Account" -rt login \
  login=john.doe@gmail.com \
  password=SecurePass123 \
  url=https://accounts.google.com

# 自動生成されたパスワードでのログイン
record-add -t "Work Account" -rt login \
  login=john.doe \
  password='$GEN:rand,16' \
  url=https://company.com

# TOTP を使用したログイン
record-add -t "Banking Login" -rt login \
  login=john.doe \
  password=MySecurePassword \
  url=https://mybank.com \
  oneTimeCode='$GEN'

# セキュリティ質問付きログイン
record-add -t "Investment Account" -rt login \
  login=john.doe \
  password=InvestPass123 \
  url=https://investment.com \
  securityQuestion.Mother='$JSON:[{"question": "What is your mother'\''s maiden name?", "answer": "Smith"}]'

# カスタムフィールド付きログイン
record-add -t "Work VPN" -rt login \
  login=john.doe \
  password=VpnPass123 \
  url=https://vpn.company.com \
  c.text.Department="IT Security" \
  c.text.Employee_ID="EMP001"

2. 銀行口座レコード

# 基本的な銀行口座レコード
record-add -t "Chase Checking" -rt bankAccount \
  bankAccount='$JSON:{"accountType": "Checking", "routingNumber": "021000021", "accountNumber": "123456789"}' \
  name='$JSON:{"first": "John", "last": "Doe"}' \
  login=john.doe \
  password=BankPass123

# オンラインバンキング付きの銀行口座
record-add -t "Wells Fargo Savings" -rt bankAccount \
  bankAccount='$JSON:{"accountType": "Savings", "routingNumber": "121042882", "accountNumber": "987654321"}' \
  name='$JSON:{"first": "Jane", "last": "Smith"}' \
  login=jane.smith \
  password=SavePass456 \
  url=https://wellsfargo.com \
  --notes "高利回りの普通預金口座"

3. クレジットカードレコード

# クレジットカード
record-add -t "Chase Sapphire Preferred" -rt bankCard \
  paymentCard='$JSON:{"cardNumber": "4111111111111111", "cardExpirationDate": "12/2025", "cardSecurityCode": "123"}' \
  text.cardholderName="John Doe" \
  pinCode=1234 \
  login=john.doe \
  password=CardPass123

# デビットカード
record-add -t "Bank of America Debit" -rt bankCard \
  paymentCard='$JSON:{"cardNumber": "5555555555554444", "cardExpirationDate": "08/2026", "cardSecurityCode": "456"}' \
  text.cardholderName="Jane Smith" \
  pinCode=5678

4. 連絡先レコード

# 個人の連絡先
record-add -t "John Smith" -rt contact \
  name='$JSON:{"first": "John", "middle": "Michael", "last": "Smith"}' \
  email=john.smith@email.com \
  phone.Mobile='$JSON:{"number": "(555) 555-1234", "type": "Mobile"}' \
  text.company="ABC Corporation"

# 複数の電話番号を持つビジネス連絡先
record-add -t "Dr. Sarah Johnson" -rt contact \
  name='$JSON:{"first": "Sarah", "last": "Johnson"}' \
  email=sarah.johnson@medical.com \
  phone.Work='$JSON:{"number": "(555) 987-6543", "type": "Work"}' \
  phone.Mobile='$JSON:{"number": "(555) 123-4567", "type": "Mobile"}' \
  text.company="Medical Associates" \
  c.text.Title="Chief Medical Officer"

5. 住所レコード

# 自宅の住所
record-add -t "Home Address" -rt address \
  address='$JSON:{"street1": "123 Main St", "street2": "Apt 4B", "city": "New York", "state": "NY", "zip": "10001", "country": "US"}'

# 勤務先の住所
record-add -t "Office Address" -rt address \
  address='$JSON:{"street1": "456 Business Ave", "city": "San Francisco", "state": "CA", "zip": "94105", "country": "US"}' \
  --notes "本社所在地"

6. サーバーの認証情報

# Web server
record-add -t "Production Web Server" -rt serverCredentials \
  host='$JSON:{"hostName": "web.company.com", "port": "22"}' \
  login=admin \
  password='$GEN:rand,20' \
  c.text.Environment="Production" \
  c.text.Purpose="Web Server"

# Database server
record-add -t "MySQL Database" -rt databaseCredentials \
  host='$JSON:{"hostName": "db.company.com", "port": "3306"}' \
  login=dbadmin \
  password=DbSecure123 \
  text.database="production_db"

7. SSHキー

# SSH鍵ペアの生成
record-add -t "Production SSH Key" -rt sshKeys \
  keyPair='$GEN:ed25519,enc' \
  host='$JSON:{"hostName": "prod.company.com", "port": "22"}' \
  login=deploy \
  c.text.Purpose="Production deployment"

# 既存のSSH鍵を使用
record-add -t "GitHub SSH Key" -rt sshKeys \
  keyPair='$JSON:{"privateKey": "-----BEGIN OPENSSH PRIVATE KEY-----\n...", "publicKey": "ssh-ed25519 AAAAC3..."}' \
  host='$JSON:{"hostName": "github.com", "port": "22"}' \
  login=git

8. ソフトウェアライセンス

# ソフトウェアライセンス
record-add -t "Microsoft Office" -rt softwareLicense \
  licenseNumber="XXXXX-XXXXX-XXXXX-XXXXX-XXXXX" \
  c.text.Product_Version="Office 365" \
  c.text.Licensed_To="John Doe" \
  c.date.Purchase_Date="2023-01-15" \
  c.date.Expiration_Date="2024-01-15"

9. WiFiパスワード

# WiFiネットワーク
record-add -t "Home WiFi" -rt wifiCredentials \
  text.ssid="MyHomeNetwork" \
  password=WiFiPassword123 \
  c.text.Security_Type="WPA2" \
  c.text.Frequency="5GHz"

10. メモ

# 基本的なメモ
record-add -t "Important Information" -rt encryptedNotes \
  note="This is confidential information that needs to be encrypted." \
  date="2024-01-15"

# カスタムフィールド付きメモ
record-add -t "Recovery Codes" -rt encryptedNotes \
  note="Backup codes for two-factor authentication" \
  c.text.Service="Google Authenticator" \
  c.multiline.Codes="123456\n789012\n345678"

11. データベース認証情報

# PostgreSQLデータベース
record-add -t "Production PostgreSQL" -rt databaseCredentials \
  host='$JSON:{"hostName": "db.company.com", "port": "5432"}' \
  login=postgres \
  password='$GEN:rand,24' \
  text.database="production_db" \
  c.text.Environment="Production" \
  c.text.SSL_Mode="require"

# MongoDBデータベース
record-add -t "Analytics MongoDB" -rt databaseCredentials \
  host='$JSON:{"hostName": "mongo.company.com", "port": "27017"}' \
  login=admin \
  password=MongoPass456 \
  text.database="analytics" \
  c.text.Replica_Set="rs0"

12. 運転免許証

# 運転免許証
record-add -t "Driver's License" -rt driverLicense \
  accountNumber=DL123456789 \
  name='$JSON:{"first": "John", "last": "Doe"}' \
  birthDate="1990-01-15" \
  expirationDate="2025-01-15" \
  address='$JSON:{"street1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US"}' \
  c.text.License_Class="Class C"

# 商用運転免許証
record-add -t "CDL License" -rt driverLicense \
  accountNumber=CDL987654321 \
  name='$JSON:{"first": "Jane", "last": "Smith"}' \
  birthDate="1985-05-20" \
  expirationDate="2024-05-20" \
  c.text.License_Class="Class A" \
  c.text.Endorsements="Hazmat, Passenger"

13. パスポート

# 米国パスポート
record-add -t "US Passport" -rt passport \
  accountNumber=123456789 \
  name='$JSON:{"first": "John", "last": "Doe"}' \
  birthDate="1990-01-15" \
  expirationDate="2030-01-15" \
  date="2020-01-15" \
  address='$JSON:{"street1": "123 Main St", "city": "New York", "state": "NY", "zip": "10001", "country": "US"}' \
  c.text.Place_of_Birth="New York, NY" \
  c.text.Nationality="US"

14. 健康保険

# 健康保険
record-add -t "Blue Cross Blue Shield" -rt healthInsurance \
  accountNumber=12345678901 \
  name='$JSON:{"first": "John", "last": "Doe"}' \
  login=john.doe \
  password=HealthPass123 \
  url=https://bcbs.com \
  c.text.Plan_Type="PPO" \
  c.text.Group_Number="12345" \
  c.text.Deductible="$2000"

15. メンバーシップ

# ジムメンバーシップ
record-add -t "Gold's Gym" -rt membership \
  accountNumber=GYM123456 \
  name='$JSON:{"first": "John", "last": "Doe"}' \
  password=GymPass123 \
  c.text.Membership_Type="Premium" \
  c.date.Expiration_Date="2024-12-31"

# プロフェッショナルメンバーシップ
record-add -t "IEEE Membership" -rt membership \
  accountNumber=IEEE987654 \
  name='$JSON:{"first": "Jane", "last": "Smith"}' \
  password=IEEEPass456 \
  c.text.Membership_Grade="Senior Member" \
  c.text.Specialization="Computer Science"

16. 出生証明書

# 出生証明書
record-add -t "Birth Certificate" -rt birthCertificate \
  name='$JSON:{"first": "John", "middle": "Michael", "last": "Doe"}' \
  birthDate="1990-01-15" \
  address='$JSON:{"street1": "Hospital Address", "city": "New York", "state": "NY", "country": "US"}' \
  c.text.Certificate_Number="BC123456789" \
  c.text.Place_of_Birth="New York General Hospital" \
  c.text.Parents_Names="Jane Doe, Robert Doe"

17. ソーシャルセキュリティカード

# SSNカード
record-add -t "Social Security Card" -rt ssnCard \
  accountNumber=123-45-6789 \
  name='$JSON:{"first": "John", "middle": "Michael", "last": "Doe"}' \
  c.text.Issue_Date="2008-01-15" \
  c.text.Issue_State="New York"

18. 写真レコード

# 写真レコード
record-add -t "Profile Photo" -rt photo \
  file='@/path/to/profile.jpg' \
  c.text.Description="Professional headshot" \
  c.date.Date_Taken="2024-01-15"

19. 添付ファイル

# 添付ファイル付きレコード
record-add -t "Important Document" -rt file \
  file='@/path/to/document.pdf' \
  --notes "Legal documents"

# 複数の添付ファイル
record-add -t "Project Files" -rt file \
  file='@/path/to/project.zip' \
  file='@/path/to/readme.txt' \
  c.text.Project_Name="Alpha Release"

20. PAMデータベース

# PAMデータベース構成
record-add -t "Production Oracle DB" -rt pamDatabase \
  pamHostname='$JSON:{"hostName": "oracle.company.com", "port": "1521"}' \
  login=system \
  password='$GEN:rand,20' \
  text.database="PROD" \
  c.text.Instance_Name="ORCL" \
  c.text.Service_Name="prod.company.com"

21. PAMディレクトリ

# Active Directory PAM
record-add -t "Corporate Active Directory" -rt pamDirectory \
  pamHostname='$JSON:{"hostName": "dc.company.com", "port": "389"}' \
  login=administrator \
  password='$GEN:rand,24' \
  c.text.Domain="company.com" \
  c.text.Base_DN="dc=company,dc=com" \
  c.text.Security_Protocol="LDAPS"

22. PAMマシン

# プロダクションサーバーPAM
record-add -t "Production Web Server" -rt pamMachine \
  pamHostname='$JSON:{"hostName": "web01.company.com", "port": "22"}' \
  login=root \
  password='$GEN:rand,20' \
  c.text.OS="Ubuntu 20.04" \
  c.text.Environment="Production" \
  c.text.Purpose="Web Application Server"

23. PAMユーザー

# 特権ユーザーアカウント
record-add -t "Database Admin User" -rt pamUser \
  login=dbadmin \
  password='$GEN:rand,24' \
  name='$JSON:{"first": "Database", "last": "Administrator"}' \
  c.text.Department="IT Operations" \
  c.text.Access_Level="Full Database Admin" \
  c.date.Account_Expiry="2024-12-31"

24. PAMリモートブラウザ

# リモートブラウザセッション
record-add -t "Salesforce Admin Session" -rt pamRemoteBrowser \
  url=https://company.salesforce.com \
  login=admin@company.com \
  password='$GEN:rand,16' \
  c.text.Session_Type="Administrative" \
  c.text.Browser_Profile="Chrome Enterprise"

PAM環境の例

各PAMレコードは、Keeperゲートウェイを参照するPAM構成に紐付けられています。このゲートウェイは通常、ローカルネットワーク内またはPAMリソースへのアクセスが可能な場所にインストールされます。以下は、新しいPAM環境を構成する際の基本的な出発点となる例です。

# 共有フォルダを作成
mkdir gwapp -sf -a
# Secrets Managerアプリケーションを作成
secrets-manager app create gwapp1
# 作成した共有フォルダを新しいアプリに追加
secrets-manager share add --app=gwapp1 --secret=SHARED_FOLDER_UID --editable

# 新しいPAMゲートウェイを作成 - 出力:Docker用のbase64構成
pam gateway new --name=gateway1 --application=gwapp1 --config-init=b64 --return_value
# 新しいゲートウェイを使ってPAM構成を作成
pam config new --environment=local \
  --title=config1 \
  --gateway=gateway1 \
  -sf=SHARED_FOLDER_UID \
  --connections=on --tunneling=on --rotation=on --remote-browser-isolation=on

# PAMリソースレコードとユーザーを作成:管理者とローテーションユーザーを持つマシン1台
record-add --folder=SHARED_FOLDER_UID --title=admin1 -rt=pamUser \
  login=admin1 password="$GEN:rand,16"
record-add --folder=SHARED_FOLDER_UID --title=user1  -rt=pamUser \
  login=user1  password="$GEN:rand,16"
record-add --folder=SHARED_FOLDER_UID --title=machine1 -rt=pamMachine \
  pamHostname="$JSON:{\"hostName\": \"127.0.0.1\", \"port\": \"22\"}"

# 接続とトンネリング用にPAMマシンを設定
pam tunnel edit PAM_MACHINE_UID --configuration=PAM_CONFIG_UID --enable-tunneling
pam connection edit PAM_MACHINE_UID --configuration=PAM_CONFIG_UID \
  --connections=on \
  --protocol=ssh \
  --admin-user=ADMIN_USER_UID

# PAMユーザーをマシン(リソース)のローテーション用に設定
# --force は非対話モードに切り替える
pam rotation edit --config=PAM_CONFIG_UID \
  --record=PAM_USER_UID \
  --resource=PAM_MACHINE_UID \
  --admin-user=ADMIN_USER_UID \
  --on-demand --enable --force

# ゲートウェイインストール後にセットアップをテスト可能
pam tunnel start PAM_MACHINE_UID
# pam tunnel stop ENDPOINT_UID
pam action rotate --record-uid=PAM_USER_UID

高度な機能

パスワード生成

# Random password (default)
password='$GEN'
password='$GEN:rand,16'  # 16 characters

# Diceware password
password='$GEN:dice,5'   # 5 words

# Crypto password
password='$GEN:crypto'

TOTP/2FAの生成

# Generate TOTP secret
oneTimeCode='$GEN'

# Existing TOTP URL
oneTimeCode='otpauth://totp/Example:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=Example'

SSHキーの生成

# Generate RSA key pair
keyPair='$GEN:rsa'

# Generate EC key pair
keyPair='$GEN:ec'

# Generate Ed25519 key pair (recommended)
keyPair='$GEN:ed25519'

# Generate encrypted key pair
keyPair='$GEN:ed25519,enc'

カスタムフィールド

# Custom text field
c.text.Department="Engineering"

# Custom multiline field
c.multiline.Notes="Line 1\nLine 2\nLine 3"

# Custom secret field (masked)
c.secret.API_Key="secret-api-key-here"

# Custom date field
c.date.Expiration="2024-12-31"

一般フィールドのリファレンス

データ形式

# Unix timestamp
date=1668639533

# ISO format
date="2022-11-16T10:58:53Z"

# Simple date
date="2022-11-16"

電話番号形式

phone.Work='$JSON:{"region": "US", "number": "(555) 555-1234", "ext": "123", "type": "Work"}'
phone.Mobile='$JSON:{"number": "(555) 555-1234", "type": "Mobile"}'

名前の形式

name='$JSON:{"first": "John", "middle": "Michael", "last": "Doe"}'
name='$JSON:{"first": "Jane", "last": "Smith"}'

住所の形式

address='$JSON:{"street1": "123 Main St", "street2": "Apt 4B", "city": "New York", "state": "NY", "zip": "10001", "country": "US"}'

秘密の質問の形式

securityQuestion.Mother='$JSON:[{"question": "What is your mother'\''s maiden name?", "answer": "Smith"}]'
securityQuestion.Pet='$JSON:[{"question": "What was your first pet'\''s name?", "answer": "Fluffy"}]'

自動消滅型レコード (ワンタイム共有)

--self-destructオプションを使用すると、一度開くと自動的に削除される一時的なレコードを作成できます。この機能は、一度しか閲覧してほしくない機密情報の共有に最適です。

自動消滅の仕組み

  • 指定した時間後に有効期限が切れる一時的な共有URLを作成します

  • レコードは、共有URLが初めて開かれるまで自分のボルト内に残ります

  • URLが開かれてから5分後に自動的に削除されます

  • 有効期限の最長期間は6か月です

構文

--self-destruct <NUMBER>[(m)inutes|(h)ours|(d)ays]

時間単位

自己破壊型レコードや一時的な共有リンクの有効期限には、以下の単位を使用できます。

  • mまたはminutes: 分 (※単位を省略した場合はデフォルトで分扱い)

  • hまたはhours: 時間

  • dまたはdays: 日数

使用例

一時的パスワードの共有 (1時間後に失効)

record-add -t "Temporary Server Access" -rt login \
  login=admin \
  password='$GEN:rand,16' \
  url=https://server.company.com \
  --self-destruct 1h \
  --notes "Emergency access for John Doe"

一時的Wi-Fiパスワードの共有 (30分後に失効)

record-add -t "Guest WiFi Access" -rt wifiCredentials \
  text.ssid="Company-Guest" \
  password=TempPass123 \
  --self-destruct 30m \
  --notes "Visitor access for meeting"

一時的なファイル共有 (24時間後に失効)

record-add -t "Confidential Document" -rt file \
  file='@/path/to/sensitive-doc.pdf' \
  --self-destruct 1d \
  --notes "Contract for review - auto-deletes after viewing"

緊急連絡先情報の共有 (2時間後に失効)

record-add -t "Emergency Contact" -rt contact \
  name='$JSON:{"first": "Emergency", "last": "Contact"}' \
  phone.Mobile='$JSON:{"number": "(555) 911-0000", "type": "Emergency"}' \
  --self-destruct 2h

戻り値

--self-destructを使用すると、レコードUIDではなく共有可能なURLを返します。

$ record-add -t "Temp Password" -rt login login=user password=pass123 --self-destruct 1h
https://keepersecurity.com/vault/share/AbCdEf123456...

重要な注意事項

⚠️ セキュリティに関する注意点

  • URLが鍵です ― URLを知っている人は誰でもレコードにアクセスできます

  • 認証不要 ― 共有URLはログイン認証をバイパスします

  • 一度きりのアクセス ― レコードは最初の表示から5分後に自動削除されます

  • 復元不可 ― 一度削除されるとレコードは元に戻せません

⚠️ 制限事項

  • 有効期限は最大6か月

  • 自動削除レコードは更新不可

  • プレビュー不可 ― 作成後にレコードを再確認することはできません

  • 即時共有 ― URLは作成直後から有効になります


ベストプラクティス

  • URLはすぐにコピーしてください ― 後から取得することはできません

  • セキュリティ強化のため、短い有効期限(数分~数時間)を設定しましょう

  • レコードの目的や背景を「ノート」に記録しておきましょう

  • URLは安全な方法(暗号化メッセージ、対面など)で共有しましょう

  • 一時的なアクセスには $GEN を使って強力なパスワードを生成しましょう

  • URLの有効期限前に受信者が受け取ったことを確認しましょう

活用事例

  • システム管理者向けの緊急アクセス認証情報

  • 外部委託先やコンサルタント用の一時パスワード

  • 機密ファイルの一度きりの文書共有

  • 来客用ネットワークのWi-Fi情報共有

  • チームメンバー間での安全な情報受け渡し

  • 自動化システム間での期限付きシークレット共有


ヒントとベストプラクティス

  • コピー&ペーストには1行のコマンドを使用し、行末のスペースによるエラーを防ぎましょう

  • シェルによる解釈を避けるため、JSONの値には引用符を使いましょう

  • パスワードをハードコードせず、$GENを使用して安全に生成しましょう

  • 複雑なレコードを作成する前に、まずはシンプルなレコードでテストしましょう

  • 標準でないデータにはカスタムフィールド (c.) を活用しましょう

  • --folderパラメータでフォルダ整理を行い、レコードを体系化しましょう

  • --notesを使ってレコードの背景や目的を記録し、管理しやすくしましょう

トラブルシューティング (よくある問題と対処法)

「Expected: =, got: ; Missing =」エラー

  • 複数行コマンドのバックスラッシュの後にスペースを入れないようにしてください

  • コピー&ペーストする際は、1行形式を使用してください

「Field type not supported」 (対応していないフィールドタイプ)

  • 使用可能なフィールドタイプはrecord-add --syntax-helpで確認できます

  • 標準外のフィールドにはc.接頭辞付きのカスタムフィールドを使ってください

JSON解析エラー

  • JSONが正しく引用されていることを確認してください

  • JSON内のシングルクォートは'\''のようにエスケープしてください

  • JSONオブジェクト内ではダブルクォート ( " ) を使用してください

ファイル添付のエラー

  • ファイルパスの前に@を付けてください (例: file=@/path/to/file.txt)

  • ファイルパスが正しくアクセス可能なことを確認してください

  • 相対パスではなく絶対パスの使用を推奨します

record-addrecord-updateの違い

record-addは新しいレコードを作成するためのコマンドであり、record-updateは既存のレコードを編集するために使用します。以下は主な違いの比較です。

record-add
record-update

目的

新規レコードの作成

既存レコードの編集

レコード識別子

不要

必須 (-rまたは--recordを指定)

レコードタイプ

必須 (-rt)

任意 (変更も可能)

フィールドの動作

すべてのフィールドを設定

指定したフィールドのみ更新

メモの動作

新規に設定

+接頭辞付きで追記、接頭辞なしで上書き

record-updateの構文

record-update --record "RECORD_TITLE_OR_UID" [OPTIONS] [FIELDS...]

主な引数

  • --record / -r: レコードのタイトルまたは UID (必須)

  • --title / -t: レコードのタイトルを更新

  • --record-type / -rt: レコードタイプを変更

  • --notes / -n: メモを更新 (先頭に+を付けると追記、それ以外は上書き)

  • --force / -f: 警告を無視して実行

使用例

パスワードとURLを更新

record-update -r "Gmail Account" \
  password='$GEN:rand,20' \
  url=https://accounts.google.com/new-login

既存の連絡先に電話番号を追加

record-update -r "John Smith" \
  phone.Work='$JSON:{"number": "(555) 987-6543", "type": "Work"}'

メモに追記 (先頭の + に注意)

record-update -r "Server Credentials" \
  --notes "+Updated password on 2024-01-15"

タイトルを変更し、カスタムフィールドを追加

record-update -r "Old Server Name" \
  --title "Production Web Server" \
  c.text.Environment="Production" \
  c.text.Last_Updated="2024-01-15"

レコードタイプの変更 (構造を変換)

record-update -r "Simple Login" \
  --record-type contact \
  name='$JSON:{"first": "John", "last": "Doe"}' \
  email=john.doe@example.com

各コマンドの用途

record-add

  • 新しいレコードを作成するとき

  • すべてのフィールドを一から指定したいとき

  • 初期のレコード構造を設定するとき

record-update

  • 既存のレコードを編集したいとき

  • 既存のレコードに新しいフィールドを追加するとき

  • パスワードや認証情報を更新したいとき

  • メモに情報を追記したいとき

  • レコードタイプを変換したいとき


重要な注意点

  • record-updateは指定したフィールドのみを変更します

  • 指定していない既存のフィールドはそのまま保持されます

  • field=のように値を空にすると、そのフィールドを消去できます

  • メモに+を付けると追記、付けない場合は上書きになります

ヘルプ表示

# 利用可能なすべてのレコードタイプを表示
record-type-info

# 特定のレコードタイプ (例: login) のフィールドを表示
record-type-info --list-record login

# 特定のフィールドタイプ (例: phone) の情報を表示
record-type-info --list-field phone

# record-add コマンドのフィールド構文ヘルプを表示
record-add --syntax-help

# record-update コマンドのヘルプを表示
record-update --help

最終更新