illumio-pylo 0.3.11__py3-none-any.whl → 0.3.13__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.
- illumio_pylo/API/APIConnector.py +138 -106
- illumio_pylo/API/CredentialsManager.py +168 -3
- illumio_pylo/API/Explorer.py +619 -14
- illumio_pylo/API/JsonPayloadTypes.py +64 -4
- illumio_pylo/FilterQuery.py +892 -0
- illumio_pylo/Helpers/exports.py +1 -1
- illumio_pylo/LabelCommon.py +13 -3
- illumio_pylo/LabelDimension.py +109 -0
- illumio_pylo/LabelStore.py +97 -38
- illumio_pylo/WorkloadStore.py +58 -0
- illumio_pylo/__init__.py +9 -3
- illumio_pylo/cli/__init__.py +5 -2
- illumio_pylo/cli/commands/__init__.py +1 -0
- illumio_pylo/cli/commands/credential_manager.py +555 -4
- illumio_pylo/cli/commands/label_delete_unused.py +0 -3
- illumio_pylo/cli/commands/traffic_export.py +358 -0
- illumio_pylo/cli/commands/ui/credential_manager_ui/app.js +638 -0
- illumio_pylo/cli/commands/ui/credential_manager_ui/index.html +217 -0
- illumio_pylo/cli/commands/ui/credential_manager_ui/styles.css +581 -0
- illumio_pylo/cli/commands/update_pce_objects_cache.py +1 -2
- illumio_pylo/cli/commands/ven_duplicate_remover.py +79 -59
- illumio_pylo/cli/commands/workload_export.py +29 -0
- illumio_pylo/utilities/cli.py +4 -1
- illumio_pylo/utilities/health_monitoring.py +5 -1
- {illumio_pylo-0.3.11.dist-info → illumio_pylo-0.3.13.dist-info}/METADATA +2 -1
- {illumio_pylo-0.3.11.dist-info → illumio_pylo-0.3.13.dist-info}/RECORD +29 -24
- {illumio_pylo-0.3.11.dist-info → illumio_pylo-0.3.13.dist-info}/WHEEL +1 -1
- illumio_pylo/Query.py +0 -331
- {illumio_pylo-0.3.11.dist-info → illumio_pylo-0.3.13.dist-info}/licenses/LICENSE +0 -0
- {illumio_pylo-0.3.11.dist-info → illumio_pylo-0.3.13.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Credential Manager - Web Editor</title>
|
|
7
|
+
<link rel="stylesheet" href="/static/styles.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<div class="container">
|
|
11
|
+
<header>
|
|
12
|
+
<button id="theme-toggle" class="theme-toggle" title="Toggle dark mode">🌙</button>
|
|
13
|
+
<h1>🔐 PYLO Credential Manager</h1>
|
|
14
|
+
<p class="subtitle">Manage your PCE credentials</p>
|
|
15
|
+
</header>
|
|
16
|
+
|
|
17
|
+
<!-- Notification area -->
|
|
18
|
+
<div id="notification" class="notification hidden"></div>
|
|
19
|
+
|
|
20
|
+
<!-- Main content area -->
|
|
21
|
+
<main>
|
|
22
|
+
<!-- Credentials list section -->
|
|
23
|
+
<section id="credentials-section">
|
|
24
|
+
<div class="section-header">
|
|
25
|
+
<h2>Stored Credentials</h2>
|
|
26
|
+
<button id="btn-new-credential" class="btn btn-primary">+ New Credential</button>
|
|
27
|
+
</div>
|
|
28
|
+
<div id="credentials-loading" class="loading">Loading credentials...</div>
|
|
29
|
+
<table id="credentials-table" class="hidden">
|
|
30
|
+
<thead>
|
|
31
|
+
<tr>
|
|
32
|
+
<th>Name</th>
|
|
33
|
+
<th>FQDN</th>
|
|
34
|
+
<th>Port</th>
|
|
35
|
+
<th>Org ID</th>
|
|
36
|
+
<th>API User</th>
|
|
37
|
+
<th>Encrypted Key</th>
|
|
38
|
+
<th>Verify SSL</th>
|
|
39
|
+
<th>File</th>
|
|
40
|
+
<th>Actions</th>
|
|
41
|
+
</tr>
|
|
42
|
+
</thead>
|
|
43
|
+
<tbody id="credentials-body">
|
|
44
|
+
</tbody>
|
|
45
|
+
</table>
|
|
46
|
+
<div id="no-credentials" class="empty-state hidden">
|
|
47
|
+
<p>No credentials found. Click "New Credential" to create one.</p>
|
|
48
|
+
</div>
|
|
49
|
+
</section>
|
|
50
|
+
</main>
|
|
51
|
+
|
|
52
|
+
<!-- Modal for Create/Edit credential -->
|
|
53
|
+
<div id="credential-modal" class="modal hidden">
|
|
54
|
+
<div class="modal-content">
|
|
55
|
+
<div class="modal-header">
|
|
56
|
+
<h2 id="modal-title">New Credential</h2>
|
|
57
|
+
<button class="btn-close" id="btn-close-modal">×</button>
|
|
58
|
+
</div>
|
|
59
|
+
<form id="credential-form">
|
|
60
|
+
<input type="hidden" id="form-mode" value="create">
|
|
61
|
+
<input type="hidden" id="form-original-name" value="">
|
|
62
|
+
|
|
63
|
+
<div class="form-group">
|
|
64
|
+
<label for="form-name">Profile Name *</label>
|
|
65
|
+
<input type="text" id="form-name" required placeholder="e.g., prod-pce">
|
|
66
|
+
</div>
|
|
67
|
+
|
|
68
|
+
<div class="form-group">
|
|
69
|
+
<label for="form-fqdn">PCE FQDN *</label>
|
|
70
|
+
<input type="text" id="form-fqdn" required placeholder="e.g., pce1.mycompany.com">
|
|
71
|
+
</div>
|
|
72
|
+
|
|
73
|
+
<div class="form-row">
|
|
74
|
+
<div class="form-group">
|
|
75
|
+
<label for="form-port">Port *</label>
|
|
76
|
+
<input type="number" id="form-port" required value="8443" min="1" max="65535">
|
|
77
|
+
</div>
|
|
78
|
+
<div class="form-group">
|
|
79
|
+
<label for="form-org-id">Organization ID *</label>
|
|
80
|
+
<input type="number" id="form-org-id" required value="1" min="1">
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<div class="form-group">
|
|
85
|
+
<label for="form-api-user">API User *</label>
|
|
86
|
+
<input type="text" id="form-api-user" required placeholder="e.g., api_xxx">
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<div class="form-group">
|
|
90
|
+
<label for="form-api-key">API Key <span id="api-key-required">*</span></label>
|
|
91
|
+
<input type="password" id="form-api-key" placeholder="Enter API key">
|
|
92
|
+
<small id="api-key-hint" class="hidden">Leave empty to keep current key</small>
|
|
93
|
+
</div>
|
|
94
|
+
|
|
95
|
+
<div class="form-group checkbox-group">
|
|
96
|
+
<label>
|
|
97
|
+
<input type="checkbox" id="form-verify-ssl" checked>
|
|
98
|
+
Verify SSL/TLS Certificate
|
|
99
|
+
</label>
|
|
100
|
+
</div>
|
|
101
|
+
|
|
102
|
+
<!-- Encryption section -->
|
|
103
|
+
<div id="encryption-section" class="form-section hidden">
|
|
104
|
+
<h3>API Key Encryption</h3>
|
|
105
|
+
<div class="form-group checkbox-group">
|
|
106
|
+
<label>
|
|
107
|
+
<input type="checkbox" id="form-encrypt">
|
|
108
|
+
Encrypt API key with SSH key
|
|
109
|
+
</label>
|
|
110
|
+
</div>
|
|
111
|
+
<div id="ssh-keys-section" class="hidden">
|
|
112
|
+
<label for="form-ssh-key">Select SSH Key:</label>
|
|
113
|
+
<select id="form-ssh-key">
|
|
114
|
+
</select>
|
|
115
|
+
</div>
|
|
116
|
+
<p class="warning-text">You may be prompted by your SSH agent to unlock the selected SSH key when encrypting or using the key.</p>
|
|
117
|
+
</div>
|
|
118
|
+
|
|
119
|
+
<!-- Storage location (only for create) -->
|
|
120
|
+
<div id="storage-section" class="form-group checkbox-group">
|
|
121
|
+
<label>
|
|
122
|
+
<input type="checkbox" id="form-use-workdir">
|
|
123
|
+
Save in current working directory (otherwise user home)
|
|
124
|
+
</label>
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
<div class="form-actions">
|
|
128
|
+
<button type="button" class="btn btn-secondary" id="btn-cancel">Cancel</button>
|
|
129
|
+
<button type="submit" class="btn btn-primary" id="btn-submit">Create</button>
|
|
130
|
+
</div>
|
|
131
|
+
</form>
|
|
132
|
+
</div>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
<!-- Test result modal -->
|
|
136
|
+
<div id="test-modal" class="modal hidden">
|
|
137
|
+
<div class="modal-content modal-small">
|
|
138
|
+
<div class="modal-header">
|
|
139
|
+
<h2>Connection Test</h2>
|
|
140
|
+
<button class="btn-close" id="btn-close-test-modal">×</button>
|
|
141
|
+
</div>
|
|
142
|
+
<div id="test-result" class="test-result">
|
|
143
|
+
</div>
|
|
144
|
+
<div class="form-actions">
|
|
145
|
+
<button type="button" class="btn btn-primary" id="btn-close-test">Close</button>
|
|
146
|
+
</div>
|
|
147
|
+
</div>
|
|
148
|
+
</div>
|
|
149
|
+
|
|
150
|
+
<!-- Delete confirmation modal -->
|
|
151
|
+
<div id="delete-modal" class="modal hidden">
|
|
152
|
+
<div class="modal-content modal-small">
|
|
153
|
+
<div class="modal-header">
|
|
154
|
+
<h2>Confirm Deletion</h2>
|
|
155
|
+
<button class="btn-close" id="btn-close-delete-modal">×</button>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="delete-confirmation">
|
|
158
|
+
<p>Are you sure you want to delete the credential "<strong id="delete-credential-name"></strong>"?</p>
|
|
159
|
+
<p class="warning-text">This action cannot be undone.</p>
|
|
160
|
+
</div>
|
|
161
|
+
<div class="form-actions">
|
|
162
|
+
<button type="button" class="btn btn-secondary" id="btn-cancel-delete">Cancel</button>
|
|
163
|
+
<button type="button" class="btn btn-danger" id="btn-confirm-delete">Delete</button>
|
|
164
|
+
</div>
|
|
165
|
+
</div>
|
|
166
|
+
</div>
|
|
167
|
+
|
|
168
|
+
<!-- Encrypt confirmation modal -->
|
|
169
|
+
<div id="encrypt-modal" class="modal hidden">
|
|
170
|
+
<div class="modal-content modal-small">
|
|
171
|
+
<div class="modal-header">
|
|
172
|
+
<h2>Encrypt API Key</h2>
|
|
173
|
+
<button class="btn-close" id="btn-close-encrypt-modal">×</button>
|
|
174
|
+
</div>
|
|
175
|
+
<div class="encrypt-confirmation">
|
|
176
|
+
<p>Encrypt the API key for "<strong id="encrypt-credential-name"></strong>" using an SSH key.</p>
|
|
177
|
+
<div class="form-group">
|
|
178
|
+
<label for="encrypt-ssh-key">Select SSH Key:</label>
|
|
179
|
+
<select id="encrypt-ssh-key">
|
|
180
|
+
</select>
|
|
181
|
+
</div>
|
|
182
|
+
<p class="warning-text">You may be prompted by your SSH agent to unlock the selected SSH key when encrypting the API key.</p>
|
|
183
|
+
</div>
|
|
184
|
+
<div class="form-actions">
|
|
185
|
+
<button type="button" class="btn btn-secondary" id="btn-cancel-encrypt">Cancel</button>
|
|
186
|
+
<button type="button" class="btn btn-primary" id="btn-confirm-encrypt">Encrypt</button>
|
|
187
|
+
</div>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
<!-- Shutdown confirmation modal -->
|
|
192
|
+
<div id="shutdown-modal" class="modal hidden">
|
|
193
|
+
<div class="modal-content modal-small">
|
|
194
|
+
<div class="modal-header">
|
|
195
|
+
<h2>Close Program</h2>
|
|
196
|
+
<button class="btn-close" id="btn-close-shutdown-modal">×</button>
|
|
197
|
+
</div>
|
|
198
|
+
<div id="shutdown-content" class="shutdown-confirmation">
|
|
199
|
+
<p id="shutdown-message">This will stop the Credential Manager server program.</p>
|
|
200
|
+
<p id="shutdown-countdown" class="hidden"></p>
|
|
201
|
+
</div>
|
|
202
|
+
<div class="form-actions" id="shutdown-actions">
|
|
203
|
+
<button type="button" class="btn btn-secondary" id="btn-cancel-shutdown">Cancel</button>
|
|
204
|
+
<button type="button" class="btn btn-danger" id="btn-confirm-shutdown">Stop Server</button>
|
|
205
|
+
</div>
|
|
206
|
+
</div>
|
|
207
|
+
</div>
|
|
208
|
+
|
|
209
|
+
<!-- Shutdown button fixed at bottom -->
|
|
210
|
+
<div class="shutdown-button-container">
|
|
211
|
+
<button id="btn-shutdown" class="btn btn-shutdown">Job done, close program</button>
|
|
212
|
+
</div>
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
<script src="/static/app.js"></script>
|
|
216
|
+
</body>
|
|
217
|
+
</html>
|