lockedpass-cli 0.1.0__tar.gz → 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lockedpass-cli
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Official CLI for LockedPass — zero-knowledge password manager
5
5
  Author-email: Nextcoders <hello@lockedpass.com>
6
6
  License-Expression: LicenseRef-Proprietary
7
7
  Project-URL: Homepage, https://lockedpass.com
8
8
  Project-URL: Documentation, https://account.lockedpass.com/api-docs
9
- Project-URL: Repository, https://github.com/nextcoders/lockedpass-cli
10
9
  Keywords: password,manager,cli,zero-knowledge,vault,encryption
11
10
  Classifier: Development Status :: 4 - Beta
12
11
  Classifier: Environment :: Console
@@ -1,12 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lockedpass-cli
3
- Version: 0.1.0
3
+ Version: 0.1.2
4
4
  Summary: Official CLI for LockedPass — zero-knowledge password manager
5
5
  Author-email: Nextcoders <hello@lockedpass.com>
6
6
  License-Expression: LicenseRef-Proprietary
7
7
  Project-URL: Homepage, https://lockedpass.com
8
8
  Project-URL: Documentation, https://account.lockedpass.com/api-docs
9
- Project-URL: Repository, https://github.com/nextcoders/lockedpass-cli
10
9
  Keywords: password,manager,cli,zero-knowledge,vault,encryption
11
10
  Classifier: Development Status :: 4 - Beta
12
11
  Classifier: Environment :: Console
@@ -373,7 +373,7 @@ def ls(vault_name, cred_type):
373
373
  @click.argument("name_or_num")
374
374
  @click.option("--vault", "vault_name", default=None)
375
375
  @click.option("--field", default=None,
376
- help="Show only this field (password, username, url, notes, secret)")
376
+ help="Show only this field (e.g. password, username, url, host, port, server_host, server_username, server_password, ssh_key, db_name...)")
377
377
  def get_cred(name_or_num, vault_name, field):
378
378
  """Show a credential (decrypted)."""
379
379
  sess = require_session()
@@ -391,7 +391,20 @@ def get_cred(name_or_num, vault_name, field):
391
391
  client.log_action(vault_obj["id"], cred_raw["id"], "viewed")
392
392
 
393
393
  if field:
394
+ # Try exact key first, then type-prefixed aliases for convenience
394
395
  val = data.get(field)
396
+ if val is None:
397
+ ctype = cred_raw.get("type", "")
398
+ aliases = {
399
+ "host": [f"{ctype}_host", "host", "smtp_host"],
400
+ "port": [f"{ctype}_port", "port", "smtp_port"],
401
+ "username": [f"{ctype}_username", "username", "smtp_username"],
402
+ "password": [f"{ctype}_password", "password", "smtp_password"],
403
+ }
404
+ for candidate in aliases.get(field, []):
405
+ val = data.get(candidate)
406
+ if val is not None:
407
+ break
395
408
  if val is None:
396
409
  raise click.ClickException(f"Field '{field}' not found")
397
410
  click.echo(val)
@@ -428,11 +441,42 @@ def _print_credential(data: dict, cred_type: str) -> None:
428
441
  click.echo(f" {click.style(label+':', fg='bright_black', bold=True):<18} {value}")
429
442
 
430
443
  row("Name", data.get("name"))
431
- row("Username", data.get("username"))
432
- row("Password", data.get("password"), secret=True)
433
- row("URL", data.get("url"))
434
- row("Secret", data.get("secret"), secret=True)
435
- row("Issuer", data.get("issuer"))
444
+
445
+ if cred_type == "server":
446
+ row("Protocol", data.get("protocol"))
447
+ row("Host", data.get("server_host"))
448
+ row("Port", data.get("server_port"))
449
+ row("Username", data.get("server_username"))
450
+ row("Password", data.get("server_password"), secret=True)
451
+ row("SSH Key", data.get("ssh_key"), secret=True)
452
+ elif cred_type == "database":
453
+ row("Type", data.get("db_type"))
454
+ row("Host", data.get("host"))
455
+ row("Port", data.get("port"))
456
+ row("Database", data.get("db_name"))
457
+ row("Username", data.get("db_username"))
458
+ row("Password", data.get("db_password"), secret=True)
459
+ row("Conn. String", data.get("connection_string"), secret=True)
460
+ elif cred_type == "smtp":
461
+ row("Host", data.get("smtp_host"))
462
+ row("Port", data.get("smtp_port"))
463
+ row("Username", data.get("smtp_username"))
464
+ row("Password", data.get("smtp_password"), secret=True)
465
+ elif cred_type == "otp":
466
+ row("Issuer", data.get("issuer"))
467
+ row("Secret", data.get("secret"), secret=True)
468
+ elif cred_type == "card":
469
+ row("Cardholder", data.get("cardholder"))
470
+ row("Number", data.get("card_number"), secret=True)
471
+ row("Expiry", data.get("expiry"))
472
+ row("CVV", data.get("cvv"), secret=True)
473
+ else:
474
+ row("Username", data.get("username"))
475
+ row("Password", data.get("password"), secret=True)
476
+ row("URL", data.get("url"))
477
+ row("Secret", data.get("secret"), secret=True)
478
+ row("Issuer", data.get("issuer"))
479
+
436
480
  row("Notes", data.get("notes"))
437
481
  for f in data.get("custom_fields") or []:
438
482
  row(f.get("label", "Field"), f.get("value"))
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "lockedpass-cli"
7
- version = "0.1.0"
7
+ version = "0.1.2"
8
8
  description = "Official CLI for LockedPass — zero-knowledge password manager"
9
9
  readme = "README.md"
10
10
  license = "LicenseRef-Proprietary"
@@ -36,7 +36,6 @@ dependencies = [
36
36
  [project.urls]
37
37
  Homepage = "https://lockedpass.com"
38
38
  Documentation = "https://account.lockedpass.com/api-docs"
39
- Repository = "https://github.com/nextcoders/lockedpass-cli"
40
39
 
41
40
  [project.scripts]
42
41
  lp = "lp.cli:cli"
File without changes
File without changes
File without changes
File without changes