bt-cli 0.4.7__py3-none-any.whl → 0.4.9__py3-none-any.whl
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/__init__.py +1 -1
- bt_cli-0.4.9.dist-info/METADATA +417 -0
- {bt_cli-0.4.7.dist-info → bt_cli-0.4.9.dist-info}/RECORD +5 -5
- bt_cli-0.4.7.dist-info/METADATA +0 -172
- {bt_cli-0.4.7.dist-info → bt_cli-0.4.9.dist-info}/WHEEL +0 -0
- {bt_cli-0.4.7.dist-info → bt_cli-0.4.9.dist-info}/entry_points.txt +0 -0
bt_cli/__init__.py
CHANGED
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: bt-cli
|
|
3
|
+
Version: 0.4.9
|
|
4
|
+
Summary: BeyondTrust Platform CLI (unofficial) - Password Safe, Entitle, PRA, EPM
|
|
5
|
+
Author-email: Dave Grendysz <dgrendysz@beyondtrust.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Keywords: beyondtrust,cli,pam,password-safe,privileged-access,security
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Environment :: Console
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: Intended Audience :: System Administrators
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Operating System :: OS Independent
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Topic :: Security
|
|
20
|
+
Classifier: Topic :: System :: Systems Administration
|
|
21
|
+
Requires-Python: >=3.9
|
|
22
|
+
Requires-Dist: httpx>=0.27.0
|
|
23
|
+
Requires-Dist: pydantic>=2.0.0
|
|
24
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
25
|
+
Requires-Dist: pyyaml>=6.0.0
|
|
26
|
+
Requires-Dist: rich<15.0.0,>=13.7.0
|
|
27
|
+
Requires-Dist: shellingham>=1.5.0
|
|
28
|
+
Requires-Dist: typer<1.0.0,>=0.12.0
|
|
29
|
+
Provides-Extra: all
|
|
30
|
+
Requires-Dist: keyring>=24.0.0; extra == 'all'
|
|
31
|
+
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: pyinstaller>=6.0.0; extra == 'dev'
|
|
33
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
34
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
36
|
+
Requires-Dist: respx>=0.21.0; extra == 'dev'
|
|
37
|
+
Provides-Extra: keyring
|
|
38
|
+
Requires-Dist: keyring>=24.0.0; extra == 'keyring'
|
|
39
|
+
Provides-Extra: test
|
|
40
|
+
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'test'
|
|
41
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
|
|
42
|
+
Requires-Dist: pytest>=8.0.0; extra == 'test'
|
|
43
|
+
Requires-Dist: respx>=0.21.0; extra == 'test'
|
|
44
|
+
Description-Content-Type: text/markdown
|
|
45
|
+
|
|
46
|
+
# BT-CLI
|
|
47
|
+
|
|
48
|
+
Unofficial BeyondTrust Platform CLI - manage privileged access across your environment from a single command line.
|
|
49
|
+
|
|
50
|
+
## Supported Products
|
|
51
|
+
|
|
52
|
+
| Product | Command | Description |
|
|
53
|
+
|---------|---------|-------------|
|
|
54
|
+
| **Password Safe** | `bt pws` | Credential vaulting, secrets management, password rotation |
|
|
55
|
+
| **Entitle** | `bt entitle` | Just-in-time access requests and approval workflows |
|
|
56
|
+
| **PRA** | `bt pra` | Privileged remote access - jump items, sessions, vault |
|
|
57
|
+
| **EPM Windows** | `bt epmw` | Endpoint privilege management - computers, policies, admin requests |
|
|
58
|
+
|
|
59
|
+
## Installation
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
pip install bt-cli
|
|
63
|
+
bt version
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Configuration
|
|
67
|
+
|
|
68
|
+
Set environment variables for each product you want to use. You only need to configure the products you'll use.
|
|
69
|
+
|
|
70
|
+
### Password Safe
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# Option 1: OAuth (recommended)
|
|
74
|
+
export BT_PWS_API_URL=https://your-server/BeyondTrust/api/public/v3
|
|
75
|
+
export BT_PWS_CLIENT_ID=your-client-id
|
|
76
|
+
export BT_PWS_CLIENT_SECRET=your-client-secret
|
|
77
|
+
|
|
78
|
+
# Option 2: API Key
|
|
79
|
+
export BT_PWS_API_URL=https://your-server/BeyondTrust/api/public/v3
|
|
80
|
+
export BT_PWS_API_KEY=your-api-key
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Entitle
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
export BT_ENTITLE_API_URL=https://api.us.entitle.io
|
|
87
|
+
export BT_ENTITLE_API_KEY=your-api-key
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### PRA (Privileged Remote Access)
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
export BT_PRA_API_URL=https://your-site.beyondtrustcloud.com
|
|
94
|
+
export BT_PRA_CLIENT_ID=your-client-id
|
|
95
|
+
export BT_PRA_CLIENT_SECRET=your-client-secret
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### EPM Windows
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
export BT_EPM_API_URL=https://your-site-services.epm.bt3ng.com
|
|
102
|
+
export BT_EPM_CLIENT_ID=your-client-id
|
|
103
|
+
export BT_EPM_CLIENT_SECRET=your-client-secret
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Using a .env File
|
|
107
|
+
|
|
108
|
+
Create a `.env` file and source it before running commands:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
source .env
|
|
112
|
+
bt pws auth test
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Test Your Configuration
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
bt pws auth test # Test Password Safe connection
|
|
119
|
+
bt entitle auth test # Test Entitle connection
|
|
120
|
+
bt pra auth test # Test PRA connection
|
|
121
|
+
bt epmw auth test # Test EPM Windows connection
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Command Reference
|
|
127
|
+
|
|
128
|
+
### Password Safe (`bt pws`)
|
|
129
|
+
|
|
130
|
+
#### Systems
|
|
131
|
+
```bash
|
|
132
|
+
bt pws systems list # List all managed systems
|
|
133
|
+
bt pws systems list -o json # Output as JSON
|
|
134
|
+
bt pws systems get <system-id> # Get system details
|
|
135
|
+
bt pws systems create -n "name" -i "10.0.1.50" -w <workgroup-id> -p <platform-id>
|
|
136
|
+
bt pws systems delete <system-id>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
#### Accounts
|
|
140
|
+
```bash
|
|
141
|
+
bt pws accounts list # List all managed accounts
|
|
142
|
+
bt pws accounts list -s <system-id> # List accounts for a system
|
|
143
|
+
bt pws accounts get <account-id> # Get account details
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
#### Credentials (Checkout/Checkin)
|
|
147
|
+
```bash
|
|
148
|
+
bt pws credentials request <system> <account> # Request credential checkout
|
|
149
|
+
bt pws credentials show <request-id> # Show checked-out password
|
|
150
|
+
bt pws credentials checkin <request-id> # Check in credential
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
#### Secrets Safe
|
|
154
|
+
```bash
|
|
155
|
+
bt pws secrets safes list # List safes
|
|
156
|
+
bt pws secrets folders list <safe> # List folders in a safe
|
|
157
|
+
bt pws secrets list <safe> <folder> # List secrets
|
|
158
|
+
bt pws secrets get <safe> <folder> <title> # Get secret value
|
|
159
|
+
bt pws secrets create <safe> <folder> <title> <value>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
#### Quick Commands (Workflows)
|
|
163
|
+
```bash
|
|
164
|
+
# Checkout a credential (combines request + show)
|
|
165
|
+
bt pws quick checkout -s "system-name" -a "account-name"
|
|
166
|
+
bt pws quick checkout -s "system-name" -a "account-name" --raw # Password only
|
|
167
|
+
|
|
168
|
+
# Onboard a new system with account
|
|
169
|
+
bt pws quick onboard -n "hostname" -i "10.0.1.50" -w <workgroup-id> -f <functional-account-id>
|
|
170
|
+
|
|
171
|
+
# Offboard (remove system and accounts)
|
|
172
|
+
bt pws quick offboard -s "system-name"
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
#### Other Commands
|
|
176
|
+
```bash
|
|
177
|
+
bt pws workgroups list # List workgroups
|
|
178
|
+
bt pws platforms list # List platforms
|
|
179
|
+
bt pws functional list # List functional accounts
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
### Entitle (`bt entitle`)
|
|
185
|
+
|
|
186
|
+
#### Integrations
|
|
187
|
+
```bash
|
|
188
|
+
bt entitle integrations list # List all integrations
|
|
189
|
+
bt entitle integrations get <id> # Get integration details
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
#### Resources
|
|
193
|
+
```bash
|
|
194
|
+
bt entitle resources list # List all resources
|
|
195
|
+
bt entitle resources list -s "search" # Search resources
|
|
196
|
+
bt entitle resources get <id> # Get resource details
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
#### Bundles
|
|
200
|
+
```bash
|
|
201
|
+
bt entitle bundles list # List access bundles
|
|
202
|
+
bt entitle bundles get <id> # Get bundle details
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### Workflows
|
|
206
|
+
```bash
|
|
207
|
+
bt entitle workflows list # List approval workflows
|
|
208
|
+
bt entitle workflows get <id> # Get workflow details
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
#### Permissions
|
|
212
|
+
```bash
|
|
213
|
+
bt entitle permissions list # List all permissions
|
|
214
|
+
bt entitle permissions list -u <user> # List user's permissions
|
|
215
|
+
bt entitle permissions revoke <id> # Revoke a permission
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
#### Users
|
|
219
|
+
```bash
|
|
220
|
+
bt entitle users list # List users
|
|
221
|
+
bt entitle users get <id> # Get user details
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
### PRA (`bt pra`)
|
|
227
|
+
|
|
228
|
+
#### Jump Items - Shell (SSH)
|
|
229
|
+
```bash
|
|
230
|
+
bt pra jump-items shell list # List SSH jump items
|
|
231
|
+
bt pra jump-items shell get <id> # Get jump item details
|
|
232
|
+
bt pra jump-items shell create -n "name" -h "hostname" -j <jumpoint-id> -g <jump-group-id>
|
|
233
|
+
bt pra jump-items shell delete <id>
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
#### Jump Items - RDP
|
|
237
|
+
```bash
|
|
238
|
+
bt pra jump-items rdp list # List RDP jump items
|
|
239
|
+
bt pra jump-items rdp create -n "name" -h "hostname" -j <jumpoint-id> -g <jump-group-id>
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
#### Vault Accounts
|
|
243
|
+
```bash
|
|
244
|
+
bt pra vault list # List vault accounts
|
|
245
|
+
bt pra vault get <id> # Get vault account details
|
|
246
|
+
bt pra vault checkout <id> # Checkout credentials
|
|
247
|
+
bt pra vault checkin <id> # Checkin credentials
|
|
248
|
+
bt pra vault rotate <id> # Rotate password
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
#### Jump Groups
|
|
252
|
+
```bash
|
|
253
|
+
bt pra jump-groups list # List jump groups
|
|
254
|
+
bt pra jump-groups get <id> # Get group details
|
|
255
|
+
bt pra jump-groups create -n "name" # Create jump group
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
#### Jumpoints
|
|
259
|
+
```bash
|
|
260
|
+
bt pra jumpoints list # List jumpoints
|
|
261
|
+
bt pra jumpoints get <id> # Get jumpoint details
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
#### Quick Commands
|
|
265
|
+
```bash
|
|
266
|
+
# Create shell jump with vault account
|
|
267
|
+
bt pra quick shell-jump -n "name" -h "host" -j <jumpoint> -g <group> --vault-account <account-id>
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
### EPM Windows (`bt epmw`)
|
|
273
|
+
|
|
274
|
+
#### Computers
|
|
275
|
+
```bash
|
|
276
|
+
bt epmw computers list # List managed computers
|
|
277
|
+
bt epmw computers list -o json # Output as JSON
|
|
278
|
+
bt epmw computers get <id> # Get computer details
|
|
279
|
+
bt epmw computers archive <id> # Archive (remove) computer
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
#### Groups
|
|
283
|
+
```bash
|
|
284
|
+
bt epmw groups list # List computer groups
|
|
285
|
+
bt epmw groups get <id> # Get group details
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
#### Policies
|
|
289
|
+
```bash
|
|
290
|
+
bt epmw policies list # List policies
|
|
291
|
+
bt epmw policies get <id> # Get policy details
|
|
292
|
+
bt epmw policies download <id> # Download policy XML
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
#### Admin Requests
|
|
296
|
+
```bash
|
|
297
|
+
bt epmw requests list # List pending requests
|
|
298
|
+
bt epmw requests list --status approved
|
|
299
|
+
bt epmw requests approve <id> # Approve request
|
|
300
|
+
bt epmw requests deny <id> -r "reason" # Deny request
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
#### Events & Audits
|
|
304
|
+
```bash
|
|
305
|
+
bt epmw events list # List recent events
|
|
306
|
+
bt epmw events list --hours 48 # Events from last 48 hours
|
|
307
|
+
bt epmw events search -q "keyword" # Search events
|
|
308
|
+
bt epmw audits list # List audit logs
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
### Cross-Product Commands (`bt quick`)
|
|
314
|
+
|
|
315
|
+
For environments with both Password Safe and PRA (PASM):
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# Onboard system to both PWS and PRA
|
|
319
|
+
bt quick pasm-onboard -n "hostname" -i "10.0.1.50" -w <workgroup> -j <jumpoint> -g <jump-group>
|
|
320
|
+
|
|
321
|
+
# Offboard from both
|
|
322
|
+
bt quick pasm-offboard -n "hostname"
|
|
323
|
+
|
|
324
|
+
# Search across both products
|
|
325
|
+
bt quick pasm-search -q "hostname"
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Output Formats
|
|
331
|
+
|
|
332
|
+
All list commands support multiple output formats:
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
bt pws systems list # Default table format
|
|
336
|
+
bt pws systems list -o json # JSON output
|
|
337
|
+
bt pws systems list -o json | jq # Pipe to jq for processing
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### Scripting with Raw Output
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
# Get just the password for scripting
|
|
344
|
+
PASSWORD=$(bt pws quick checkout -s "server" -a "admin" --raw)
|
|
345
|
+
|
|
346
|
+
# Use in SSH
|
|
347
|
+
sshpass -p "$PASSWORD" ssh admin@server
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
---
|
|
351
|
+
|
|
352
|
+
## Concepts
|
|
353
|
+
|
|
354
|
+
### Password Safe: Functional vs Managed Accounts
|
|
355
|
+
|
|
356
|
+
**Functional accounts** are service accounts used BY Password Safe to connect to and manage systems. They perform password rotation, discovery, and other automated tasks.
|
|
357
|
+
|
|
358
|
+
**Managed accounts** are the accounts ON systems that Password Safe stores and rotates passwords for. These are what users check out.
|
|
359
|
+
|
|
360
|
+
```bash
|
|
361
|
+
# List functional accounts (for system management)
|
|
362
|
+
bt pws functional list
|
|
363
|
+
|
|
364
|
+
# List managed accounts (for checkout)
|
|
365
|
+
bt pws accounts list
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### PRA: Jump Items and Jumpoints
|
|
369
|
+
|
|
370
|
+
**Jumpoints** are agents installed in your network that facilitate connections. **Jump items** are the actual connection definitions (SSH, RDP, etc.) that use jumpoints.
|
|
371
|
+
|
|
372
|
+
```bash
|
|
373
|
+
# Find available jumpoints
|
|
374
|
+
bt pra jumpoints list
|
|
375
|
+
|
|
376
|
+
# Create a jump item using a jumpoint
|
|
377
|
+
bt pra jump-items shell create -n "my-server" -h "10.0.1.50" -j <jumpoint-id> -g <group-id>
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Troubleshooting
|
|
383
|
+
|
|
384
|
+
### Authentication Errors
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
# Test connectivity
|
|
388
|
+
bt pws auth test
|
|
389
|
+
|
|
390
|
+
# Enable debug output to see API calls
|
|
391
|
+
export BT_SHOW_REST=true
|
|
392
|
+
bt pws systems list
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
### SSL Certificate Issues
|
|
396
|
+
|
|
397
|
+
For self-signed certificates (not recommended for production):
|
|
398
|
+
|
|
399
|
+
```bash
|
|
400
|
+
export BT_SSL_INSECURE_ALLOW=true
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
### Common Issues
|
|
404
|
+
|
|
405
|
+
| Error | Solution |
|
|
406
|
+
|-------|----------|
|
|
407
|
+
| 401 Unauthorized | Check credentials in environment variables |
|
|
408
|
+
| 403 Forbidden | Verify API user has required permissions |
|
|
409
|
+
| 404 Not Found | Check API URL format and resource IDs |
|
|
410
|
+
| Connection refused | Verify URL and network connectivity |
|
|
411
|
+
| EPMW 405 on delete | Use `archive` instead of `delete` for computers |
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
|
|
415
|
+
## License
|
|
416
|
+
|
|
417
|
+
MIT License - This is an unofficial tool not affiliated with or supported by BeyondTrust.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
bt_cli/__init__.py,sha256=
|
|
1
|
+
bt_cli/__init__.py,sha256=J5N-KHzhIH4xHZNVUW8NVKkg35xAvsZKv7KxS48wXx8,60
|
|
2
2
|
bt_cli/cli.py,sha256=u2B59fO-8uH0200TbcaBiy387wuc7j_-1pUgZFXphQA,29554
|
|
3
3
|
bt_cli/commands/__init__.py,sha256=Wrf3ZV1sf7JCilbv93VqoWWTyj0d-y4saAaVFD5apU8,38
|
|
4
4
|
bt_cli/commands/configure.py,sha256=f3tn09eRDqlGQIq1gpuxj984S4CARYbmKI4XrqxPAAM,14270
|
|
@@ -115,7 +115,7 @@ bt_cli/pws/models/account.py,sha256=OSCMyULPOH1Yu2WOzK0ZQhSRrggGpb2JPHScwGLqUgI,
|
|
|
115
115
|
bt_cli/pws/models/asset.py,sha256=Fl0AlR4_9Yyyu36FL1eKF29DNsxsB-r7FaOBRlfOg2Q,4081
|
|
116
116
|
bt_cli/pws/models/common.py,sha256=D9Ah4ob5CIiFhTt_IR9nF2cBWRHS2z9OyBR2Sss5yzw,3487
|
|
117
117
|
bt_cli/pws/models/system.py,sha256=D_J0x1A92H2n6BsaBEK9PSAAcs3BTifA5-M9SQqQFGA,5856
|
|
118
|
-
bt_cli-0.4.
|
|
119
|
-
bt_cli-0.4.
|
|
120
|
-
bt_cli-0.4.
|
|
121
|
-
bt_cli-0.4.
|
|
118
|
+
bt_cli-0.4.9.dist-info/METADATA,sha256=QcUQ3SQhV3vZXumno8UpY8zIRz33eQW9Q4ZIwUiZvKo,11802
|
|
119
|
+
bt_cli-0.4.9.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
120
|
+
bt_cli-0.4.9.dist-info/entry_points.txt,sha256=NCOEqTI-XKpJOux0JKKhbRElz0B7upayh_d99X5hoLs,38
|
|
121
|
+
bt_cli-0.4.9.dist-info/RECORD,,
|
bt_cli-0.4.7.dist-info/METADATA
DELETED
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: bt-cli
|
|
3
|
-
Version: 0.4.7
|
|
4
|
-
Summary: BeyondTrust Platform CLI (unofficial) - Password Safe, Entitle, PRA, EPM
|
|
5
|
-
Author-email: Dave Grendysz <dgrendysz@beyondtrust.com>
|
|
6
|
-
License: MIT
|
|
7
|
-
Keywords: beyondtrust,cli,pam,password-safe,privileged-access,security
|
|
8
|
-
Classifier: Development Status :: 4 - Beta
|
|
9
|
-
Classifier: Environment :: Console
|
|
10
|
-
Classifier: Intended Audience :: Developers
|
|
11
|
-
Classifier: Intended Audience :: System Administrators
|
|
12
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
-
Classifier: Operating System :: OS Independent
|
|
14
|
-
Classifier: Programming Language :: Python :: 3
|
|
15
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
-
Classifier: Topic :: Security
|
|
19
|
-
Classifier: Topic :: System :: Systems Administration
|
|
20
|
-
Requires-Python: >=3.10
|
|
21
|
-
Requires-Dist: httpx>=0.27.0
|
|
22
|
-
Requires-Dist: pydantic>=2.0.0
|
|
23
|
-
Requires-Dist: python-dotenv>=1.0.0
|
|
24
|
-
Requires-Dist: pyyaml>=6.0.0
|
|
25
|
-
Requires-Dist: rich<15.0.0,>=13.7.0
|
|
26
|
-
Requires-Dist: shellingham>=1.5.0
|
|
27
|
-
Requires-Dist: typer<1.0.0,>=0.12.0
|
|
28
|
-
Provides-Extra: all
|
|
29
|
-
Requires-Dist: keyring>=24.0.0; extra == 'all'
|
|
30
|
-
Provides-Extra: dev
|
|
31
|
-
Requires-Dist: pyinstaller>=6.0.0; extra == 'dev'
|
|
32
|
-
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'dev'
|
|
33
|
-
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
34
|
-
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
35
|
-
Requires-Dist: respx>=0.21.0; extra == 'dev'
|
|
36
|
-
Provides-Extra: keyring
|
|
37
|
-
Requires-Dist: keyring>=24.0.0; extra == 'keyring'
|
|
38
|
-
Provides-Extra: test
|
|
39
|
-
Requires-Dist: pytest-asyncio>=0.23.0; extra == 'test'
|
|
40
|
-
Requires-Dist: pytest-cov>=4.0.0; extra == 'test'
|
|
41
|
-
Requires-Dist: pytest>=8.0.0; extra == 'test'
|
|
42
|
-
Requires-Dist: respx>=0.21.0; extra == 'test'
|
|
43
|
-
Description-Content-Type: text/markdown
|
|
44
|
-
|
|
45
|
-
# BT-CLI
|
|
46
|
-
|
|
47
|
-
Unofficial BeyondTrust Platform CLI - manage privileged access across your environment from a single command line.
|
|
48
|
-
|
|
49
|
-
## Supported Products
|
|
50
|
-
|
|
51
|
-
| Product | Command | Description |
|
|
52
|
-
|---------|---------|-------------|
|
|
53
|
-
| **Password Safe** | `bt pws` | Credential vaulting, secrets management, password rotation |
|
|
54
|
-
| **Entitle** | `bt entitle` | Just-in-time access requests and approval workflows |
|
|
55
|
-
| **PRA** | `bt pra` | Privileged remote access - jump items, sessions, vault |
|
|
56
|
-
| **EPM Windows** | `bt epmw` | Endpoint privilege management - computers, policies, admin requests |
|
|
57
|
-
|
|
58
|
-
## What You Can Do
|
|
59
|
-
|
|
60
|
-
**Credential Management (Password Safe)**
|
|
61
|
-
- Check out/in credentials for managed systems
|
|
62
|
-
- Store and retrieve secrets in Secrets Safe
|
|
63
|
-
- Manage systems, accounts, and password rotation policies
|
|
64
|
-
|
|
65
|
-
**Just-in-Time Access (Entitle)**
|
|
66
|
-
- View available access bundles and integrations
|
|
67
|
-
- Check user permissions and active grants
|
|
68
|
-
- Manage resources across connected applications
|
|
69
|
-
|
|
70
|
-
**Remote Access (PRA)**
|
|
71
|
-
- List and create jump items (SSH, RDP, tunnels)
|
|
72
|
-
- Manage vault accounts and credential checkout
|
|
73
|
-
- Organize access with jump groups
|
|
74
|
-
|
|
75
|
-
**Endpoint Privilege (EPM Windows)**
|
|
76
|
-
- View managed computers and their status
|
|
77
|
-
- Assign policies to computer groups
|
|
78
|
-
- Approve or deny admin access requests
|
|
79
|
-
|
|
80
|
-
## Installation
|
|
81
|
-
|
|
82
|
-
### From PyPI (Recommended)
|
|
83
|
-
|
|
84
|
-
```bash
|
|
85
|
-
pip install bt-cli
|
|
86
|
-
|
|
87
|
-
# Verify
|
|
88
|
-
bt version
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### From Source
|
|
92
|
-
|
|
93
|
-
```bash
|
|
94
|
-
# Clone and install
|
|
95
|
-
git clone <repository-url>
|
|
96
|
-
cd bt-cli
|
|
97
|
-
|
|
98
|
-
# Create virtual environment
|
|
99
|
-
python -m venv .venv
|
|
100
|
-
source .venv/bin/activate # Linux/macOS
|
|
101
|
-
# or: .venv\Scripts\activate # Windows
|
|
102
|
-
|
|
103
|
-
# Install
|
|
104
|
-
pip install -e .
|
|
105
|
-
|
|
106
|
-
# Verify
|
|
107
|
-
bt version
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
## Configuration
|
|
111
|
-
|
|
112
|
-
Set environment variables for each product you want to use:
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
# Password Safe (OAuth)
|
|
116
|
-
export BT_PWS_API_URL=https://your-server/BeyondTrust/api/public/v3
|
|
117
|
-
export BT_PWS_CLIENT_ID=your-client-id
|
|
118
|
-
export BT_PWS_CLIENT_SECRET=your-client-secret
|
|
119
|
-
|
|
120
|
-
# Entitle
|
|
121
|
-
export BT_ENTITLE_API_URL=https://api.us.entitle.io
|
|
122
|
-
export BT_ENTITLE_API_KEY=your-api-key
|
|
123
|
-
|
|
124
|
-
# PRA
|
|
125
|
-
export BT_PRA_API_URL=https://your-site.beyondtrustcloud.com
|
|
126
|
-
export BT_PRA_CLIENT_ID=your-client-id
|
|
127
|
-
export BT_PRA_CLIENT_SECRET=your-client-secret
|
|
128
|
-
|
|
129
|
-
# EPM Windows
|
|
130
|
-
export BT_EPM_API_URL=https://your-site-services.epm.bt3ng.com
|
|
131
|
-
export BT_EPM_CLIENT_ID=your-client-id
|
|
132
|
-
export BT_EPM_CLIENT_SECRET=your-client-secret
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
On Windows PowerShell:
|
|
136
|
-
```powershell
|
|
137
|
-
$env:BT_PWS_API_URL = "https://your-server/BeyondTrust/api/public/v3"
|
|
138
|
-
$env:BT_PWS_CLIENT_ID = "your-client-id"
|
|
139
|
-
$env:BT_PWS_CLIENT_SECRET = "your-client-secret"
|
|
140
|
-
# ... etc
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
Or use a `.env` file and source it before running commands.
|
|
144
|
-
|
|
145
|
-
## Quick Start
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
# Test all connections
|
|
149
|
-
bt pws auth test
|
|
150
|
-
bt entitle auth test
|
|
151
|
-
bt pra auth test
|
|
152
|
-
bt epmw auth test
|
|
153
|
-
|
|
154
|
-
# Explore resources
|
|
155
|
-
bt pws systems list
|
|
156
|
-
bt entitle integrations list
|
|
157
|
-
bt pra jump-groups list
|
|
158
|
-
bt epmw computers list
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
## Output Formats
|
|
162
|
-
|
|
163
|
-
All commands support table (default) or JSON output:
|
|
164
|
-
|
|
165
|
-
```bash
|
|
166
|
-
bt pws systems list # Human-readable table
|
|
167
|
-
bt pws systems list -o json # JSON for scripting
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
## Documentation
|
|
171
|
-
|
|
172
|
-
See [CLAUDE.md](CLAUDE.md) for complete command reference, environment details, and cross-product workflows.
|
|
File without changes
|
|
File without changes
|