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.
Files changed (75) hide show
  1. arodonata/__init__.py +259 -0
  2. arodonata/adapters/__init__.py +1 -0
  3. arodonata/adapters/checkpoint/__init__.py +82 -0
  4. arodonata/adapters/checkpoint/client.py +733 -0
  5. arodonata/adapters/checkpoint/pager.py +316 -0
  6. arodonata/adapters/checkpoint/rate_limiter.py +317 -0
  7. arodonata/adapters/checkpoint/sessions.py +1144 -0
  8. arodonata/adapters/checkpoint/task_waiter.py +275 -0
  9. arodonata/adapters/checkpoint/tls.py +483 -0
  10. arodonata/adapters/checkpoint/transport.py +871 -0
  11. arodonata/adapters/sse/__init__.py +69 -0
  12. arodonata/adapters/storage/__init__.py +52 -0
  13. arodonata/adapters/storage/cache_adapter.py +1419 -0
  14. arodonata/adapters/storage/database.py +470 -0
  15. arodonata/adapters/storage/lock_adapter.py +266 -0
  16. arodonata/adapters/storage/tables.py +568 -0
  17. arodonata/client.py +1787 -0
  18. arodonata/core/__init__.py +127 -0
  19. arodonata/core/config.py +494 -0
  20. arodonata/core/context.py +456 -0
  21. arodonata/core/errors.py +250 -0
  22. arodonata/core/events.py +167 -0
  23. arodonata/core/models/__init__.py +83 -0
  24. arodonata/core/models/assets.py +86 -0
  25. arodonata/core/models/common.py +196 -0
  26. arodonata/core/models/domains.py +110 -0
  27. arodonata/core/models/objects.py +151 -0
  28. arodonata/core/models/rulebase.py +254 -0
  29. arodonata/core/models/services.py +76 -0
  30. arodonata/core/ports/__init__.py +376 -0
  31. arodonata/core/services/__init__.py +67 -0
  32. arodonata/core/services/asset_service.py +518 -0
  33. arodonata/core/services/domain_service.py +561 -0
  34. arodonata/core/services/object_service.py +598 -0
  35. arodonata/core/services/search_service.py +852 -0
  36. arodonata/core/services/service_cache.py +488 -0
  37. arodonata/core/services/sync_coordinator.py +749 -0
  38. arodonata/core/telemetry.py +207 -0
  39. arodonata/cpcrud/__init__.py +99 -0
  40. arodonata/cpcrud/checkpoint_ops_schema.json +1071 -0
  41. arodonata/cpcrud/differ.py +542 -0
  42. arodonata/cpcrud/executor.py +1341 -0
  43. arodonata/cpcrud/inverse.py +507 -0
  44. arodonata/cpcrud/models.py +352 -0
  45. arodonata/cpcrud/planner.py +2077 -0
  46. arodonata/cpcrud/position_helper.py +118 -0
  47. arodonata/cpcrud/rule_identity.py +337 -0
  48. arodonata/cpcrud/service.py +291 -0
  49. arodonata/cpcrud/state_reader.py +892 -0
  50. arodonata/cpcrud/validator.py +113 -0
  51. arodonata/mcp/__init__.py +61 -0
  52. arodonata/mcp/cli.py +146 -0
  53. arodonata/mcp/config.py +299 -0
  54. arodonata/mcp/errors.py +350 -0
  55. arodonata/mcp/prompts.py +65 -0
  56. arodonata/mcp/security.py +255 -0
  57. arodonata/mcp/server.py +318 -0
  58. arodonata/mcp/tools.py +2007 -0
  59. arodonata/py.typed +1 -0
  60. arodonata/reports/__init__.py +63 -0
  61. arodonata/reports/collector.py +968 -0
  62. arodonata/reports/models.py +381 -0
  63. arodonata/reports/placement.py +248 -0
  64. arodonata/reports/renderer.py +674 -0
  65. arodonata/rulebase/__init__.py +75 -0
  66. arodonata/rulebase/filter.py +650 -0
  67. arodonata/rulebase/models.py +446 -0
  68. arodonata/rulebase/numbering.py +772 -0
  69. arodonata/rulebase/pager.py +773 -0
  70. arodonata/rulebase/refresh.py +557 -0
  71. arodonata/rulebase/source.py +435 -0
  72. arodonata-2.0.0.dist-info/METADATA +99 -0
  73. arodonata-2.0.0.dist-info/RECORD +75 -0
  74. arodonata-2.0.0.dist-info/WHEEL +4 -0
  75. 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
+ ]