libre-devops-helpers 0.4.1__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.
- libre_devops_helpers/__init__.py +23 -0
- libre_devops_helpers/__main__.py +5 -0
- libre_devops_helpers/cli/__init__.py +5 -0
- libre_devops_helpers/cli/app.py +147 -0
- libre_devops_helpers/cli/commands/__init__.py +1 -0
- libre_devops_helpers/cli/commands/automation.py +321 -0
- libre_devops_helpers/cli/commands/az.py +93 -0
- libre_devops_helpers/cli/commands/azure.py +258 -0
- libre_devops_helpers/cli/commands/config.py +54 -0
- libre_devops_helpers/cli/commands/devices.py +548 -0
- libre_devops_helpers/cli/commands/entra.py +554 -0
- libre_devops_helpers/cli/commands/graph.py +358 -0
- libre_devops_helpers/cli/commands/incidents.py +420 -0
- libre_devops_helpers/cli/commands/intune.py +79 -0
- libre_devops_helpers/cli/commands/keyvault.py +142 -0
- libre_devops_helpers/cli/commands/logicapp.py +489 -0
- libre_devops_helpers/cli/commands/logs.py +69 -0
- libre_devops_helpers/cli/commands/pim.py +381 -0
- libre_devops_helpers/cli/commands/pretty.py +141 -0
- libre_devops_helpers/cli/commands/profiles.py +153 -0
- libre_devops_helpers/cli/commands/snow.py +268 -0
- libre_devops_helpers/cli/commands/token.py +222 -0
- libre_devops_helpers/cli/commands/welcome.py +43 -0
- libre_devops_helpers/cli/commands/xdr.py +353 -0
- libre_devops_helpers/cli/exits.py +12 -0
- libre_devops_helpers/cli/options.py +146 -0
- libre_devops_helpers/cli/render.py +360 -0
- libre_devops_helpers/cli/runtime.py +348 -0
- libre_devops_helpers/cli/servicenow_runtime.py +170 -0
- libre_devops_helpers/core/__init__.py +94 -0
- libre_devops_helpers/core/auth.py +103 -0
- libre_devops_helpers/core/brand.py +67 -0
- libre_devops_helpers/core/browser.py +21 -0
- libre_devops_helpers/core/config.py +159 -0
- libre_devops_helpers/core/dpapi.py +60 -0
- libre_devops_helpers/core/errors.py +90 -0
- libre_devops_helpers/core/http.py +412 -0
- libre_devops_helpers/core/inputs.py +193 -0
- libre_devops_helpers/core/log.py +246 -0
- libre_devops_helpers/core/poll.py +88 -0
- libre_devops_helpers/core/process.py +106 -0
- libre_devops_helpers/core/sheets.py +330 -0
- libre_devops_helpers/core/tables.py +49 -0
- libre_devops_helpers/core/timewindow.py +127 -0
- libre_devops_helpers/core/token_store.py +266 -0
- libre_devops_helpers/core/util.py +120 -0
- libre_devops_helpers/core/yaml_text.py +142 -0
- libre_devops_helpers/microsoft/__init__.py +94 -0
- libre_devops_helpers/microsoft/auth/__init__.py +43 -0
- libre_devops_helpers/microsoft/auth/azure_cli.py +91 -0
- libre_devops_helpers/microsoft/auth/delegated.py +391 -0
- libre_devops_helpers/microsoft/auth/entra.py +241 -0
- libre_devops_helpers/microsoft/auth/factory.py +114 -0
- libre_devops_helpers/microsoft/auth/lapse.py +42 -0
- libre_devops_helpers/microsoft/auth/managed_identity.py +84 -0
- libre_devops_helpers/microsoft/automation/__init__.py +24 -0
- libre_devops_helpers/microsoft/automation/client.py +241 -0
- libre_devops_helpers/microsoft/automation/models.py +131 -0
- libre_devops_helpers/microsoft/azcli/__init__.py +27 -0
- libre_devops_helpers/microsoft/azcli/client.py +81 -0
- libre_devops_helpers/microsoft/azcli/context.py +95 -0
- libre_devops_helpers/microsoft/azure/__init__.py +34 -0
- libre_devops_helpers/microsoft/azure/client.py +260 -0
- libre_devops_helpers/microsoft/azure/models.py +198 -0
- libre_devops_helpers/microsoft/clouds.py +83 -0
- libre_devops_helpers/microsoft/config.py +244 -0
- libre_devops_helpers/microsoft/devices/__init__.py +45 -0
- libre_devops_helpers/microsoft/devices/antivirus.py +149 -0
- libre_devops_helpers/microsoft/devices/check.py +286 -0
- libre_devops_helpers/microsoft/devices/inspect.py +146 -0
- libre_devops_helpers/microsoft/devices/models.py +148 -0
- libre_devops_helpers/microsoft/entra/__init__.py +41 -0
- libre_devops_helpers/microsoft/entra/client.py +422 -0
- libre_devops_helpers/microsoft/entra/models.py +334 -0
- libre_devops_helpers/microsoft/entra/permissions.py +51 -0
- libre_devops_helpers/microsoft/graph/__init__.py +38 -0
- libre_devops_helpers/microsoft/graph/client.py +292 -0
- libre_devops_helpers/microsoft/incidents/__init__.py +51 -0
- libre_devops_helpers/microsoft/incidents/client.py +217 -0
- libre_devops_helpers/microsoft/incidents/models.py +165 -0
- libre_devops_helpers/microsoft/incidents/permissions.py +15 -0
- libre_devops_helpers/microsoft/intune/__init__.py +18 -0
- libre_devops_helpers/microsoft/intune/client.py +94 -0
- libre_devops_helpers/microsoft/intune/models.py +63 -0
- libre_devops_helpers/microsoft/intune/permissions.py +16 -0
- libre_devops_helpers/microsoft/keyvault/__init__.py +34 -0
- libre_devops_helpers/microsoft/keyvault/client.py +185 -0
- libre_devops_helpers/microsoft/loganalytics/__init__.py +17 -0
- libre_devops_helpers/microsoft/loganalytics/client.py +117 -0
- libre_devops_helpers/microsoft/logicapps/__init__.py +79 -0
- libre_devops_helpers/microsoft/logicapps/checks.py +432 -0
- libre_devops_helpers/microsoft/logicapps/client.py +162 -0
- libre_devops_helpers/microsoft/logicapps/document.py +202 -0
- libre_devops_helpers/microsoft/pim/__init__.py +39 -0
- libre_devops_helpers/microsoft/pim/azure.py +238 -0
- libre_devops_helpers/microsoft/pim/entra.py +294 -0
- libre_devops_helpers/microsoft/pim/models.py +93 -0
- libre_devops_helpers/microsoft/pim/permissions.py +98 -0
- libre_devops_helpers/microsoft/pim/rules.py +70 -0
- libre_devops_helpers/microsoft/process.py +70 -0
- libre_devops_helpers/microsoft/resources.py +137 -0
- libre_devops_helpers/microsoft/tokens.py +269 -0
- libre_devops_helpers/microsoft/xdr/__init__.py +33 -0
- libre_devops_helpers/microsoft/xdr/client.py +246 -0
- libre_devops_helpers/microsoft/xdr/models.py +181 -0
- libre_devops_helpers/microsoft/xdr/permissions.py +24 -0
- libre_devops_helpers/py.typed +0 -0
- libre_devops_helpers/servicenow/__init__.py +50 -0
- libre_devops_helpers/servicenow/auth.py +409 -0
- libre_devops_helpers/servicenow/config.py +261 -0
- libre_devops_helpers/servicenow/instance/__init__.py +32 -0
- libre_devops_helpers/servicenow/instance/client.py +91 -0
- libre_devops_helpers/servicenow/instance/models.py +131 -0
- libre_devops_helpers/servicenow/roles.py +23 -0
- libre_devops_helpers/servicenow/tables.py +133 -0
- libre_devops_helpers-0.4.1.dist-info/METADATA +153 -0
- libre_devops_helpers-0.4.1.dist-info/RECORD +120 -0
- libre_devops_helpers-0.4.1.dist-info/WHEEL +4 -0
- libre_devops_helpers-0.4.1.dist-info/entry_points.txt +2 -0
- libre_devops_helpers-0.4.1.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: libre-devops-helpers
|
|
3
|
+
Version: 0.4.1
|
|
4
|
+
Summary: Libre DevOps Helpers: a fast, read-only CLI and importable helpers for Entra ID, Defender XDR, Intune, Azure, Graph, PIM, Logic Apps and ServiceNow, also shipped as a container image.
|
|
5
|
+
Project-URL: Homepage, https://github.com/libre-devops/python-helpers
|
|
6
|
+
Project-URL: Documentation, https://github.com/libre-devops/python-helpers/tree/main/docs
|
|
7
|
+
Project-URL: Changelog, https://github.com/libre-devops/python-helpers/blob/main/CHANGELOG.md
|
|
8
|
+
Project-URL: Issues, https://github.com/libre-devops/python-helpers/issues
|
|
9
|
+
Author: Craig Thacker
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: azure,azure-cli,defender-for-endpoint,defender-xdr,entra-id,intune,key-vault,log-analytics,logic-apps,microsoft-graph,microsoft-sentinel,pim,servicenow
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: System Administrators
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
23
|
+
Classifier: Topic :: Security
|
|
24
|
+
Classifier: Topic :: System :: Systems Administration
|
|
25
|
+
Classifier: Typing :: Typed
|
|
26
|
+
Requires-Python: >=3.11
|
|
27
|
+
Requires-Dist: requests>=2.31
|
|
28
|
+
Requires-Dist: typer>=0.12
|
|
29
|
+
Provides-Extra: keychain
|
|
30
|
+
Requires-Dist: keyring>=25; extra == 'keychain'
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
|
|
33
|
+
<div align="center">
|
|
34
|
+
|
|
35
|
+
<a href="https://libredevops.org">
|
|
36
|
+
<picture>
|
|
37
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://libredevops.org/assets/libre-devops-white.png">
|
|
38
|
+
<img alt="Libre DevOps" src="https://libredevops.org/assets/libre-devops-black.png" width="320">
|
|
39
|
+
</picture>
|
|
40
|
+
</a>
|
|
41
|
+
|
|
42
|
+
# Libre DevOps Helpers
|
|
43
|
+
|
|
44
|
+
`ldo`: importable Python helpers and a fast CLI for day-to-day DevOps and security work.
|
|
45
|
+
|
|
46
|
+
[](https://github.com/libre-devops/python-helpers/actions/workflows/ci.yml)
|
|
47
|
+
[](https://github.com/libre-devops/python-helpers/actions/workflows/ci.yml)
|
|
48
|
+
[](https://github.com/libre-devops/python-helpers/actions/workflows/codeql.yml)
|
|
49
|
+
[](https://github.com/libre-devops/python-helpers/actions/workflows/container.yml)
|
|
50
|
+
|
|
51
|
+
[](https://github.com/libre-devops/python-helpers/releases)
|
|
52
|
+
[](https://github.com/libre-devops/python-helpers/pkgs/container/python-helpers)
|
|
53
|
+
[](https://github.com/libre-devops/python-helpers/blob/main/pyproject.toml)
|
|
54
|
+
[](https://github.com/libre-devops/python-helpers/blob/main/LICENSE)
|
|
55
|
+
|
|
56
|
+
</div>
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
`ldo` is a fast, read-only command line for day-to-day security and platform work across
|
|
61
|
+
Microsoft (Entra ID, Defender XDR, Intune, Azure, Graph, PIM, Logic Apps) and ServiceNow. It
|
|
62
|
+
signs in as you, through the Azure CLI by default, and can read only what you can. The Python
|
|
63
|
+
sibling of the [LibreDevOpsHelpers](https://github.com/libre-devops/powershell-helpers)
|
|
64
|
+
PowerShell module, and importable as a library too.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Commands
|
|
69
|
+
|
|
70
|
+
| Command | What it does | Docs |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| `ldo devices` | check a list of devices across Entra, Defender and Intune, watch until they are all there, show one, read Defender Antivirus versions | [devices](https://github.com/libre-devops/python-helpers/blob/main/docs/devices.md) |
|
|
73
|
+
| `ldo entra` | devices and whether they are in a group, users, groups, roles, sign-ins, app credentials, Conditional Access; tokens | [entra](https://github.com/libre-devops/python-helpers/blob/main/docs/entra.md) |
|
|
74
|
+
| `ldo intune` | managed devices: compliance, last sync, owner | [entra](https://github.com/libre-devops/python-helpers/blob/main/docs/entra.md) |
|
|
75
|
+
| `ldo xdr` | Defender machines, alerts, vulnerabilities, indicators, Advanced Hunting | [defender](https://github.com/libre-devops/python-helpers/blob/main/docs/defender.md) |
|
|
76
|
+
| `ldo xdr incidents` | the Defender XDR queue, Sentinel's included: top, latest, between days, summary | [defender](https://github.com/libre-devops/python-helpers/blob/main/docs/defender.md#incidents-sentinels-included) |
|
|
77
|
+
| `ldo graph` | any Graph GET, objects by name, `whoami`, a Graph token, hunting | [graph](https://github.com/libre-devops/python-helpers/blob/main/docs/graph.md) |
|
|
78
|
+
| `ldo azure` | subscriptions, Resource Graph, role assignments, Defender for Cloud | [azure](https://github.com/libre-devops/python-helpers/blob/main/docs/azure.md) |
|
|
79
|
+
| `ldo azure automation` | Automation accounts: runbook jobs, and each job's logs and output | [azure](https://github.com/libre-devops/python-helpers/blob/main/docs/azure.md#automation) |
|
|
80
|
+
| `ldo keyvault` | secrets, certificates and keys close to expiry | [azure](https://github.com/libre-devops/python-helpers/blob/main/docs/azure.md#key-vault) |
|
|
81
|
+
| `ldo logs` | KQL against a Log Analytics or Sentinel workspace | [azure](https://github.com/libre-devops/python-helpers/blob/main/docs/azure.md#log-analytics) |
|
|
82
|
+
| `ldo pim` | eligible, active and standing access, requests, approvals, activation settings | [pim](https://github.com/libre-devops/python-helpers/blob/main/docs/pim.md) |
|
|
83
|
+
| `ldo logicapp` | offline checks, export and validation for Consumption Logic Apps and Sentinel playbooks | [logic apps](https://github.com/libre-devops/python-helpers/blob/main/docs/logic-apps.md) |
|
|
84
|
+
| `ldo snow` | ServiceNow: sign in, whoami, the instance, applications, a token | [servicenow](https://github.com/libre-devops/python-helpers/blob/main/docs/servicenow.md) |
|
|
85
|
+
| `ldo az` | switch the Azure CLI between profiles | [signing in](https://github.com/libre-devops/python-helpers/blob/main/docs/authentication.md) |
|
|
86
|
+
| `ldo json` | pretty-print any JSON (`az rest ... \| ldo json`) in colour, or as YAML | [configuration](https://github.com/libre-devops/python-helpers/blob/main/docs/configuration.md#json-yaml-and-logs) |
|
|
87
|
+
| `ldo profiles`, `ldo config` | your profiles, and the config file | [configuration](https://github.com/libre-devops/python-helpers/blob/main/docs/configuration.md) |
|
|
88
|
+
|
|
89
|
+
Every command takes `-p` for a profile and `-o table|json|csv`, and lists of names from
|
|
90
|
+
arguments, stdin, a text file, or a column of a CSV or Excel workbook.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Install
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
uv tool install git+https://github.com/libre-devops/python-helpers@v0.4.1
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Or run the container image, which has the Azure CLI inside:
|
|
101
|
+
`podman run --rm -it ghcr.io/libre-devops/python-helpers:latest --help`
|
|
102
|
+
(see [Container images](https://github.com/libre-devops/python-helpers/blob/main/docs/containers.md)).
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Quickstart
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
az login # the default sign-in is the Azure CLI's
|
|
110
|
+
ldo config init # write ~/.config/ldo/config.toml
|
|
111
|
+
$EDITOR "$(ldo config path)" # put your tenant id in a profile
|
|
112
|
+
ldo profiles # your profiles, and whether each can sign in
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Then:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
ldo devices check web01,web02 # in Entra and onboarded to Defender?
|
|
119
|
+
ldo devices check -f plan.xlsx --column FQDN --tag linux-servers
|
|
120
|
+
ldo devices av-signature web01 # Defender Antivirus versions
|
|
121
|
+
ldo entra devices -f plan.xlsx --column FQDN --group "MDE Pilot Devices"
|
|
122
|
+
ldo azure automation logs aa-ops --runbook Rotate-Keys # the newest run's logs
|
|
123
|
+
ldo graph get-device web01
|
|
124
|
+
ldo xdr alerts --since 24h --severity high
|
|
125
|
+
ldo azure resource-graph "resources | summarize count() by type"
|
|
126
|
+
ldo keyvault expiry --all-vaults --within 30d
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Incidents, Graph hunting and PIM for Entra roles need scopes the Azure CLI's token never
|
|
130
|
+
has: sign in through [your own app registration](https://github.com/libre-devops/python-helpers/blob/main/docs/authentication.md#your-own-app-registration)
|
|
131
|
+
for those. [Permissions](https://github.com/libre-devops/python-helpers/blob/main/docs/permissions.md) lists what each command needs.
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Documentation
|
|
136
|
+
|
|
137
|
+
- [Configuration](https://github.com/libre-devops/python-helpers/blob/main/docs/configuration.md): profiles, common options, environment variables, exit codes
|
|
138
|
+
- [Signing in](https://github.com/libre-devops/python-helpers/blob/main/docs/authentication.md) and [Permissions](https://github.com/libre-devops/python-helpers/blob/main/docs/permissions.md)
|
|
139
|
+
- [Container images](https://github.com/libre-devops/python-helpers/blob/main/docs/containers.md)
|
|
140
|
+
- [Using it as a library](https://github.com/libre-devops/python-helpers/blob/main/docs/library.md) and [Rebranding](https://github.com/libre-devops/python-helpers/blob/main/docs/rebranding.md) for your organisation
|
|
141
|
+
- [Development](https://github.com/libre-devops/python-helpers/blob/main/docs/development.md): `just` recipes, tests, CI and releasing
|
|
142
|
+
|
|
143
|
+
Contributions are welcome: see [CONTRIBUTING.md](https://github.com/libre-devops/python-helpers/blob/main/CONTRIBUTING.md), and
|
|
144
|
+
[SECURITY.md](https://github.com/libre-devops/python-helpers/blob/main/SECURITY.md) to report a vulnerability. Licensed under [MIT](https://github.com/libre-devops/python-helpers/blob/main/LICENSE).
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
<div align="center">
|
|
149
|
+
<sub>
|
|
150
|
+
Part of <a href="https://libredevops.org">Libre DevOps</a>. Everything we publish is open and
|
|
151
|
+
provided as-is; review and test it against your own requirements before production use.
|
|
152
|
+
</sub>
|
|
153
|
+
</div>
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
libre_devops_helpers/__init__.py,sha256=Xmdhv_Iz6raJt3A3VIFvcxiddvpRjEF-iFP0KQG4jAA,1240
|
|
2
|
+
libre_devops_helpers/__main__.py,sha256=po8YqsOHHt9VOTEL8w2JETZoYqhlxtkiB8c9LrFP8nM,99
|
|
3
|
+
libre_devops_helpers/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
libre_devops_helpers/cli/__init__.py,sha256=muELbvQk8c4gE62y86kRr_Pi9jM6ilMtYy-VedK6W50,165
|
|
5
|
+
libre_devops_helpers/cli/app.py,sha256=c6CUJnUQVusHH1n3Bej-SlqLOtK-NDpbHtfe7HRr3P8,4019
|
|
6
|
+
libre_devops_helpers/cli/exits.py,sha256=ztzDKdXhdvCYl4tYZO3VwCN4uoy4T9RD36emPBEI094,426
|
|
7
|
+
libre_devops_helpers/cli/options.py,sha256=DHG9mz2JVSDGSCH86kqCmveF3hH9j-aF-IEiCXKAtY0,4299
|
|
8
|
+
libre_devops_helpers/cli/render.py,sha256=wKGERGyCi2HVl_pOYn2-1_2_eBdildAP4PqF1y0wa2A,12343
|
|
9
|
+
libre_devops_helpers/cli/runtime.py,sha256=7x3pVvo9YeHER0gkgOBBavswqdV8uKWfeiOLVCL4bBU,14360
|
|
10
|
+
libre_devops_helpers/cli/servicenow_runtime.py,sha256=AbaayAuoo2N1YQ6n174YnQ-X6mDqOXpTm6xhTHZ_Sa8,6583
|
|
11
|
+
libre_devops_helpers/cli/commands/__init__.py,sha256=5sLSga3bcImLpKi0GEfyd8vVlgDPuIGp_2C5UoDx0tQ,80
|
|
12
|
+
libre_devops_helpers/cli/commands/automation.py,sha256=_q_EA4CPivU-dcLm-Qmj7mbIhgycEi9TvXhVmMDBUBg,10901
|
|
13
|
+
libre_devops_helpers/cli/commands/az.py,sha256=HDAvS83rYUE-AoxhCKo7tG9hMAo-UISuAkDm-nPlzpo,3405
|
|
14
|
+
libre_devops_helpers/cli/commands/azure.py,sha256=aBpONT31nQj5dg3D6FkzHzinhf35eUgxJq5F7mSlRWo,9197
|
|
15
|
+
libre_devops_helpers/cli/commands/config.py,sha256=0RrbpofBdfkMdE1fsa0GwnMy2pQon_mpghj63PSwN7c,2310
|
|
16
|
+
libre_devops_helpers/cli/commands/devices.py,sha256=F8ZeClywmk44U8pUiXbQLy-CDdgYktAr9loBz_-c5qs,19509
|
|
17
|
+
libre_devops_helpers/cli/commands/entra.py,sha256=pY5RGFQ_U1VAV9lFJ2FCie77ViNCkKq5plweRVxJOeM,19992
|
|
18
|
+
libre_devops_helpers/cli/commands/graph.py,sha256=bRZ9UBF19JpMsVcKWlpBrAGAar_pGFJGoBwk_AYyMFs,12949
|
|
19
|
+
libre_devops_helpers/cli/commands/incidents.py,sha256=B1IM6Px2zQ7T6KLaBQK_kVvrUlmsPWX9OY9X4ZD8-UE,13925
|
|
20
|
+
libre_devops_helpers/cli/commands/intune.py,sha256=vb1p51Svi-BCpDmOdIq_4uL7HF7yhR_ZGZvpfeAP1G0,2654
|
|
21
|
+
libre_devops_helpers/cli/commands/keyvault.py,sha256=jKaRbSfCWSghxDQgia-GuAttBTSykfPZNL-SJiuje1s,4843
|
|
22
|
+
libre_devops_helpers/cli/commands/logicapp.py,sha256=iwqk9yFotv0daT1dVZPfkYusHPi0MJPYLuZ8iBHyGHY,16570
|
|
23
|
+
libre_devops_helpers/cli/commands/logs.py,sha256=MiY8lZCE-56MJNhUCvUy7Qul-gjkGRi1Ju2l9PtMSK0,2037
|
|
24
|
+
libre_devops_helpers/cli/commands/pim.py,sha256=9QaUWhI5MwkHAG7ErbcRg3ELeieir9c9AcIFtR9H-r4,14177
|
|
25
|
+
libre_devops_helpers/cli/commands/pretty.py,sha256=nvlPIN8W_dlvNORy48MXS1GwzO77ANPnSHbyj1r2ZmE,5126
|
|
26
|
+
libre_devops_helpers/cli/commands/profiles.py,sha256=RhBMU9q_oCK-o6rPcoNRCD--qhCAwJ25zIHtTRzMXF4,5936
|
|
27
|
+
libre_devops_helpers/cli/commands/snow.py,sha256=iJ_P7xzyqawDmSUhcAwDzHhhPv46b-KL3h0BlEQb9yQ,9591
|
|
28
|
+
libre_devops_helpers/cli/commands/token.py,sha256=6ymuFn-NTCBIdJYHO9l_sKIOCK7TVBOMQ1vsFN4GxX8,7544
|
|
29
|
+
libre_devops_helpers/cli/commands/welcome.py,sha256=zONCfgvtgfnZ6JteNnZbviyHgdqXQp5bPfkPBYeeDec,1548
|
|
30
|
+
libre_devops_helpers/cli/commands/xdr.py,sha256=6HEmYnz_mh47gwumxzT2W9ggPIJgBJt9mGw1wEfP1f8,12011
|
|
31
|
+
libre_devops_helpers/core/__init__.py,sha256=WqSWhtSwhtD5tC0XRk-HDFEvwKtOrwLjECiBJmMuakM,2305
|
|
32
|
+
libre_devops_helpers/core/auth.py,sha256=no5YWpjM5a-6aKxGkE-_pKPVbsNpx4DLRm_ZbulEr28,3706
|
|
33
|
+
libre_devops_helpers/core/brand.py,sha256=zGzWLk46xpGutPJPpHhnM3aNN786vMkADyOrqPaqiqI,2306
|
|
34
|
+
libre_devops_helpers/core/browser.py,sha256=o1wUOsHzXxiqL-nIb5lswTqoZubhlv2YIpjYDCq7Mo4,589
|
|
35
|
+
libre_devops_helpers/core/config.py,sha256=0rMpQPDoeW698_Y2cISb9XatcDDEgh2iDoMoWO-hLYs,5854
|
|
36
|
+
libre_devops_helpers/core/dpapi.py,sha256=KC-IjQLzfKfDyYDDSFfo7sGY3Eyu9Sa2Esa1jiQoojI,2320
|
|
37
|
+
libre_devops_helpers/core/errors.py,sha256=eFE3KJ_OHmq54XncECPmpbfgrOHq7b-39_oewNKu5n4,2325
|
|
38
|
+
libre_devops_helpers/core/http.py,sha256=02QjZU5yonWFVYa6dXJyE18rJzyHoxaxYG0MzTncPI8,16267
|
|
39
|
+
libre_devops_helpers/core/inputs.py,sha256=e3SYWRPtFyL2Y91tmD0vBs8s0zMoE70eqeSmaic42qI,7439
|
|
40
|
+
libre_devops_helpers/core/log.py,sha256=dfKqSmfK4LOAJ7eBzC4eyN22yHfV8ilgigFTnMViruQ,10101
|
|
41
|
+
libre_devops_helpers/core/poll.py,sha256=yBpp8scO5N0CqNCn3oRjIJm9kIL_Iawf5CXL23xwHy8,2972
|
|
42
|
+
libre_devops_helpers/core/process.py,sha256=6QbSCpK6kwcROj18tfIc_GsdXMRlT4T2zLACJdyAKTg,3972
|
|
43
|
+
libre_devops_helpers/core/sheets.py,sha256=zL7CtP-qhYsGEpTklPOyPcw8-nmiQdkU4yTDt_35dSk,13225
|
|
44
|
+
libre_devops_helpers/core/tables.py,sha256=-4pSLf3iLAj-2HNGgpgWj2H32tgdlXkT5xwqlOsDP8A,1687
|
|
45
|
+
libre_devops_helpers/core/timewindow.py,sha256=ELnHL0AaCAY3nagpRoOB2l_-mEaRTcMkwtRGtuYE8Ho,4620
|
|
46
|
+
libre_devops_helpers/core/token_store.py,sha256=DLRq3r0QNch2neRXlO_RBjnM3c_Zu3J3GnY3TI4ha7I,10636
|
|
47
|
+
libre_devops_helpers/core/util.py,sha256=HbfDrFXljQmF4fL4T2eDastaxhqWgZ8ldQ2slLn3mhI,4351
|
|
48
|
+
libre_devops_helpers/core/yaml_text.py,sha256=52FlNp72vdVDuLlmBi1g1pjQURnzB6UyISB8LE0wP5c,6198
|
|
49
|
+
libre_devops_helpers/microsoft/__init__.py,sha256=JhDqocn9wcOjT5uHHE4ME4XjF1CeIqDoJThDDEhlbmI,2423
|
|
50
|
+
libre_devops_helpers/microsoft/clouds.py,sha256=JO2sxV-YFeQ2VS77POSjgbdxYJsSkOy3XS3SVnCXNxM,2826
|
|
51
|
+
libre_devops_helpers/microsoft/config.py,sha256=kzw_cAJVcNQCm71bc2j20GuXEWUWeRw1BNyHdkoZxhQ,9569
|
|
52
|
+
libre_devops_helpers/microsoft/process.py,sha256=wymHRp8blnuEB2N68iF0kufDO3W1zlD6_pXfbeqgCDg,2712
|
|
53
|
+
libre_devops_helpers/microsoft/resources.py,sha256=x75Au6eIWqWAHIr-SmSOj0FaMB7NMjuAI4VdEVMd3AY,4494
|
|
54
|
+
libre_devops_helpers/microsoft/tokens.py,sha256=puw2AQgASO-TljikAA2ZpZ9V0dRGhlQ9bvYwQy6Gu2Q,9648
|
|
55
|
+
libre_devops_helpers/microsoft/auth/__init__.py,sha256=vfdC-9VVoVAHIv8EmNevlxmvRqAsOTgBeKEVrkHqV2A,1444
|
|
56
|
+
libre_devops_helpers/microsoft/auth/azure_cli.py,sha256=hB-NPLnVw5TJqofc4a9il6-WSh2pFx8zgzkpqI43OGs,3781
|
|
57
|
+
libre_devops_helpers/microsoft/auth/delegated.py,sha256=d3oWtWCH2aEu3H_cPNgil4fiovGY0X1COB1jZOH9IGc,15721
|
|
58
|
+
libre_devops_helpers/microsoft/auth/entra.py,sha256=AZh4GA4zGikcYE5-6NewtvZ37nDaB1pmMA7OMeAG5yw,8425
|
|
59
|
+
libre_devops_helpers/microsoft/auth/factory.py,sha256=Pc05zdRVIpr9qHa1pWVLbJRY1wq0Zh6yq17E_XggC_c,4465
|
|
60
|
+
libre_devops_helpers/microsoft/auth/lapse.py,sha256=8AfePLSLjwuRjBsbFiQIXOiw8PKnSL7sq5TRMMfaH7Q,1930
|
|
61
|
+
libre_devops_helpers/microsoft/auth/managed_identity.py,sha256=KRmiBcixUvVogrYE9D0jXQcKZLPI7Ukw7WUg7Fy8LBI,3220
|
|
62
|
+
libre_devops_helpers/microsoft/automation/__init__.py,sha256=XGPFbMgiGpK-zx8EqjOZnRECnybW5gOyiyIqvtWMK6Y,590
|
|
63
|
+
libre_devops_helpers/microsoft/automation/client.py,sha256=h1BbyKkHSXiWi11MhGYCoqi_vUL2nk2_kjZGHvYmQh4,9061
|
|
64
|
+
libre_devops_helpers/microsoft/automation/models.py,sha256=KF4OkePi9n624gVFGFbsbBIB8t4R3dACCnC3cjEMVBA,4320
|
|
65
|
+
libre_devops_helpers/microsoft/azcli/__init__.py,sha256=RxUXe8jhFj14Kdu1BLlhoDyeyHnCUQsgl72AwsMYF88,652
|
|
66
|
+
libre_devops_helpers/microsoft/azcli/client.py,sha256=FopyFkVareZjS2T5J5vJ6594KNSQIZ0UgE_emm9vUeo,3069
|
|
67
|
+
libre_devops_helpers/microsoft/azcli/context.py,sha256=ptxHYShkB1nJpnouym1AaB--I94liZwXgKp9pkH1fTo,3696
|
|
68
|
+
libre_devops_helpers/microsoft/azure/__init__.py,sha256=B11hzW5y3L4WVp6Jmpw88bixj963c_DiS2gggRPQoAE,989
|
|
69
|
+
libre_devops_helpers/microsoft/azure/client.py,sha256=mi44GFidfZw7UeRZnrQnEwDhN3J6xvrJc0s2KY0pFxU,10430
|
|
70
|
+
libre_devops_helpers/microsoft/azure/models.py,sha256=EQEgJp0qa7uZ1CUByXIDXPvSoVleNmWvHHj-eFjLAK8,6376
|
|
71
|
+
libre_devops_helpers/microsoft/devices/__init__.py,sha256=QeWTzlGzEXfd3PcFyRZlgyEAdISLEpGCJhUSc0zrRiE,1289
|
|
72
|
+
libre_devops_helpers/microsoft/devices/antivirus.py,sha256=kufAVJHYvlPXGTa-JRYOkBZOvsobA9g9z-tOd8zfhRc,5994
|
|
73
|
+
libre_devops_helpers/microsoft/devices/check.py,sha256=vFonHADkr-RMZFcY0hr0a--rYo4O3UwUc5mBCdSNV8M,12313
|
|
74
|
+
libre_devops_helpers/microsoft/devices/inspect.py,sha256=VxtL3BqaIv9Fxn92LEM0sNN9C8cXmVoDck9xJNzRIf4,5666
|
|
75
|
+
libre_devops_helpers/microsoft/devices/models.py,sha256=GsvtYFLtLwv2eaKYHmRdjFhdW9vG2XE8Ecw6trkRkq8,4375
|
|
76
|
+
libre_devops_helpers/microsoft/entra/__init__.py,sha256=sELLo4ORddssvqxyrb6A5YrcvaFLoL9fR7dEnuCxEC0,1159
|
|
77
|
+
libre_devops_helpers/microsoft/entra/client.py,sha256=D81cDRBhA_oPWDPDMMMIIgVcoX0dp7ikZaLfKJ-07Fc,16260
|
|
78
|
+
libre_devops_helpers/microsoft/entra/models.py,sha256=5_fH0GI0CZX1-XFIYqsgpF0xj9Tx1wNIbdJofKorygg,11912
|
|
79
|
+
libre_devops_helpers/microsoft/entra/permissions.py,sha256=8Hyy0hZJ_0Zkf1_kxLireewkuCbZ5khd9DtKhP6lEyA,1921
|
|
80
|
+
libre_devops_helpers/microsoft/graph/__init__.py,sha256=27lAPqLPzD3HBLEApxQZWKjwB7Di5fmBwH7rhpIIZ6c,812
|
|
81
|
+
libre_devops_helpers/microsoft/graph/client.py,sha256=v5ZSAFzyM1eZuGwO2sUXN6HVFEolOoHAWWhnRUjzIc0,11170
|
|
82
|
+
libre_devops_helpers/microsoft/incidents/__init__.py,sha256=07oWIFUUULGgKAvf0fru_KPAXCBizkri0rNMs3rJZpI,1215
|
|
83
|
+
libre_devops_helpers/microsoft/incidents/client.py,sha256=gQX-F4UWEJ19JKL0kT_jwVZ9XSKwuEnmUWy_B-2Jvb4,7758
|
|
84
|
+
libre_devops_helpers/microsoft/incidents/models.py,sha256=be0vPrQFhP_9mop71CqZ2bio7iUnkkHCMLoqM8AyMt8,5885
|
|
85
|
+
libre_devops_helpers/microsoft/incidents/permissions.py,sha256=oTWu7nSS6JOxuZSvTtKpwPu8TnSmLNiTe0ajJhVHc6s,440
|
|
86
|
+
libre_devops_helpers/microsoft/intune/__init__.py,sha256=oVHXWimKUldEg69qrBsY8iw2g-2T3uRceddfTslvNQY,815
|
|
87
|
+
libre_devops_helpers/microsoft/intune/client.py,sha256=8vuWbu7B1LcXh0kdZoDsmXjVJxqxm7zgIOJsw_O-TOo,3209
|
|
88
|
+
libre_devops_helpers/microsoft/intune/models.py,sha256=md2ygvz-NvKd6my6DWHeX10COm_2FD7dtYVr4dYbZvM,2222
|
|
89
|
+
libre_devops_helpers/microsoft/intune/permissions.py,sha256=YiPuoos3AHCLCAqTJCYkGgut45r5qMHpGAAqkr6kW58,417
|
|
90
|
+
libre_devops_helpers/microsoft/keyvault/__init__.py,sha256=VAK9pm4ZgXTxtMyFlzFzviIUJsgwGCm-6eY7uFzH-fw,1024
|
|
91
|
+
libre_devops_helpers/microsoft/keyvault/client.py,sha256=uz9a-0zjnfSsME-ub75k667beUjV9DELTBLThMmNbEw,6488
|
|
92
|
+
libre_devops_helpers/microsoft/loganalytics/__init__.py,sha256=CP8uzazSx60qXYB9433FU1xi8M4fxykfGtRoU0bjdxY,727
|
|
93
|
+
libre_devops_helpers/microsoft/loganalytics/client.py,sha256=zffWaYsizXwPVBkPel7NSTvdQc5p6nxUaDLXJ2BISCs,4325
|
|
94
|
+
libre_devops_helpers/microsoft/logicapps/__init__.py,sha256=O86ha-a7jzENEfW8VTyPRUNz1Ipf27priHA6mVemKRY,1852
|
|
95
|
+
libre_devops_helpers/microsoft/logicapps/checks.py,sha256=w2MN85pMnB1ydh0lUHiaWq52CZpaLuK5z2sQMbNE8DQ,16716
|
|
96
|
+
libre_devops_helpers/microsoft/logicapps/client.py,sha256=_0uK3yR7RAklYw-7bWpby5Hq-MCmQJWp0xoZVdH5pFM,6229
|
|
97
|
+
libre_devops_helpers/microsoft/logicapps/document.py,sha256=8ff9jDJut4S7m-UlDbJat8U0coyNFB6KADWwc_tel54,7772
|
|
98
|
+
libre_devops_helpers/microsoft/pim/__init__.py,sha256=v0xMYh0lhBX-Ucqh5_pErx69VeSKcef15Pl1cUaMPSw,1345
|
|
99
|
+
libre_devops_helpers/microsoft/pim/azure.py,sha256=IzxtLt5htH5ihbQz20epAwRIRy8_atxCdLGXIUSvToQ,9625
|
|
100
|
+
libre_devops_helpers/microsoft/pim/entra.py,sha256=3O-2PkGZH9qFDCuNsdKbSgD0TyAAJABVbtmmSO23xQg,12127
|
|
101
|
+
libre_devops_helpers/microsoft/pim/models.py,sha256=vJh08oBOvEKoUKEN9iG_ycsX1GJkHFvGJZyJda54k8E,2787
|
|
102
|
+
libre_devops_helpers/microsoft/pim/permissions.py,sha256=KqM5btjBBNKPHq1zJwi66zpi1s8iRkKApFVtIrVC3E8,2694
|
|
103
|
+
libre_devops_helpers/microsoft/pim/rules.py,sha256=nGJg6CTcrDXD10jAZLalRhTJwkyXCBSRwEToHVep9g4,2867
|
|
104
|
+
libre_devops_helpers/microsoft/xdr/__init__.py,sha256=jX_IqgDsLTeZrZdpT1xH5m6zNeoSB7MpXTwelEOPZMQ,991
|
|
105
|
+
libre_devops_helpers/microsoft/xdr/client.py,sha256=tsCnU4zEcgV5uOwqVDKUMhmKCpNUjXjCPFW3NHdPQeY,9247
|
|
106
|
+
libre_devops_helpers/microsoft/xdr/models.py,sha256=NZIkBvkJNxWYJASWPS0aKP0BlS1UwvZHonRDbqxHMEQ,5993
|
|
107
|
+
libre_devops_helpers/microsoft/xdr/permissions.py,sha256=DrLYme_aXcZFdubppvXbx6siV7bPc4KMfsLJ7CKyLzQ,989
|
|
108
|
+
libre_devops_helpers/servicenow/__init__.py,sha256=EMnYXDeDt-PPWy8LgN-pR-j0Bw7rqMnuDwgwDGbPMAI,1195
|
|
109
|
+
libre_devops_helpers/servicenow/auth.py,sha256=UNJT0D0TBFWy5piqpJH1JoyLKT8CJh4Tbx9xGDwGj10,16302
|
|
110
|
+
libre_devops_helpers/servicenow/config.py,sha256=Ej6ZQ8p6P6aoqodW4sdoJLOu6rDxGBq4KO-85yEp3SE,10799
|
|
111
|
+
libre_devops_helpers/servicenow/roles.py,sha256=qC3-1ySqmuCc7vNbVb0DtKvo3PELKCmxmRvrN0lPpd4,641
|
|
112
|
+
libre_devops_helpers/servicenow/tables.py,sha256=CVpkN9yoAVJaTRf9wnFrfKR_8nuLJhRpYUsddwJ8RLQ,4969
|
|
113
|
+
libre_devops_helpers/servicenow/instance/__init__.py,sha256=7jNZnS0Ewn4geGyaHgCnfXgvhIiCz-G2YdpqVkpRlmc,857
|
|
114
|
+
libre_devops_helpers/servicenow/instance/client.py,sha256=x6GMDBgue3Z6_QGiVBgGp7oJ7E43wdYMRCRAvqatTaw,4114
|
|
115
|
+
libre_devops_helpers/servicenow/instance/models.py,sha256=iMdoZh8WDPymanIx-9Y5iUpDNjfHnIq3Jhtc6Dj0rA0,3747
|
|
116
|
+
libre_devops_helpers-0.4.1.dist-info/METADATA,sha256=Yd0fu8gvSbhUNnY16BgRsM9VJOq79pcU7PKM5BkjRjc,10057
|
|
117
|
+
libre_devops_helpers-0.4.1.dist-info/WHEEL,sha256=W3fkpkm7-wf9vBI5Z-7s0eWkeM-spu78I8Neb98DeEg,87
|
|
118
|
+
libre_devops_helpers-0.4.1.dist-info/entry_points.txt,sha256=gJXiaMZZbBezwnCUzni0l7CagYbJada-Vn79GiHZ9Ww,54
|
|
119
|
+
libre_devops_helpers-0.4.1.dist-info/licenses/LICENSE,sha256=VAuIK1Nk0bQ--D-6RFTNRDoO8-Ls9Ufj8g1ZYmj-b_s,1069
|
|
120
|
+
libre_devops_helpers-0.4.1.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Libre DevOps
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|