arodonata 2.0.0__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.
- arodonata/__init__.py +259 -0
- arodonata/adapters/__init__.py +1 -0
- arodonata/adapters/checkpoint/__init__.py +82 -0
- arodonata/adapters/checkpoint/client.py +733 -0
- arodonata/adapters/checkpoint/pager.py +316 -0
- arodonata/adapters/checkpoint/rate_limiter.py +317 -0
- arodonata/adapters/checkpoint/sessions.py +1144 -0
- arodonata/adapters/checkpoint/task_waiter.py +275 -0
- arodonata/adapters/checkpoint/tls.py +483 -0
- arodonata/adapters/checkpoint/transport.py +871 -0
- arodonata/adapters/sse/__init__.py +69 -0
- arodonata/adapters/storage/__init__.py +52 -0
- arodonata/adapters/storage/cache_adapter.py +1419 -0
- arodonata/adapters/storage/database.py +470 -0
- arodonata/adapters/storage/lock_adapter.py +266 -0
- arodonata/adapters/storage/tables.py +568 -0
- arodonata/client.py +1787 -0
- arodonata/core/__init__.py +127 -0
- arodonata/core/config.py +494 -0
- arodonata/core/context.py +456 -0
- arodonata/core/errors.py +250 -0
- arodonata/core/events.py +167 -0
- arodonata/core/models/__init__.py +83 -0
- arodonata/core/models/assets.py +86 -0
- arodonata/core/models/common.py +196 -0
- arodonata/core/models/domains.py +110 -0
- arodonata/core/models/objects.py +151 -0
- arodonata/core/models/rulebase.py +254 -0
- arodonata/core/models/services.py +76 -0
- arodonata/core/ports/__init__.py +376 -0
- arodonata/core/services/__init__.py +67 -0
- arodonata/core/services/asset_service.py +518 -0
- arodonata/core/services/domain_service.py +561 -0
- arodonata/core/services/object_service.py +598 -0
- arodonata/core/services/search_service.py +852 -0
- arodonata/core/services/service_cache.py +488 -0
- arodonata/core/services/sync_coordinator.py +749 -0
- arodonata/core/telemetry.py +207 -0
- arodonata/cpcrud/__init__.py +99 -0
- arodonata/cpcrud/checkpoint_ops_schema.json +1071 -0
- arodonata/cpcrud/differ.py +542 -0
- arodonata/cpcrud/executor.py +1341 -0
- arodonata/cpcrud/inverse.py +507 -0
- arodonata/cpcrud/models.py +352 -0
- arodonata/cpcrud/planner.py +2077 -0
- arodonata/cpcrud/position_helper.py +118 -0
- arodonata/cpcrud/rule_identity.py +337 -0
- arodonata/cpcrud/service.py +291 -0
- arodonata/cpcrud/state_reader.py +892 -0
- arodonata/cpcrud/validator.py +113 -0
- arodonata/mcp/__init__.py +61 -0
- arodonata/mcp/cli.py +146 -0
- arodonata/mcp/config.py +299 -0
- arodonata/mcp/errors.py +350 -0
- arodonata/mcp/prompts.py +65 -0
- arodonata/mcp/security.py +255 -0
- arodonata/mcp/server.py +318 -0
- arodonata/mcp/tools.py +2007 -0
- arodonata/py.typed +1 -0
- arodonata/reports/__init__.py +63 -0
- arodonata/reports/collector.py +968 -0
- arodonata/reports/models.py +381 -0
- arodonata/reports/placement.py +248 -0
- arodonata/reports/renderer.py +674 -0
- arodonata/rulebase/__init__.py +75 -0
- arodonata/rulebase/filter.py +650 -0
- arodonata/rulebase/models.py +446 -0
- arodonata/rulebase/numbering.py +772 -0
- arodonata/rulebase/pager.py +773 -0
- arodonata/rulebase/refresh.py +557 -0
- arodonata/rulebase/source.py +435 -0
- arodonata-2.0.0.dist-info/METADATA +99 -0
- arodonata-2.0.0.dist-info/RECORD +75 -0
- arodonata-2.0.0.dist-info/WHEEL +4 -0
- arodonata-2.0.0.dist-info/entry_points.txt +2 -0
arodonata/__init__.py
ADDED
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"""Arodonata v2 — Async-first Python SDK for Check Point Management & MDSM."""
|
|
2
|
+
|
|
3
|
+
__version__ = "2.0.0"
|
|
4
|
+
|
|
5
|
+
from arodonata.adapters.checkpoint import AMgmtClient
|
|
6
|
+
from arodonata.client import ArodonataClient
|
|
7
|
+
from arodonata.core.config import ArodonataSettings, AuthMode, ServerEndpointConfig, TlsTrustMode
|
|
8
|
+
from arodonata.core.context import (
|
|
9
|
+
AuthContext,
|
|
10
|
+
SessionOverlay,
|
|
11
|
+
UserContext,
|
|
12
|
+
WriteSession,
|
|
13
|
+
auth_context,
|
|
14
|
+
get_auth_context,
|
|
15
|
+
get_user_context,
|
|
16
|
+
get_write_session,
|
|
17
|
+
user_context,
|
|
18
|
+
write_session_context,
|
|
19
|
+
)
|
|
20
|
+
from arodonata.core.errors import (
|
|
21
|
+
AmbiguousLayerName,
|
|
22
|
+
ApiTimeoutError,
|
|
23
|
+
ArodonataError,
|
|
24
|
+
AuthenticationError,
|
|
25
|
+
CacheError,
|
|
26
|
+
CertificateMismatchError,
|
|
27
|
+
ChangeReportInputError,
|
|
28
|
+
ConfigurationError,
|
|
29
|
+
DirtySessionError,
|
|
30
|
+
DomainNotFoundError,
|
|
31
|
+
InvalidCredentialsError,
|
|
32
|
+
LockAcquisitionError,
|
|
33
|
+
MissingConfigurationError,
|
|
34
|
+
RateLimitTimeoutError,
|
|
35
|
+
ServerIdentityError,
|
|
36
|
+
SessionError,
|
|
37
|
+
SessionExpiredError,
|
|
38
|
+
SessionStateError,
|
|
39
|
+
TaskError,
|
|
40
|
+
TaskPollError,
|
|
41
|
+
TaskTimeoutError,
|
|
42
|
+
TransportError,
|
|
43
|
+
TrustStoreError,
|
|
44
|
+
UnknownServerCertificateError,
|
|
45
|
+
UnsupportedFormat,
|
|
46
|
+
ValidationError,
|
|
47
|
+
)
|
|
48
|
+
from arodonata.core.models import (
|
|
49
|
+
Asset,
|
|
50
|
+
CPObject,
|
|
51
|
+
CPService,
|
|
52
|
+
DomainInfo,
|
|
53
|
+
RefreshOutcome,
|
|
54
|
+
SearchResult,
|
|
55
|
+
to_naive_utc,
|
|
56
|
+
utc_now,
|
|
57
|
+
)
|
|
58
|
+
from arodonata.core.services import (
|
|
59
|
+
AssetRefreshService,
|
|
60
|
+
ClusterRelationshipManager,
|
|
61
|
+
DomainListRefreshTracker,
|
|
62
|
+
DomainService,
|
|
63
|
+
DomainSyncCoordinator,
|
|
64
|
+
ObjectService,
|
|
65
|
+
SearchService,
|
|
66
|
+
ServiceCacheService,
|
|
67
|
+
VSXRelationshipManager,
|
|
68
|
+
)
|
|
69
|
+
from arodonata.cpcrud import (
|
|
70
|
+
NAT_ANY_OBJECT_UID,
|
|
71
|
+
NAT_ORIGINAL_OBJECT_UID,
|
|
72
|
+
ActionResult,
|
|
73
|
+
ApplyReport,
|
|
74
|
+
ConflictPolicy,
|
|
75
|
+
CPCRUDService,
|
|
76
|
+
DomainStamp,
|
|
77
|
+
Executor,
|
|
78
|
+
FieldChange,
|
|
79
|
+
HybridStateReader,
|
|
80
|
+
IpConflictPolicy,
|
|
81
|
+
NameConflictPolicy,
|
|
82
|
+
NamingPrefixes,
|
|
83
|
+
Outcome,
|
|
84
|
+
Plan,
|
|
85
|
+
PlannedAction,
|
|
86
|
+
Planner,
|
|
87
|
+
StagedSessionInfo,
|
|
88
|
+
StateLookupError,
|
|
89
|
+
build_inverse_template,
|
|
90
|
+
validate_template,
|
|
91
|
+
)
|
|
92
|
+
from arodonata.mcp import (
|
|
93
|
+
ArodonataASGIApp,
|
|
94
|
+
ArodonataMCPSettings,
|
|
95
|
+
MCPAuthMode,
|
|
96
|
+
StaticTokenVerifier,
|
|
97
|
+
ToolFailure,
|
|
98
|
+
create_asgi_app,
|
|
99
|
+
create_mcp_server,
|
|
100
|
+
)
|
|
101
|
+
from arodonata.reports import (
|
|
102
|
+
CURRENT_FORMAT_VERSION,
|
|
103
|
+
MAX_UID_LOOKUPS,
|
|
104
|
+
ChangeReport,
|
|
105
|
+
FieldDiff,
|
|
106
|
+
ObjectChangeEntry,
|
|
107
|
+
OwnedSession,
|
|
108
|
+
RangeScope,
|
|
109
|
+
RawResponse,
|
|
110
|
+
RenderedReportBundle,
|
|
111
|
+
RenderOptions,
|
|
112
|
+
ReportScope,
|
|
113
|
+
ReportWarning,
|
|
114
|
+
RuleChangeEntry,
|
|
115
|
+
SessionChangeReport,
|
|
116
|
+
SessionScope,
|
|
117
|
+
build_change_report,
|
|
118
|
+
collect_change_report,
|
|
119
|
+
render_change_report,
|
|
120
|
+
)
|
|
121
|
+
from arodonata.rulebase import (
|
|
122
|
+
CachedRulebaseSource,
|
|
123
|
+
FilteredRulebaseResult,
|
|
124
|
+
LayerPrefixLocation,
|
|
125
|
+
NumberedLayerRulebase,
|
|
126
|
+
NumberedRule,
|
|
127
|
+
NumberedSection,
|
|
128
|
+
PackageRulebase,
|
|
129
|
+
PolicyPackageInfo,
|
|
130
|
+
RulebaseRefreshService,
|
|
131
|
+
RuleFormat,
|
|
132
|
+
RuleLocation,
|
|
133
|
+
RuleLocations,
|
|
134
|
+
fetch_paged_rulebase,
|
|
135
|
+
rule_to_cpcrud_operation,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
__all__ = [
|
|
139
|
+
"AMgmtClient",
|
|
140
|
+
"ActionResult",
|
|
141
|
+
"AmbiguousLayerName",
|
|
142
|
+
"ApiTimeoutError",
|
|
143
|
+
"ApplyReport",
|
|
144
|
+
"ArodonataASGIApp",
|
|
145
|
+
"ArodonataClient",
|
|
146
|
+
"ArodonataError",
|
|
147
|
+
"ArodonataMCPSettings",
|
|
148
|
+
"ArodonataSettings",
|
|
149
|
+
"Asset",
|
|
150
|
+
"AssetRefreshService",
|
|
151
|
+
"AuthContext",
|
|
152
|
+
"AuthMode",
|
|
153
|
+
"AuthenticationError",
|
|
154
|
+
"CPCRUDService",
|
|
155
|
+
"CPObject",
|
|
156
|
+
"CPService",
|
|
157
|
+
"CURRENT_FORMAT_VERSION",
|
|
158
|
+
"CacheError",
|
|
159
|
+
"CachedRulebaseSource",
|
|
160
|
+
"CertificateMismatchError",
|
|
161
|
+
"ChangeReport",
|
|
162
|
+
"ChangeReportInputError",
|
|
163
|
+
"ClusterRelationshipManager",
|
|
164
|
+
"ConfigurationError",
|
|
165
|
+
"ConflictPolicy",
|
|
166
|
+
"DirtySessionError",
|
|
167
|
+
"DomainInfo",
|
|
168
|
+
"DomainListRefreshTracker",
|
|
169
|
+
"DomainNotFoundError",
|
|
170
|
+
"DomainService",
|
|
171
|
+
"DomainStamp",
|
|
172
|
+
"DomainSyncCoordinator",
|
|
173
|
+
"Executor",
|
|
174
|
+
"FieldChange",
|
|
175
|
+
"FieldDiff",
|
|
176
|
+
"FilteredRulebaseResult",
|
|
177
|
+
"HybridStateReader",
|
|
178
|
+
"InvalidCredentialsError",
|
|
179
|
+
"IpConflictPolicy",
|
|
180
|
+
"LayerPrefixLocation",
|
|
181
|
+
"LockAcquisitionError",
|
|
182
|
+
"MAX_UID_LOOKUPS",
|
|
183
|
+
"MCPAuthMode",
|
|
184
|
+
"MissingConfigurationError",
|
|
185
|
+
"NAT_ANY_OBJECT_UID",
|
|
186
|
+
"NAT_ORIGINAL_OBJECT_UID",
|
|
187
|
+
"NameConflictPolicy",
|
|
188
|
+
"NamingPrefixes",
|
|
189
|
+
"NumberedLayerRulebase",
|
|
190
|
+
"NumberedRule",
|
|
191
|
+
"NumberedSection",
|
|
192
|
+
"ObjectChangeEntry",
|
|
193
|
+
"ObjectService",
|
|
194
|
+
"Outcome",
|
|
195
|
+
"OwnedSession",
|
|
196
|
+
"PackageRulebase",
|
|
197
|
+
"Plan",
|
|
198
|
+
"PlannedAction",
|
|
199
|
+
"Planner",
|
|
200
|
+
"PolicyPackageInfo",
|
|
201
|
+
"RangeScope",
|
|
202
|
+
"RateLimitTimeoutError",
|
|
203
|
+
"RawResponse",
|
|
204
|
+
"RefreshOutcome",
|
|
205
|
+
"RenderOptions",
|
|
206
|
+
"RenderedReportBundle",
|
|
207
|
+
"ReportScope",
|
|
208
|
+
"ReportWarning",
|
|
209
|
+
"RuleChangeEntry",
|
|
210
|
+
"RuleFormat",
|
|
211
|
+
"RuleLocation",
|
|
212
|
+
"RuleLocations",
|
|
213
|
+
"RulebaseRefreshService",
|
|
214
|
+
"SearchResult",
|
|
215
|
+
"SearchService",
|
|
216
|
+
"ServerEndpointConfig",
|
|
217
|
+
"ServerIdentityError",
|
|
218
|
+
"ServiceCacheService",
|
|
219
|
+
"SessionChangeReport",
|
|
220
|
+
"SessionError",
|
|
221
|
+
"SessionExpiredError",
|
|
222
|
+
"SessionOverlay",
|
|
223
|
+
"SessionScope",
|
|
224
|
+
"SessionStateError",
|
|
225
|
+
"StagedSessionInfo",
|
|
226
|
+
"StateLookupError",
|
|
227
|
+
"StaticTokenVerifier",
|
|
228
|
+
"TaskError",
|
|
229
|
+
"TaskPollError",
|
|
230
|
+
"TaskTimeoutError",
|
|
231
|
+
"TlsTrustMode",
|
|
232
|
+
"ToolFailure",
|
|
233
|
+
"TransportError",
|
|
234
|
+
"TrustStoreError",
|
|
235
|
+
"UnknownServerCertificateError",
|
|
236
|
+
"UnsupportedFormat",
|
|
237
|
+
"UserContext",
|
|
238
|
+
"VSXRelationshipManager",
|
|
239
|
+
"ValidationError",
|
|
240
|
+
"WriteSession",
|
|
241
|
+
"__version__",
|
|
242
|
+
"auth_context",
|
|
243
|
+
"build_change_report",
|
|
244
|
+
"build_inverse_template",
|
|
245
|
+
"collect_change_report",
|
|
246
|
+
"create_asgi_app",
|
|
247
|
+
"create_mcp_server",
|
|
248
|
+
"fetch_paged_rulebase",
|
|
249
|
+
"get_auth_context",
|
|
250
|
+
"get_user_context",
|
|
251
|
+
"get_write_session",
|
|
252
|
+
"render_change_report",
|
|
253
|
+
"rule_to_cpcrud_operation",
|
|
254
|
+
"to_naive_utc",
|
|
255
|
+
"user_context",
|
|
256
|
+
"utc_now",
|
|
257
|
+
"validate_template",
|
|
258
|
+
"write_session_context",
|
|
259
|
+
]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Hexagonal adapters for Arodonata (`checkpoint`, `storage`, `sse`)."""
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"""Check Point Management Web API adapter package (`arodonata.adapters.checkpoint`)."""
|
|
2
|
+
|
|
3
|
+
from arodonata.adapters.checkpoint.client import AMgmtClient
|
|
4
|
+
from arodonata.adapters.checkpoint.pager import (
|
|
5
|
+
BOUNDARY_WINDOW_RADIUS,
|
|
6
|
+
DEFAULT_PAGE_LIMIT,
|
|
7
|
+
MAX_PAGE_LIMIT,
|
|
8
|
+
TASK_QUERY_COMMANDS,
|
|
9
|
+
paginate_objects,
|
|
10
|
+
)
|
|
11
|
+
from arodonata.adapters.checkpoint.rate_limiter import LoginGate, RateLimiter
|
|
12
|
+
from arodonata.adapters.checkpoint.sessions import (
|
|
13
|
+
SYSTEM_DOMAIN_SENTINEL,
|
|
14
|
+
LoginCoordinator,
|
|
15
|
+
SessionCleaner,
|
|
16
|
+
normalize_domain_key,
|
|
17
|
+
parse_domain_entry,
|
|
18
|
+
)
|
|
19
|
+
from arodonata.adapters.checkpoint.task_waiter import (
|
|
20
|
+
TASK_FAILURE_STATUSES,
|
|
21
|
+
TASK_IN_PROGRESS_STATUSES,
|
|
22
|
+
TASK_SUCCESS_STATUSES,
|
|
23
|
+
TaskWaiter,
|
|
24
|
+
extract_task_ids,
|
|
25
|
+
)
|
|
26
|
+
from arodonata.adapters.checkpoint.tls import (
|
|
27
|
+
KnownHostEntry,
|
|
28
|
+
TrustPolicy,
|
|
29
|
+
TrustStore,
|
|
30
|
+
compute_der_fingerprint,
|
|
31
|
+
format_host_port,
|
|
32
|
+
normalize_fingerprint,
|
|
33
|
+
parse_tls_fingerprints,
|
|
34
|
+
)
|
|
35
|
+
from arodonata.adapters.checkpoint.transport import (
|
|
36
|
+
KEEPALIVE_IDLE_LIMIT_SECONDS,
|
|
37
|
+
ApiTransport,
|
|
38
|
+
FingerprintTCPConnector,
|
|
39
|
+
PooledSocketEntry,
|
|
40
|
+
RawHttpResponse,
|
|
41
|
+
VerifiedConnectionPool,
|
|
42
|
+
extract_peer_der_cert,
|
|
43
|
+
is_readonly_poolable_command,
|
|
44
|
+
verify_transport_peer_certificate,
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
__all__ = [
|
|
48
|
+
"BOUNDARY_WINDOW_RADIUS",
|
|
49
|
+
"DEFAULT_PAGE_LIMIT",
|
|
50
|
+
"KEEPALIVE_IDLE_LIMIT_SECONDS",
|
|
51
|
+
"MAX_PAGE_LIMIT",
|
|
52
|
+
"SYSTEM_DOMAIN_SENTINEL",
|
|
53
|
+
"TASK_FAILURE_STATUSES",
|
|
54
|
+
"TASK_IN_PROGRESS_STATUSES",
|
|
55
|
+
"TASK_QUERY_COMMANDS",
|
|
56
|
+
"TASK_SUCCESS_STATUSES",
|
|
57
|
+
"AMgmtClient",
|
|
58
|
+
"ApiTransport",
|
|
59
|
+
"FingerprintTCPConnector",
|
|
60
|
+
"KnownHostEntry",
|
|
61
|
+
"LoginCoordinator",
|
|
62
|
+
"LoginGate",
|
|
63
|
+
"PooledSocketEntry",
|
|
64
|
+
"RateLimiter",
|
|
65
|
+
"RawHttpResponse",
|
|
66
|
+
"SessionCleaner",
|
|
67
|
+
"TaskWaiter",
|
|
68
|
+
"TrustPolicy",
|
|
69
|
+
"TrustStore",
|
|
70
|
+
"VerifiedConnectionPool",
|
|
71
|
+
"compute_der_fingerprint",
|
|
72
|
+
"extract_peer_der_cert",
|
|
73
|
+
"extract_task_ids",
|
|
74
|
+
"format_host_port",
|
|
75
|
+
"is_readonly_poolable_command",
|
|
76
|
+
"normalize_domain_key",
|
|
77
|
+
"normalize_fingerprint",
|
|
78
|
+
"paginate_objects",
|
|
79
|
+
"parse_domain_entry",
|
|
80
|
+
"parse_tls_fingerprints",
|
|
81
|
+
"verify_transport_peer_certificate",
|
|
82
|
+
]
|