feat: simplify account create/edit and add row copy
All checks were successful
技能自动化发布 / release (push) Successful in 8s
All checks were successful
技能自动化发布 / release (push) Successful in 8s
Data-management add/edit now use short forms with enums; copy clones a platform account into a new empty profile. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -4,7 +4,7 @@ CLI entry point: argv dispatch for account-manager v2.
|
||||
|
||||
Subcommand tree:
|
||||
platform list/get/ensure
|
||||
account add-web|ensure-web|add-secret|get|get-credential|list|resolve|pick-web|mark-session|mark-error|mark-used|open|reveal-profile
|
||||
account add-web|copy|update|ensure-web|add-secret|get|get-credential|list|resolve|pick-web|mark-session|mark-error|mark-used|open|reveal-profile
|
||||
init-master-key|export-credentials|import-credentials
|
||||
credential pick|resolve
|
||||
lease release|list|cleanup
|
||||
@@ -23,7 +23,9 @@ from service.account_crypto_commands import (
|
||||
from service.account_service import (
|
||||
cmd_account_add_secret,
|
||||
cmd_account_add_web,
|
||||
cmd_account_copy,
|
||||
cmd_account_ensure_web,
|
||||
cmd_account_update,
|
||||
cmd_account_get,
|
||||
cmd_account_get_credential,
|
||||
cmd_account_list,
|
||||
@@ -71,11 +73,14 @@ _USAGE = """account-manager v2 — Credential & Browser Profile Manager
|
||||
[--url <url>] [--auth-strategy <s>]
|
||||
|
||||
账号管理:
|
||||
account add-web --platform <p> --login-id <id> --login-id-type <type>
|
||||
account add-web --platform <p> [--login-id <id>] [--login-id-type <type>]
|
||||
[--label <label>] [--tenant-id <t>] [--environment <env>]
|
||||
[--role <role>] [--provider-code <code>] [--url <url>]
|
||||
[--extra-json <json>] [--profile-dir <path>]
|
||||
[--auth-strategy <s>] [--session-persistent 0|1] [--device-fingerprint <fp>]
|
||||
account copy <id>
|
||||
account update --id <id> [--label <label>] [--login-id <id>]
|
||||
[--login-id-type <type>] [--url <url>] [--status active|disabled|needs_review]
|
||||
account add-secret --platform <p> --credential-type <type>
|
||||
--secret-storage env|windows_credential|none|local_encrypted
|
||||
[--secret-ref <env_var>] [--secret-stdin]
|
||||
@@ -276,6 +281,13 @@ def main() -> None:
|
||||
sub = av[2]
|
||||
if sub == "add-web":
|
||||
_cmd_add_web(av)
|
||||
elif sub == "copy":
|
||||
if len(av) < 4:
|
||||
print("ERROR:CLI_BAD_ARGS account copy 需要 <id>。")
|
||||
sys.exit(1)
|
||||
cmd_account_copy(av[3])
|
||||
elif sub == "update":
|
||||
_cmd_account_update(av)
|
||||
elif sub == "ensure-web":
|
||||
_cmd_ensure_web(av)
|
||||
elif sub == "add-secret":
|
||||
@@ -467,7 +479,7 @@ def main() -> None:
|
||||
def _cmd_add_web(argv: list[str]) -> None:
|
||||
plat = _get_opt(argv, "--platform", "")
|
||||
login_id = _get_opt(argv, "--login-id")
|
||||
login_id_type = _get_opt(argv, "--login-id-type", "unknown")
|
||||
login_id_type = _get_opt(argv, "--login-id-type")
|
||||
label = _get_opt(argv, "--label")
|
||||
tenant_id = _get_opt(argv, "--tenant-id")
|
||||
environment = _get_opt(argv, "--environment", "production")
|
||||
@@ -511,6 +523,34 @@ def _cmd_add_web(argv: list[str]) -> None:
|
||||
)
|
||||
|
||||
|
||||
def _cmd_account_update(argv: list[str]) -> None:
|
||||
from db.accounts_repo import _UNSET
|
||||
|
||||
aid = _get_opt(argv, "--id")
|
||||
if not aid and len(argv) >= 4 and not str(argv[3]).startswith("-"):
|
||||
aid = argv[3]
|
||||
label = _get_opt(argv, "--label")
|
||||
login_id_type = _get_opt(argv, "--login-id-type")
|
||||
status = _get_opt(argv, "--status")
|
||||
login_id = _UNSET
|
||||
if "--login-id" in argv:
|
||||
login_id = _get_opt(argv, "--login-id") or ""
|
||||
url = _UNSET
|
||||
if "--url" in argv:
|
||||
url = _get_opt(argv, "--url") or ""
|
||||
if not aid:
|
||||
print("ERROR:CLI_BAD_ARGS account update 需要 --id <id>。")
|
||||
return
|
||||
cmd_account_update(
|
||||
aid,
|
||||
label=label,
|
||||
login_id=login_id,
|
||||
login_id_type=login_id_type,
|
||||
url=url,
|
||||
status=status,
|
||||
)
|
||||
|
||||
|
||||
def _cmd_get_credential(argv: list[str]) -> None:
|
||||
aid_raw = argv[3]
|
||||
try:
|
||||
@@ -619,7 +659,7 @@ def _cmd_pick_web_new(argv: list[str]) -> None:
|
||||
def _cmd_ensure_web(argv: list[str]) -> None:
|
||||
plat = _get_opt(argv, "--platform", "")
|
||||
login_id = _get_opt(argv, "--login-id")
|
||||
login_id_type = _get_opt(argv, "--login-id-type", "unknown")
|
||||
login_id_type = _get_opt(argv, "--login-id-type")
|
||||
label = _get_opt(argv, "--label")
|
||||
tenant_id = _get_opt(argv, "--tenant-id")
|
||||
environment = _get_opt(argv, "--environment")
|
||||
@@ -651,7 +691,7 @@ def _cmd_ensure_web(argv: list[str]) -> None:
|
||||
cmd_account_ensure_web(
|
||||
platform_input=plat,
|
||||
login_id=login_id,
|
||||
login_id_type=login_id_type or "unknown",
|
||||
login_id_type=login_id_type,
|
||||
label=label,
|
||||
tenant_id=tenant_id,
|
||||
environment=environment,
|
||||
|
||||
Reference in New Issue
Block a user