agilicus 1.260.1__py3-none-any.whl → 1.261.0__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- agilicus/agilicus_api/api_client.py +1 -1
- agilicus/agilicus_api/configuration.py +1 -1
- agilicus/agilicus_api_README.md +1 -1
- agilicus/policy/policies.py +38 -15
- agilicus/policy/policy_main.py +2 -0
- {agilicus-1.260.1.dist-info → agilicus-1.261.0.dist-info}/METADATA +1 -1
- {agilicus-1.260.1.dist-info → agilicus-1.261.0.dist-info}/RECORD +10 -10
- {agilicus-1.260.1.dist-info → agilicus-1.261.0.dist-info}/LICENSE.txt +0 -0
- {agilicus-1.260.1.dist-info → agilicus-1.261.0.dist-info}/WHEEL +0 -0
- {agilicus-1.260.1.dist-info → agilicus-1.261.0.dist-info}/entry_points.txt +0 -0
@@ -77,7 +77,7 @@ class ApiClient(object):
|
|
77
77
|
self.default_headers[header_name] = header_value
|
78
78
|
self.cookie = cookie
|
79
79
|
# Set default User-Agent.
|
80
|
-
self.user_agent = 'OpenAPI-Generator/1.
|
80
|
+
self.user_agent = 'OpenAPI-Generator/1.261.0/python'
|
81
81
|
|
82
82
|
def __enter__(self):
|
83
83
|
return self
|
@@ -387,7 +387,7 @@ class Configuration(object):
|
|
387
387
|
"OS: {env}\n"\
|
388
388
|
"Python Version: {pyversion}\n"\
|
389
389
|
"Version of the API: 2024.06.21\n"\
|
390
|
-
"SDK Package Version: 1.
|
390
|
+
"SDK Package Version: 1.261.0".\
|
391
391
|
format(env=sys.platform, pyversion=sys.version)
|
392
392
|
|
393
393
|
def get_host_settings(self):
|
agilicus/agilicus_api_README.md
CHANGED
@@ -4,7 +4,7 @@ Agilicus is API-first. Modern software is controlled by other software, is open,
|
|
4
4
|
The `agilicus_api` package is automatically generated by the [OpenAPI Generator](https://openapi-generator.tech) project:
|
5
5
|
|
6
6
|
- API version: 2024.06.21
|
7
|
-
- Package version: 1.
|
7
|
+
- Package version: 1.261.0
|
8
8
|
- Build package: org.openapitools.codegen.languages.PythonClientCodegen
|
9
9
|
For more information, please visit [https://www.agilicus.com/api](https://www.agilicus.com/api)
|
10
10
|
|
agilicus/policy/policies.py
CHANGED
@@ -1,4 +1,7 @@
|
|
1
1
|
import copy
|
2
|
+
import datetime
|
3
|
+
import json
|
4
|
+
import os
|
2
5
|
from ..input_helpers import (
|
3
6
|
get_org_from_input_or_ctx,
|
4
7
|
model_from_dict,
|
@@ -18,6 +21,9 @@ from agilicus import (
|
|
18
21
|
SimpleResourcePolicyTemplateStructure,
|
19
22
|
SimpleResourcePolicyTemplate,
|
20
23
|
StandaloneRuleName,
|
24
|
+
RuleAction,
|
25
|
+
ResourceConfig,
|
26
|
+
RulesConfig,
|
21
27
|
RuleCondition,
|
22
28
|
HttpRuleCondition,
|
23
29
|
EmptiableObjectType,
|
@@ -197,7 +203,7 @@ def set_source_info_policy(
|
|
197
203
|
return resp
|
198
204
|
|
199
205
|
|
200
|
-
def migrate_policy_rules(ctx, org_id=None, **kwargs):
|
206
|
+
def migrate_policy_rules(ctx, org_id=None, dump_dir=None, **kwargs):
|
201
207
|
org_id = get_org_from_input_or_ctx(ctx, org_id=org_id)
|
202
208
|
kwargs = strip_none(kwargs)
|
203
209
|
if not kwargs.get("resource_id"):
|
@@ -205,22 +211,21 @@ def migrate_policy_rules(ctx, org_id=None, **kwargs):
|
|
205
211
|
for res in query_resources(
|
206
212
|
ctx, resource_type="application", org_id=org_id, **kwargs
|
207
213
|
):
|
208
|
-
migrate_resource(ctx, res)
|
214
|
+
migrate_resource(ctx, res, dump_dir=dump_dir)
|
209
215
|
|
210
216
|
|
211
|
-
def migrate_resource(ctx, resource):
|
217
|
+
def migrate_resource(ctx, resource, dump_dir=None):
|
212
218
|
print(f" migrating resource: {resource.spec.name}")
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
return
|
219
|
+
resource.spec.config = resource.spec.config or ResourceConfig()
|
220
|
+
resource.spec.config.rules_config = (
|
221
|
+
resource.spec.config.rules_config or RulesConfig()
|
222
|
+
)
|
223
|
+
|
224
|
+
rules = resource.spec.config.rules_config.rules or []
|
220
225
|
policy_structures = []
|
221
|
-
for rule in
|
226
|
+
for rule in rules:
|
222
227
|
node = SimpleResourcePolicyTemplateStructureNode(
|
223
|
-
priority=0,
|
228
|
+
priority=rule.priority or 0,
|
224
229
|
rule_name=StandaloneRuleName(rule.name),
|
225
230
|
children=[],
|
226
231
|
)
|
@@ -231,9 +236,7 @@ def migrate_resource(ctx, resource):
|
|
231
236
|
)
|
232
237
|
)
|
233
238
|
template = SimpleResourcePolicyTemplate(
|
234
|
-
rules=[
|
235
|
-
_migrate_http_rule(rule) for rule in resource.spec.config.rules_config.rules
|
236
|
-
],
|
239
|
+
rules=[_migrate_http_rule(rule) for rule in rules],
|
237
240
|
policy_structure=policy_structures,
|
238
241
|
template_type="simple_resource",
|
239
242
|
)
|
@@ -264,14 +267,34 @@ def migrate_resource(ctx, resource):
|
|
264
267
|
),
|
265
268
|
to_dict=False,
|
266
269
|
)
|
270
|
+
|
271
|
+
_clear_old_rules(apiclient, resource, dump_dir)
|
272
|
+
|
267
273
|
return resp
|
268
274
|
|
269
275
|
|
276
|
+
def _dump_resource_rules(resource, dump_dir):
|
277
|
+
now = datetime.datetime.now().strftime("%Y-%m-%dT%H-%M-%S")
|
278
|
+
file_name = f"{resource.spec.org_id}-{resource.spec.name}-{now}.json"
|
279
|
+
with open(os.path.join(dump_dir, file_name), "w") as f:
|
280
|
+
json.dump(resource.spec.config.rules_config.to_dict(), f)
|
281
|
+
|
282
|
+
|
283
|
+
def _clear_old_rules(apiclient, resource, dump_dir):
|
284
|
+
if dump_dir:
|
285
|
+
_dump_resource_rules(resource, dump_dir)
|
286
|
+
|
287
|
+
resource.spec.config.rules_config = RulesConfig(rules=[])
|
288
|
+
|
289
|
+
apiclient.resources_api.replace_resource(resource.metadata.id, resource=resource)
|
290
|
+
|
291
|
+
|
270
292
|
def _migrate_http_rule(input_rule):
|
271
293
|
if input_rule.extended_condition is not None:
|
272
294
|
return input_rule
|
273
295
|
|
274
296
|
new_rule = copy.deepcopy(input_rule)
|
297
|
+
new_rule.actions = new_rule.actions or [RuleAction(action="allow")]
|
275
298
|
input_cond = new_rule.condition.to_dict()
|
276
299
|
input_cond["condition_type"] = "http_rule_condition"
|
277
300
|
cond = model_from_dict(HttpRuleCondition, input_cond)
|
agilicus/policy/policy_main.py
CHANGED
@@ -42,6 +42,7 @@ def cli_command_list_multifactor_policies(ctx, **kwargs):
|
|
42
42
|
@click.command(name="list-policy-templates", help="shows all policy templates")
|
43
43
|
@click.option("--org-id", default=None)
|
44
44
|
@click.option("--template-type", default=None)
|
45
|
+
@click.option("--include-invalid", type=bool, default=None)
|
45
46
|
@click.option("--name", default=None)
|
46
47
|
@click.pass_context
|
47
48
|
def cli_command_list_policy_templates(ctx, **kwargs):
|
@@ -93,6 +94,7 @@ def cli_command_delete_policy_template(ctx, **kwargs):
|
|
93
94
|
@click.command(name="migrate-policy-rules")
|
94
95
|
@click.option("--org-id", default=None)
|
95
96
|
@click.option("--resource-id", default=None)
|
97
|
+
@click.option("--dump-dir", default=None, help="A directory to cache migrated rules")
|
96
98
|
@click.pass_context
|
97
99
|
def cli_command_migrate_policy_rules(ctx, **kwargs):
|
98
100
|
policies.migrate_policy_rules(ctx, **kwargs)
|
@@ -71,9 +71,9 @@ agilicus/agilicus_api/api/users_api.py,sha256=xhcIheRgjfMpQ3RbekgnOp3ODUUm6deY1H
|
|
71
71
|
agilicus/agilicus_api/api/users_api_mock.py,sha256=wA_xiqL3Pz3KjljKlsmf5NveLZS1FpbaKJHBp7QvarY,15411
|
72
72
|
agilicus/agilicus_api/api/whoami_api.py,sha256=c95A5Rfll7idVIb09yTzUjqAVDpyVlRugUjprI5JBbo,7941
|
73
73
|
agilicus/agilicus_api/api/whoami_api_mock.py,sha256=rlvZoWnMCqORMZBg7SOv6d3xp52kELdh6wXcCaIZ93w,346
|
74
|
-
agilicus/agilicus_api/api_client.py,sha256=
|
74
|
+
agilicus/agilicus_api/api_client.py,sha256=ENFmNXGSJobDqAVsfDDikSxHyW0DF8cfPbudHpxmBkk,38845
|
75
75
|
agilicus/agilicus_api/apis/__init__.py,sha256=aJZD7x-umdSni6ZBr4XxzpH8pwtU9hA5LlCDxcqa1Q8,2224
|
76
|
-
agilicus/agilicus_api/configuration.py,sha256=
|
76
|
+
agilicus/agilicus_api/configuration.py,sha256=tyt3WRMFNRvKjZNGnwvEkREO_nklyahMiWpGOrpOhqg,18447
|
77
77
|
agilicus/agilicus_api/docs/APIKey.md,sha256=4cKuz4_l9HcEDnUrLwYbEnn9C2WoDayrjfrY1Ixgaf4,1747
|
78
78
|
agilicus/agilicus_api/docs/APIKeyIntrospect.md,sha256=nJ-zkuFm3JMbWFDYYN_vYyQk1snGBtBvIxtCQxamhAU,1019
|
79
79
|
agilicus/agilicus_api/docs/APIKeyIntrospectAuthorizationInfo.md,sha256=7RApOOLjvWQs5sw2jb25g7i3Kta1BiEY-s8VRXfppH8,725
|
@@ -2508,7 +2508,7 @@ agilicus/agilicus_api/test/test_x509_root_certificate.py,sha256=H82JE5XkABLdxrdI
|
|
2508
2508
|
agilicus/agilicus_api/test/test_x509_root_certificate_spec.py,sha256=Avjjv9atO5hYlSmAJU1CzS7M0l-0bPs6q4N5iXSoMcs,2832
|
2509
2509
|
agilicus/agilicus_api/test/test_x509_root_certificate_status.py,sha256=6Iw5aUxT4lNJnOHK0ehotwh-niT9tuSCJIjRe1DKlRg,2846
|
2510
2510
|
agilicus/agilicus_api/test/test_xss_settings.py,sha256=Stf0gqkOTrsfpeYF22QDlz85_Nny56SSwv5dpFZoNQU,2746
|
2511
|
-
agilicus/agilicus_api_README.md,sha256=
|
2511
|
+
agilicus/agilicus_api_README.md,sha256=ARSi8m1rYg64uKu-_E8WkIa8xjQ0lHnlpmcs6pRkGgs,161008
|
2512
2512
|
agilicus/aliases.ini,sha256=MxqiVo2f2xdUDVF1YDkNW36AIqN8hrYjlTVfraEUZXY,455
|
2513
2513
|
agilicus/amq.py,sha256=yxi-YTbJPVl10s78Hlr1dmrQR63iaSIoROGVILzFPmE,1775
|
2514
2514
|
agilicus/apps.py,sha256=uYNUNy5rCYjx90KnR_X_aESof9xzSuLYT5w8myN_VVE,52091
|
@@ -2572,8 +2572,8 @@ agilicus/output/tests/column_builder_test.py,sha256=fKP4V5sqXtmEIr-Q0gWVSFdBqCUt
|
|
2572
2572
|
agilicus/pagination/pagination.py,sha256=hC7eLHxXKe4Iv7LdOZK3Dh8R_fKQIr9PPiWKJVyP4Nk,1672
|
2573
2573
|
agilicus/patches.py,sha256=qTqLOgCAcFZPcPOkgfqMnK9bnqTXMvj_0ERsjRFcZug,1384
|
2574
2574
|
agilicus/permissions.py,sha256=uB65yuDFICp1N10m0cdUjgizx9MQzAbLbAsBSTw1Rcc,2117
|
2575
|
-
agilicus/policy/policies.py,sha256=
|
2576
|
-
agilicus/policy/policy_main.py,sha256=
|
2575
|
+
agilicus/policy/policies.py,sha256=LrteEsXjou_RyW_PcqijBhtN2jaIomXFXQIfNArUP6I,9625
|
2576
|
+
agilicus/policy/policy_main.py,sha256=CSg7cFHlZo12eu9T-ugTM1U_sp7QWOXtQN14jbe7KyQ,3878
|
2577
2577
|
agilicus/policy/templates.py,sha256=EUvAhOhSjDuLAe2UKIFEzBp5pNpOT5y1r7uyV_GG6uI,5638
|
2578
2578
|
agilicus/policy_config/policy_config.py,sha256=s1GwbBI5wuLINcViTKE8NdfcntLEegwpUEi7pqmdKkY,627
|
2579
2579
|
agilicus/policy_config/policy_config_main.py,sha256=ReiOziCvPShjunCt3ohrEMGq0IaP0eNyIXEvEg_WD1M,788
|
@@ -2599,8 +2599,8 @@ agilicus/trusted_certs/trusted_certs_main.py,sha256=6dHHWXvNIcUa_nA9ptigL4Vibe4n
|
|
2599
2599
|
agilicus/users.py,sha256=JT7TIiUOtSFXPOdxmIVFm7ygZTH1FjsIkD9j-vjLuMM,38474
|
2600
2600
|
agilicus/version.py,sha256=G9OFdL1v_4dLDfk6I6taDNypM5bbO-JHAwilsu9LYgg,23
|
2601
2601
|
agilicus/whoami.py,sha256=kqghtWMgZOd2rhKmfguDwCTm6A3gNS8Kj-S2IBxBtl0,206
|
2602
|
-
agilicus-1.
|
2603
|
-
agilicus-1.
|
2604
|
-
agilicus-1.
|
2605
|
-
agilicus-1.
|
2606
|
-
agilicus-1.
|
2602
|
+
agilicus-1.261.0.dist-info/LICENSE.txt,sha256=Zq4tqiCroC2CVrBB_PWjapRdvpae23nljdiaSkOzUho,1061
|
2603
|
+
agilicus-1.261.0.dist-info/METADATA,sha256=WfbLexPUatEevNmdnHQ6FnpQLgD-E8PHAPaV8M8aS00,3822
|
2604
|
+
agilicus-1.261.0.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
|
2605
|
+
agilicus-1.261.0.dist-info/entry_points.txt,sha256=a66hGozzLkHu0IewFzIMbSAhMTNTddUaA2T3_16Gb_s,51
|
2606
|
+
agilicus-1.261.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|