bt-cli 0.4.44__tar.gz → 0.4.45__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.
- {bt_cli-0.4.44 → bt_cli-0.4.45}/CLAUDE.md +1 -1
- {bt_cli-0.4.44 → bt_cli-0.4.45}/PKG-INFO +1 -1
- {bt_cli-0.4.44 → bt_cli-0.4.45}/pyproject.toml +1 -1
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/__init__.py +1 -1
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/commands/configure.py +17 -2
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/config_file.py +12 -1
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.claude/skills/bt/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.claude/skills/entitle/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.claude/skills/epml/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.claude/skills/epmw/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.claude/skills/pra/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.claude/skills/pws/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.env.example +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.github/workflows/ci.yml +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.github/workflows/release.yml +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/.gitignore +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/README.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/assets/cli-help.png +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/assets/cli-output.png +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/bt-cli.spec +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/bt_entry.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/epml-clients-server-side-filters-plan.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/epml-implementation-plan.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/pf-implementation-plan.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/scripts/bt_entry.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/scripts/pf_onboard.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/scripts/sync-package-data.sh +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/cli.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/commands/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/commands/learn.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/commands/quick.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/auth.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/client.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/config.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/csv_utils.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/errors.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/output.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/prompts.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/core/rest_debug.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/data/CLAUDE.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/data/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/data/skills/bt/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/data/skills/entitle/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/data/skills/epml/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/data/skills/epmw/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/data/skills/pra/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/data/skills/pws/SKILL.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/client/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/client/base.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/accounts.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/applications.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/auth.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/bundles.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/integrations.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/permissions.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/policies.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/requests.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/resources.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/roles.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/users.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/commands/workflows.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/bundle.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/common.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/integration.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/permission.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/policy.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/resource.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/role.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/user.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/entitle/models/workflow.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/client/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/client/base.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/audit.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/auth.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/client_pkg.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/clients.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/external_apis.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/hosts.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/iolog.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/license.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/quick.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_cmdgrps.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_entitlement.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_hostgrps.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_policy.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_roles.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_tests.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_tmdategrps.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_tx.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/rbp_usergrps.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/settings.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/siems.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/commands/users.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epml/models/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/client/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/client/base.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/audits.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/auth.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/computers.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/events.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/groups.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/policies.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/quick.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/requests.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/roles.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/tasks.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/commands/users.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/epmw/models/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/client/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/client/base.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/auth.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/group_policies.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/import_export.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/jump_clients.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/jump_groups.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/jump_items.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/jumpoints.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/policies.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/quick.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/teams.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/users.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/commands/vault.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/common.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/group_policy.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/jump_client.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/jump_group.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/jump_item.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/jumpoint.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/team.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/user.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pra/models/vault.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/client/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/client/base.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/client/beyondinsight.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/client/passwordsafe.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/accounts.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/assets.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/attributes.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/auth.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/clouds.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/config.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/credentials.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/databases.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/directories.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/functional.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/import_export.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/platforms.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/quick.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/search.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/secrets.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/systems.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/users.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/commands/workgroups.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/config.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/models/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/models/account.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/models/asset.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/models/common.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/src/bt_cli/pws/models/system.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/conftest.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/core/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/core/test_auth.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/core/test_config.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/core/test_errors.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/core/test_rest_debug.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/entitle/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/entitle/test_client.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/entitle/test_commands.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/entitle-smoke-test.sh +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/epml/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/epml/test_client.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/epml/test_commands.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/epmw/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/epmw/test_client.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/epmw/test_commands.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/epmw-quick-test-plan.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/fixtures/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/fixtures/responses.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/conftest.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/helpers.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/test_entitle_integration.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/test_epmw_integration.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/test_epmw_lifecycle.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/test_pra_integration.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/test_pra_lifecycle.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/test_pws_integration.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/integration/test_pws_lifecycle.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pra/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pra/test_client.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pra/test_commands.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pra-smoke-test.sh +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pra-test-plan.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pws/__init__.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pws/test_client.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pws/test_commands.py +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pws-quick-test-plan.md +0 -0
- {bt_cli-0.4.44 → bt_cli-0.4.45}/tests/pws-smoke-test.sh +0 -0
|
@@ -43,6 +43,11 @@ def configure_callback(
|
|
|
43
43
|
client_id: Optional[str] = typer.Option(None, "--client-id", help="OAuth Client ID"),
|
|
44
44
|
client_secret: Optional[str] = typer.Option(None, "--client-secret", help="OAuth Client Secret"),
|
|
45
45
|
api_key: Optional[str] = typer.Option(None, "--api-key", help="API Key"),
|
|
46
|
+
user_api_key: Optional[str] = typer.Option(
|
|
47
|
+
None,
|
|
48
|
+
"--user-api-key",
|
|
49
|
+
help="Entitle user-context API key (only required for `bt entitle requests create`)",
|
|
50
|
+
),
|
|
46
51
|
) -> None:
|
|
47
52
|
"""Configure bt-cli interactively or via flags.
|
|
48
53
|
|
|
@@ -65,11 +70,13 @@ def configure_callback(
|
|
|
65
70
|
return
|
|
66
71
|
|
|
67
72
|
# Check if any non-interactive flags were provided
|
|
68
|
-
has_flags = any([api_url, client_id, client_secret, api_key])
|
|
73
|
+
has_flags = any([api_url, client_id, client_secret, api_key, user_api_key])
|
|
69
74
|
|
|
70
75
|
if has_flags and product:
|
|
71
76
|
# Non-interactive mode with flags
|
|
72
|
-
_configure_with_flags(
|
|
77
|
+
_configure_with_flags(
|
|
78
|
+
product, profile, api_url, client_id, client_secret, api_key, user_api_key
|
|
79
|
+
)
|
|
73
80
|
else:
|
|
74
81
|
# Interactive mode
|
|
75
82
|
_configure_interactive(product, profile)
|
|
@@ -219,6 +226,7 @@ def _configure_with_flags(
|
|
|
219
226
|
client_id: Optional[str],
|
|
220
227
|
client_secret: Optional[str],
|
|
221
228
|
api_key: Optional[str],
|
|
229
|
+
user_api_key: Optional[str] = None,
|
|
222
230
|
) -> None:
|
|
223
231
|
"""Configure using command-line flags (non-interactive)."""
|
|
224
232
|
if product not in PRODUCTS:
|
|
@@ -240,6 +248,11 @@ def _configure_with_flags(
|
|
|
240
248
|
new_config["client_secret"] = client_secret
|
|
241
249
|
if api_key:
|
|
242
250
|
new_config["api_key"] = api_key
|
|
251
|
+
if user_api_key is not None:
|
|
252
|
+
if product != "entitle":
|
|
253
|
+
print_error("--user-api-key is only valid for product=entitle")
|
|
254
|
+
raise typer.Exit(2)
|
|
255
|
+
new_config["user_api_key"] = user_api_key
|
|
243
256
|
|
|
244
257
|
# Infer auth method
|
|
245
258
|
if api_key:
|
|
@@ -481,6 +494,7 @@ def import_from_env(
|
|
|
481
494
|
"entitle": {
|
|
482
495
|
"api_url": "BT_ENTITLE_API_URL",
|
|
483
496
|
"api_key": "BT_ENTITLE_API_KEY",
|
|
497
|
+
"user_api_key": "BT_ENTITLE_USER_API_KEY",
|
|
484
498
|
"verify_ssl": "BT_ENTITLE_VERIFY_SSL",
|
|
485
499
|
"timeout": "BT_ENTITLE_TIMEOUT",
|
|
486
500
|
},
|
|
@@ -582,6 +596,7 @@ def show_effective_config(
|
|
|
582
596
|
"Entitle": {
|
|
583
597
|
"api_url": "BT_ENTITLE_API_URL",
|
|
584
598
|
"api_key": "BT_ENTITLE_API_KEY",
|
|
599
|
+
"user_api_key": "BT_ENTITLE_USER_API_KEY",
|
|
585
600
|
"verify_ssl": "BT_ENTITLE_VERIFY_SSL",
|
|
586
601
|
"timeout": "BT_ENTITLE_TIMEOUT",
|
|
587
602
|
},
|
|
@@ -51,7 +51,16 @@ PRODUCTS = {
|
|
|
51
51
|
"default": "https://api.us.entitle.io",
|
|
52
52
|
"example": "https://api.us.entitle.io or https://api.eu.entitle.io",
|
|
53
53
|
},
|
|
54
|
-
"api_key": {
|
|
54
|
+
"api_key": {
|
|
55
|
+
"prompt": "Org/Admin API Key (read + admin writes)",
|
|
56
|
+
"required": True,
|
|
57
|
+
"secret": True,
|
|
58
|
+
},
|
|
59
|
+
"user_api_key": {
|
|
60
|
+
"prompt": "User-context API Key (only for `requests create`; leave blank to skip)",
|
|
61
|
+
"required": False,
|
|
62
|
+
"secret": True,
|
|
63
|
+
},
|
|
55
64
|
"verify_ssl": {"prompt": "Verify SSL", "required": False, "secret": False, "default": True},
|
|
56
65
|
"timeout": {"prompt": "Timeout (seconds)", "required": False, "secret": False, "default": 30},
|
|
57
66
|
},
|
|
@@ -341,6 +350,8 @@ def _get_env_mappings(product: str) -> dict[str, str]:
|
|
|
341
350
|
if product == "pws":
|
|
342
351
|
mappings["run_as"] = f"{prefix}_RUN_AS"
|
|
343
352
|
mappings["api_version"] = f"{prefix}_API_VERSION"
|
|
353
|
+
elif product == "entitle":
|
|
354
|
+
mappings["user_api_key"] = f"{prefix}_USER_API_KEY"
|
|
344
355
|
elif product == "epml":
|
|
345
356
|
mappings["site_id"] = f"{prefix}_SITE_ID"
|
|
346
357
|
mappings["pat"] = f"{prefix}_PAT"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|