From 7fbd8e723cafa556870134003cc6c0a867d52a2f Mon Sep 17 00:00:00 2001 From: lthievenaz-keeper Date: Mon, 17 Aug 2026 09:25:15 +0100 Subject: [PATCH 1/2] Add support for export --ownled-only flag The Vault UI allows two options for exporting: exporting only owned records or owned+shared records. Adding this choice to Commander's export command. --- keepercommander/importer/commands.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/keepercommander/importer/commands.py b/keepercommander/importer/commands.py index fef8a3b83..837cbc8f3 100644 --- a/keepercommander/importer/commands.py +++ b/keepercommander/importer/commands.py @@ -104,6 +104,8 @@ def register_command_info(aliases, command_info): help='Keepass key file for the exported file') export_parser.add_argument('--zip', dest='zip_archive', action='store_true', help='Create ZIP archive for file attachments. JSON only') +export_parser.add_argument('--owned-only', dest='owned_only', action='store_true', + help='Only export owned records') export_parser.add_argument('--save-in-vault', dest='save_in_vault', action='store_true', help='Stores exports file as a record attachment. KeePass only') export_parser.add_argument('--force', dest='force', action='store_true', help='Suppress user interaction. Assume "yes"') From 5817fb127ef90ac86adf4e40b11b12a86b980ad9 Mon Sep 17 00:00:00 2001 From: lthievenaz-keeper Date: Mon, 17 Aug 2026 09:26:50 +0100 Subject: [PATCH 2/2] Add support for only exporting owned records The Vault UI allows you to export owned or owned+shared records. The Commander export only allows you to export owned_shared records. Adding support for --owned-only flag, which provides parity between Vault and Commander --- keepercommander/importer/imp_exp.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/keepercommander/importer/imp_exp.py b/keepercommander/importer/imp_exp.py index 1acb9ed0b..33c01d085 100644 --- a/keepercommander/importer/imp_exp.py +++ b/keepercommander/importer/imp_exp.py @@ -331,12 +331,13 @@ def on_folder(base_folder): # type: (BaseFolderNode) -> None # for record_uid in params.record_cache.keys(): # ext_id += 1 # external_ids[record_uid] = ext_id - for record_uid in params.record_cache: + record_list = params.record_cache if not kwargs.get('owned_only') else {uid:params.record_cache[uid] for uid in params.record_owner_cache if params.record_owner_cache[uid].owner is True} + for record_uid in record_list: if record_filter or folder_path: if record_uid not in record_filter: continue - record = params.record_cache[record_uid] + record = record_list[record_uid] record_version = record.get('version') or 0 if record_version == 2 or record_version == 3: try: