runbooks 0.7.0__py3-none-any.whl → 0.7.6__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.
- runbooks/__init__.py +87 -37
- runbooks/cfat/README.md +300 -49
- runbooks/cfat/__init__.py +2 -2
- runbooks/finops/__init__.py +1 -1
- runbooks/finops/cli.py +1 -1
- runbooks/inventory/collectors/__init__.py +8 -0
- runbooks/inventory/collectors/aws_management.py +791 -0
- runbooks/inventory/collectors/aws_networking.py +3 -3
- runbooks/main.py +3389 -782
- runbooks/operate/__init__.py +207 -0
- runbooks/operate/base.py +311 -0
- runbooks/operate/cloudformation_operations.py +619 -0
- runbooks/operate/cloudwatch_operations.py +496 -0
- runbooks/operate/dynamodb_operations.py +812 -0
- runbooks/operate/ec2_operations.py +926 -0
- runbooks/operate/iam_operations.py +569 -0
- runbooks/operate/s3_operations.py +1211 -0
- runbooks/operate/tagging_operations.py +655 -0
- runbooks/remediation/CLAUDE.md +100 -0
- runbooks/remediation/DOME9.md +218 -0
- runbooks/remediation/README.md +26 -0
- runbooks/remediation/Tests/__init__.py +0 -0
- runbooks/remediation/Tests/update_policy.py +74 -0
- runbooks/remediation/__init__.py +95 -0
- runbooks/remediation/acm_cert_expired_unused.py +98 -0
- runbooks/remediation/acm_remediation.py +875 -0
- runbooks/remediation/api_gateway_list.py +167 -0
- runbooks/remediation/base.py +643 -0
- runbooks/remediation/cloudtrail_remediation.py +908 -0
- runbooks/remediation/cloudtrail_s3_modifications.py +296 -0
- runbooks/remediation/cognito_active_users.py +78 -0
- runbooks/remediation/cognito_remediation.py +856 -0
- runbooks/remediation/cognito_user_password_reset.py +163 -0
- runbooks/remediation/commons.py +455 -0
- runbooks/remediation/dynamodb_optimize.py +155 -0
- runbooks/remediation/dynamodb_remediation.py +744 -0
- runbooks/remediation/dynamodb_server_side_encryption.py +108 -0
- runbooks/remediation/ec2_public_ips.py +134 -0
- runbooks/remediation/ec2_remediation.py +892 -0
- runbooks/remediation/ec2_subnet_disable_auto_ip_assignment.py +72 -0
- runbooks/remediation/ec2_unattached_ebs_volumes.py +448 -0
- runbooks/remediation/ec2_unused_security_groups.py +202 -0
- runbooks/remediation/kms_enable_key_rotation.py +651 -0
- runbooks/remediation/kms_remediation.py +717 -0
- runbooks/remediation/lambda_list.py +243 -0
- runbooks/remediation/lambda_remediation.py +971 -0
- runbooks/remediation/multi_account.py +569 -0
- runbooks/remediation/rds_instance_list.py +199 -0
- runbooks/remediation/rds_remediation.py +873 -0
- runbooks/remediation/rds_snapshot_list.py +192 -0
- runbooks/remediation/requirements.txt +118 -0
- runbooks/remediation/s3_block_public_access.py +159 -0
- runbooks/remediation/s3_bucket_public_access.py +143 -0
- runbooks/remediation/s3_disable_static_website_hosting.py +74 -0
- runbooks/remediation/s3_downloader.py +215 -0
- runbooks/remediation/s3_enable_access_logging.py +562 -0
- runbooks/remediation/s3_encryption.py +526 -0
- runbooks/remediation/s3_force_ssl_secure_policy.py +143 -0
- runbooks/remediation/s3_list.py +141 -0
- runbooks/remediation/s3_object_search.py +201 -0
- runbooks/remediation/s3_remediation.py +816 -0
- runbooks/remediation/scan_for_phrase.py +425 -0
- runbooks/remediation/workspaces_list.py +220 -0
- runbooks/security/__init__.py +9 -10
- runbooks/security/security_baseline_tester.py +4 -2
- runbooks-0.7.6.dist-info/METADATA +608 -0
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/RECORD +84 -76
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/entry_points.txt +0 -1
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/top_level.txt +0 -1
- jupyter-agent/.env +0 -2
- jupyter-agent/.env.template +0 -2
- jupyter-agent/.gitattributes +0 -35
- jupyter-agent/.gradio/certificate.pem +0 -31
- jupyter-agent/README.md +0 -16
- jupyter-agent/__main__.log +0 -8
- jupyter-agent/app.py +0 -256
- jupyter-agent/cloudops-agent.png +0 -0
- jupyter-agent/ds-system-prompt.txt +0 -154
- jupyter-agent/jupyter-agent.png +0 -0
- jupyter-agent/llama3_template.jinja +0 -123
- jupyter-agent/requirements.txt +0 -9
- jupyter-agent/tmp/4ojbs8a02ir/jupyter-agent.ipynb +0 -68
- jupyter-agent/tmp/cm5iasgpm3p/jupyter-agent.ipynb +0 -91
- jupyter-agent/tmp/crqbsseag5/jupyter-agent.ipynb +0 -91
- jupyter-agent/tmp/hohanq1u097/jupyter-agent.ipynb +0 -57
- jupyter-agent/tmp/jns1sam29wm/jupyter-agent.ipynb +0 -53
- jupyter-agent/tmp/jupyter-agent.ipynb +0 -27
- jupyter-agent/utils.py +0 -409
- runbooks/aws/__init__.py +0 -58
- runbooks/aws/dynamodb_operations.py +0 -231
- runbooks/aws/ec2_copy_image_cross-region.py +0 -195
- runbooks/aws/ec2_describe_instances.py +0 -202
- runbooks/aws/ec2_ebs_snapshots_delete.py +0 -186
- runbooks/aws/ec2_run_instances.py +0 -213
- runbooks/aws/ec2_start_stop_instances.py +0 -212
- runbooks/aws/ec2_terminate_instances.py +0 -143
- runbooks/aws/ec2_unused_eips.py +0 -196
- runbooks/aws/ec2_unused_volumes.py +0 -188
- runbooks/aws/s3_create_bucket.py +0 -142
- runbooks/aws/s3_list_buckets.py +0 -152
- runbooks/aws/s3_list_objects.py +0 -156
- runbooks/aws/s3_object_operations.py +0 -183
- runbooks/aws/tagging_lambda_handler.py +0 -183
- runbooks/inventory/FAILED_SCRIPTS_TROUBLESHOOTING.md +0 -619
- runbooks/inventory/PASSED_SCRIPTS_GUIDE.md +0 -738
- runbooks/inventory/aws_organization.png +0 -0
- runbooks/inventory/cfn_move_stack_instances.py +0 -1526
- runbooks/inventory/delete_s3_buckets_objects.py +0 -169
- runbooks/inventory/lockdown_cfn_stackset_role.py +0 -224
- runbooks/inventory/update_aws_actions.py +0 -173
- runbooks/inventory/update_cfn_stacksets.py +0 -1215
- runbooks/inventory/update_cloudwatch_logs_retention_policy.py +0 -294
- runbooks/inventory/update_iam_roles_cross_accounts.py +0 -478
- runbooks/inventory/update_s3_public_access_block.py +0 -539
- runbooks/organizations/__init__.py +0 -12
- runbooks/organizations/manager.py +0 -374
- runbooks-0.7.0.dist-info/METADATA +0 -375
- /runbooks/inventory/{tests → Tests}/common_test_data.py +0 -0
- /runbooks/inventory/{tests → Tests}/common_test_functions.py +0 -0
- /runbooks/inventory/{tests → Tests}/script_test_data.py +0 -0
- /runbooks/inventory/{tests → Tests}/setup.py +0 -0
- /runbooks/inventory/{tests → Tests}/src.py +0 -0
- /runbooks/inventory/{tests/test_inventory_modules.py → Tests/test_Inventory_Modules.py} +0 -0
- /runbooks/inventory/{tests → Tests}/test_cfn_describe_stacks.py +0 -0
- /runbooks/inventory/{tests → Tests}/test_ec2_describe_instances.py +0 -0
- /runbooks/inventory/{tests → Tests}/test_lambda_list_functions.py +0 -0
- /runbooks/inventory/{tests → Tests}/test_moto_integration_example.py +0 -0
- /runbooks/inventory/{tests → Tests}/test_org_list_accounts.py +0 -0
- /runbooks/inventory/{Inventory_Modules.py → inventory_modules.py} +0 -0
- /runbooks/{aws → operate}/tags.json +0 -0
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/WHEEL +0 -0
- {runbooks-0.7.0.dist-info → runbooks-0.7.6.dist-info}/licenses/LICENSE +0 -0
@@ -1,46 +1,11 @@
|
|
1
1
|
conftest.py,sha256=HTnQMw9wxefkvX5q4yG8EUH2qVLJBnC9QCt3UCltw7I,586
|
2
|
-
|
3
|
-
jupyter-agent/.env.template,sha256=xU2MQ80zvx2mYr_n3alar7oop9mdhonU6xNVEQGlzwY,71
|
4
|
-
jupyter-agent/.gitattributes,sha256=Ea1--iSXXuSww8OjjtGHN_Blil91oKlnh7V2p4oCM2E,1519
|
5
|
-
jupyter-agent/README.md,sha256=WJ7zUhaFaDl26cH6mcWimqkpN04TJhIH4TKiyd6MDI0,370
|
6
|
-
jupyter-agent/__main__.log,sha256=TDRITkba40x0Lby7EkWncbIs4i8g1sztDD_heSj62aI,710
|
7
|
-
jupyter-agent/app.py,sha256=8UR8AzqrJYHWr2bpj-mOSuPHLYzd8AWVJbxnM43h5Q8,8727
|
8
|
-
jupyter-agent/cloudops-agent.png,sha256=A4e0WfpihWVHFtz0Yj09Y9uci-IWF4gdpnZifACzdT8,408376
|
9
|
-
jupyter-agent/ds-system-prompt.txt,sha256=YZydzHqxaHgXVPORiltlWDg3rK-c-a2Dlx0BAj2dfsg,5034
|
10
|
-
jupyter-agent/jupyter-agent.png,sha256=KJjLvoWAnuhSaEsWBW8PHwouzk2sVC84PTtSuMDEg3o,438042
|
11
|
-
jupyter-agent/llama3_template.jinja,sha256=gywY7mJ14M-VeCSs0LLFO-Nt3S7XEJaQQ-KuzorzuEs,5198
|
12
|
-
jupyter-agent/requirements.txt,sha256=OrwjCjWcVo8lp82yY6Sor2r46mxhqMfkFiH6PBphtA0,173
|
13
|
-
jupyter-agent/utils.py,sha256=MGsDPI6a2OYc39wwSeg8oAM69U_k8mMSzegwT1cyp_0,13067
|
14
|
-
jupyter-agent/.gradio/certificate.pem,sha256=IrVXonBVszYGtlWfN3A5KNPkrXnxELQH0EmG4YQ1Q9E,1939
|
15
|
-
jupyter-agent/tmp/jupyter-agent.ipynb,sha256=jrqDAZIRUDqcCLyrV_Jb435WIipb7OB5FjxULP0mynI,612
|
16
|
-
jupyter-agent/tmp/4ojbs8a02ir/jupyter-agent.ipynb,sha256=hDZB4yLCsQcTMXMNZhNCVAmuXugTXJlXlDu-5BnNZDM,70481
|
17
|
-
jupyter-agent/tmp/cm5iasgpm3p/jupyter-agent.ipynb,sha256=KQ8slJljjsUjsE-COrh-jZFoaEg5jwP6ukk6VX6-C0I,89492
|
18
|
-
jupyter-agent/tmp/crqbsseag5/jupyter-agent.ipynb,sha256=XUM3BR1BJ8qp37rKDft-f9rXCGiG6V7_WOoF6TbBUNw,110860
|
19
|
-
jupyter-agent/tmp/hohanq1u097/jupyter-agent.ipynb,sha256=tPE_Uwx8ZQscqVaM0gfnSgsxNc9RkrcisJKICW1ah38,9686
|
20
|
-
jupyter-agent/tmp/jns1sam29wm/jupyter-agent.ipynb,sha256=7tibJV-03sU3Xn4oRjt6E2QOQIt57E0xxY0hcoNctqg,75815
|
21
|
-
runbooks/__init__.py,sha256=xMbh_48pNLycHeUL4D5iDqjjVEz2Gnwr1j9dcMP7Kjs,2021
|
2
|
+
runbooks/__init__.py,sha256=v10iKXkuZf8wdK5VgNSnVyR4uwNjKHInhbNRHK0YvS0,4600
|
22
3
|
runbooks/__main__.py,sha256=0hTPUA9KkLm_H_COqaIpNzXvC4Lv5b_XYYBV6fUFDrM,241
|
23
4
|
runbooks/base.py,sha256=SE31vwKB_CW2C0w2Onb7QfjU2xJXcUbiYTSHBDWT7KE,11593
|
24
5
|
runbooks/config.py,sha256=63Bct1jASQG3mjPTNnzfJwTMgXzG8aQqVsaku6ugZR0,7839
|
25
|
-
runbooks/main.py,sha256=
|
26
|
-
runbooks/
|
27
|
-
runbooks/
|
28
|
-
runbooks/aws/ec2_copy_image_cross-region.py,sha256=2Afoo2ddzswgtdhdzsDq5aZiqXkQ0_kUyRdHbhkaLAA,6017
|
29
|
-
runbooks/aws/ec2_describe_instances.py,sha256=0S9iY-J_dSOeve0HyeuVu4s01oCgPjdz3DYHhnJo-9w,6545
|
30
|
-
runbooks/aws/ec2_ebs_snapshots_delete.py,sha256=LwaGGAg_7tdqic1thBLywlHKjMSMyye2B79d4yNtK78,5886
|
31
|
-
runbooks/aws/ec2_run_instances.py,sha256=ZpqGXN2yeXz7jYwsL7EZrQsfaYxzRoH5UIrDeksmPRI,6885
|
32
|
-
runbooks/aws/ec2_start_stop_instances.py,sha256=M4adf7DZI176aWfb7oeT_pYjrs-IbZ9moGoVkIco7Fw,6035
|
33
|
-
runbooks/aws/ec2_terminate_instances.py,sha256=p8ZHHDkT--rlOFah82hG6SJpty4rYZa4hn3yq4MqvQI,4692
|
34
|
-
runbooks/aws/ec2_unused_eips.py,sha256=04pjoeSwm-CfJKT6u9XuHa_D-iK5r9D65FaisQy00Zk,5535
|
35
|
-
runbooks/aws/ec2_unused_volumes.py,sha256=ZnLr-LHVHoznmij8r2RtZ5Y3W7bBAklophnJKQmN6lg,5733
|
36
|
-
runbooks/aws/s3_create_bucket.py,sha256=UhQML3KWflvvKmEZFod4tYPzIukCGRJdmBXSfB3ne7w,4216
|
37
|
-
runbooks/aws/s3_list_buckets.py,sha256=sHh05_KrvpLzOlGZJy8nxTAfTuMaVtMIhb3A9nLh_rQ,4752
|
38
|
-
runbooks/aws/s3_list_objects.py,sha256=idwrfbjqEwF5sHFSJRhNb6X38P3tTscCwv0IwKm0NuA,4634
|
39
|
-
runbooks/aws/s3_object_operations.py,sha256=46l8v0Xt8pJhTuMjCyLDSLsU06WGxWKad99nQ91o2hg,5400
|
40
|
-
runbooks/aws/tagging_lambda_handler.py,sha256=NZwzlI3NwEKsLk3b-a_rq3EjMLQ9hUKWi_pzhomvWws,5433
|
41
|
-
runbooks/aws/tags.json,sha256=-Y77SDvrvn0sCdsxgdRwu0sl0mih2Ib_N6nGi-UtE5U,513
|
42
|
-
runbooks/cfat/README.md,sha256=ovKuVTxIJWqRmkTK1JGTNkG25Sufe918wYAFA86_SS8,4917
|
43
|
-
runbooks/cfat/__init__.py,sha256=4CAtXB-hUUgkZnp_QefbADpMAcTlXI-zDGyHgBlprAI,1876
|
6
|
+
runbooks/main.py,sha256=YOG-bPNiDYtL4XCZozGEkjyVP61GPwCZ1IbMq8mLlY4,148252
|
7
|
+
runbooks/cfat/README.md,sha256=rP_FNuKB8xKfj89dPKf43_s_-ScqrmlQ_ZPXj6h0pfo,11089
|
8
|
+
runbooks/cfat/__init__.py,sha256=aAiIi6bCx0G3QbZfc5jxLDNpCixnl78eyIi9awCCKPI,1922
|
44
9
|
runbooks/cfat/app.ts,sha256=EwpA9bQzkoH1qqTJ_Tco47PwVG2zTv4g8ZmEGYpWYlU,27785
|
45
10
|
runbooks/cfat/cli.py,sha256=37KUY-ObzMcB7xYs2R8Q40djLFnBgLhBnUXujvn2M7s,3483
|
46
11
|
runbooks/cfat/models.py,sha256=gh-7XmqEH9PvqrmxtmIhWoKGpGcFTWr1pah_9iNrLxM,37960
|
@@ -103,9 +68,9 @@ runbooks/cfat/tests/test_integration.py,sha256=L4kkWW41Jsuzn4Tv-z_a5cY6xOo_aHzCA
|
|
103
68
|
runbooks/cfat/tests/test_models.py,sha256=16Dcdty82_yotJ2ngBbgydCy9BDamxtMZrs4a1t-mVM,18267
|
104
69
|
runbooks/cfat/tests/test_reporting.py,sha256=ysPZSAFgCQ7oIkOdBxUrlCiyZBhWDpcnp0I2cv3k9_Q,12631
|
105
70
|
runbooks/finops/README.md,sha256=Fm9dpPujttPLJ2ES2d_zDUZ-YrVqVkeaAM1gjlcQxCw,12983
|
106
|
-
runbooks/finops/__init__.py,sha256=
|
71
|
+
runbooks/finops/__init__.py,sha256=X5nVDeHNHIV2_9NrGQHulepYKh_V5r5jBj46R_Gc8dg,2265
|
107
72
|
runbooks/finops/aws_client.py,sha256=o9ShoAH_V1QKBlq2Li4VTrjnXNj3ezgGvenJAiPUbjY,9379
|
108
|
-
runbooks/finops/cli.py,sha256=
|
73
|
+
runbooks/finops/cli.py,sha256=c0FJDJULhmpNdteAlHoxrwtxalNxkNM4dKVyJXpwlPg,5227
|
109
74
|
runbooks/finops/cost_processor.py,sha256=BNyG9HpkAI27UFcoRurP3Tz1Q4BV9u_fVk6wVzf0ysU,15042
|
110
75
|
runbooks/finops/dashboard_runner.py,sha256=JDNx-MqmDuGEZXPhRTDaxlAcjzmvMpjXhOEwIkj8n2A,18281
|
111
76
|
runbooks/finops/helpers.py,sha256=TlFXLZ7oJViYlKWk7MpbWDVlG71jM8C61dM8r5yjNMw,12805
|
@@ -115,21 +80,15 @@ runbooks/finops/types.py,sha256=Tk7sMVh-9LXxrU6IKDa6RMlxK7H3HkWUKvs1yctD_yQ,1592
|
|
115
80
|
runbooks/finops/visualisations.py,sha256=BI6cBsKSNUcjqnEukMzHxZzqyv12w3TRj2zvN53-Rbk,2737
|
116
81
|
runbooks/inventory/.gitignore,sha256=qqVQodfb6iNuPRM7fsl7lvqxrJaatKNQqQmX7s1_PPg,5563
|
117
82
|
runbooks/inventory/ArgumentsClass.py,sha256=BwquO-iYZNS_fVxgASrksanzoAN_NPCzRpTAyohRLX0,8621
|
118
|
-
runbooks/inventory/FAILED_SCRIPTS_TROUBLESHOOTING.md,sha256=xScVwmUGWDZySl2-5j43Dkga5ofk3UJvVqB9P6RklSw,20715
|
119
|
-
runbooks/inventory/Inventory_Modules.py,sha256=4bBfezmCtsT-r0YU7Rhfv94rxhfPfStrUkPF4q009uI,285209
|
120
|
-
runbooks/inventory/PASSED_SCRIPTS_GUIDE.md,sha256=zKUvINX2Pe_EbtJjNBo6MSMnMdJBEMqhrQR_mCbFxAY,21621
|
121
83
|
runbooks/inventory/README.md,sha256=gCubMJ8mp09hwPccr2GDbUgiFr8CoCsakp1kHHAApTU,43221
|
122
84
|
runbooks/inventory/__init__.py,sha256=J-MoV_B5ScwlqfLEZv7ZRF7iTai5Hsya0c4tiNrrVE4,2039
|
123
85
|
runbooks/inventory/account_class.py,sha256=wvYNeiXHq6tk8Pqa95Aa91zAtuBXcnE51NonzDueuaM,26361
|
124
86
|
runbooks/inventory/all_my_instances_wrapper.py,sha256=B_nHnXOFle6_LU1YnZd38uMZNV6pIONh4EvCyO-lwzw,5723
|
125
87
|
runbooks/inventory/aws_decorators.py,sha256=_3QWqih_J6tgs7_dnJwp7Al7OI0qImZpFMyO4E-bMZE,8605
|
126
|
-
runbooks/inventory/aws_organization.png,sha256=-LUsSMk9L-sPF6K3Z__FOnHIP7u4nQW9Q1rcTw1EzX8,1140649
|
127
|
-
runbooks/inventory/cfn_move_stack_instances.py,sha256=cwyOdgQCcrfQqQjPDlTZStEUUN8jp691Mwggniyx-NM,73797
|
128
88
|
runbooks/inventory/check_cloudtrail_compliance.py,sha256=rQGKuJefqBa1LCfTsVgKJ_GiP3HKqgpYX77iclOV2ko,33652
|
129
89
|
runbooks/inventory/check_controltower_readiness.py,sha256=2elNsYY_PYhcQeyjcnB4NTbZVUrHnXU70OjrzwOpwVI,56076
|
130
90
|
runbooks/inventory/check_landingzone_readiness.py,sha256=K7UayaO7QRIhNa0ewZk-Ks4iRAjUPVgMFfjkbgHVOYw,35934
|
131
91
|
runbooks/inventory/cloudtrail.md,sha256=wMgU8ki4fWjoiO9SdDGxRADtdVUVEmD6KD4tjyFtLQk,21929
|
132
|
-
runbooks/inventory/delete_s3_buckets_objects.py,sha256=o7nQQRdOXa3oW0Kfd-f1RwuLA7O5aLhg5gium3djjC0,6007
|
133
92
|
runbooks/inventory/discovery.md,sha256=cKfHx4EFMLnH3R0VIaQ3_ygx9rvAA96tC2mWqQNxowA,6079
|
134
93
|
runbooks/inventory/draw_org_structure.py,sha256=gMrXIs0FQkUCPgTRbTRwgTqLWBNzbcHZ6FFQ5L9hy0k,29769
|
135
94
|
runbooks/inventory/ec2_vpc_utils.py,sha256=bQWvEhe6hqxfj-hgpwu_ZZ9YJbfKiEbgJcAFWhwih-M,16627
|
@@ -140,6 +99,7 @@ runbooks/inventory/find_ec2_security_groups.py,sha256=f-I5Xp4e3A36za4sKEwYm_Wkle
|
|
140
99
|
runbooks/inventory/find_landingzone_versions.py,sha256=4oYfgmH4fJ40F3YuQKAhCcBuLHRgie4fTLCftPaQXhE,10277
|
141
100
|
runbooks/inventory/find_vpc_flow_logs.py,sha256=BRwjqb4BD0K97uv8cabpn5nN1iL0DmVkClmX01hAfoA,65119
|
142
101
|
runbooks/inventory/inventory.sh,sha256=WXmBEpi9OpTu24US9LhW5PC-z6jSwTN0jdwlt-p3aok,23939
|
102
|
+
runbooks/inventory/inventory_modules.py,sha256=4bBfezmCtsT-r0YU7Rhfv94rxhfPfStrUkPF4q009uI,285209
|
143
103
|
runbooks/inventory/list_cfn_stacks.py,sha256=Drgi_7RUaIZA-Z4L-eMEvmmT6nqlj-oGvwBOGOmRKlw,22399
|
144
104
|
runbooks/inventory/list_cfn_stackset_operation_results.py,sha256=1kjuv5uL-ioIWa7Dkx45XAEw3aFRClFTG8Qx1r44pSQ,12847
|
145
105
|
runbooks/inventory/list_cfn_stackset_operations.py,sha256=lYsrZ44xiHkmjKdDQLaVzm7zcabGG91N-7EWtzmWcVU,38317
|
@@ -166,20 +126,26 @@ runbooks/inventory/list_sns_topics.py,sha256=qn1YlsZtpZSdC7lbFudBZCgW8w8DwUlVpzA
|
|
166
126
|
runbooks/inventory/list_ssm_parameters.py,sha256=uA-69R5fGK-cPntBhliffPfki5igDQReD5q0XKHtUj8,19881
|
167
127
|
runbooks/inventory/list_vpc_subnets.py,sha256=HcKjbmU9mydJhC7QQ4f4C4MzRF6pY9xf-gCdE_42DnI,19001
|
168
128
|
runbooks/inventory/list_vpcs.py,sha256=b_54AqH_IgpJ_Qe4VcU-XKmvhfmc5rEJBLWldZw2lF4,18120
|
169
|
-
runbooks/inventory/lockdown_cfn_stackset_role.py,sha256=1qiG845cVpab3tzLT9JmVTPq4CufSExNQQRd1rm1kHo,8282
|
170
129
|
runbooks/inventory/recover_cfn_stack_ids.py,sha256=_KgQgDgZRxeyzUb5im6RM-gORZL9WmD03jKpruwp3os,8638
|
171
130
|
runbooks/inventory/requirements.txt,sha256=W8mvfeKf86CfTIeRJyqa978xJ77Cjfh4mlQ3Gb4YrCc,213
|
172
131
|
runbooks/inventory/run_on_multi_accounts.py,sha256=ecyzqffcHAoWovjoUlT643duC3sCdpCAz6z-S8vEIwU,8586
|
173
|
-
runbooks/inventory/update_aws_actions.py,sha256=y95kGJQFCt94OMWW6Dgx_R0dCJHbpx9FUQhOsfBsICc,5594
|
174
|
-
runbooks/inventory/update_cfn_stacksets.py,sha256=OlAQVT34zm1gJRp90e0GIyCWFHNzL99r9MjPxGVgwyo,64229
|
175
|
-
runbooks/inventory/update_cloudwatch_logs_retention_policy.py,sha256=WSjxo0Jiuqs_HrTKvTYBH9ISakXpusf4Iz5c45XfqdQ,12340
|
176
|
-
runbooks/inventory/update_iam_roles_cross_accounts.py,sha256=BfOqs4vdvkGVh9JvQtYr7kbG8Lmq2APQWi4vW3R84jY,21038
|
177
|
-
runbooks/inventory/update_s3_public_access_block.py,sha256=zLx4_eruUbXxsqlOcNbqcVNs7_FWjk87UdQDL3IPylg,22916
|
178
132
|
runbooks/inventory/verify_ec2_security_groups.py,sha256=iFX5AlRJWaU0DP-gwdOrsXc3zNwsRZbjZeyjcn0YMUA,68221
|
179
133
|
runbooks/inventory/LandingZone/delete_lz.py,sha256=hMwv-T8RTjQQdx9oLelABibFHGD9TFR0xkI_Hgfabw0,48920
|
180
|
-
runbooks/inventory/
|
134
|
+
runbooks/inventory/Tests/common_test_data.py,sha256=M4qRXxYu-WphsJnnumG0P7ENK3OX1Gh2AoCxFN71U4s,180677
|
135
|
+
runbooks/inventory/Tests/common_test_functions.py,sha256=WKeLHuAclroH1Jhc2RyDU9L7d9L4nH6fIFS2NjNtokE,8710
|
136
|
+
runbooks/inventory/Tests/script_test_data.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
137
|
+
runbooks/inventory/Tests/setup.py,sha256=hig677ZZWySuWa5nlL1McAjLR3JMaFP1w6ysS9fISeg,698
|
138
|
+
runbooks/inventory/Tests/src.py,sha256=5JhsRWGkrukMa8vGXbei64z_0j9K7c7uNmHk-TK8ZXE,641
|
139
|
+
runbooks/inventory/Tests/test_Inventory_Modules.py,sha256=OcGqt_Za3Se2hRbDidbcd-WZQfR3IOhsLBnAOsNhz14,2164
|
140
|
+
runbooks/inventory/Tests/test_cfn_describe_stacks.py,sha256=0Lt9pU8rlhnDo1-AnQLlSYSIzr3jl-NB6NUjj8QnRmI,7793
|
141
|
+
runbooks/inventory/Tests/test_ec2_describe_instances.py,sha256=TPwK-sW3H3da30s1e-toJRpKJDhAZqE7l9sbh99buKc,8314
|
142
|
+
runbooks/inventory/Tests/test_lambda_list_functions.py,sha256=4sABlsEVTxGzGtFVT5k4K5bYzK9YsX828_2_RkeHQas,3163
|
143
|
+
runbooks/inventory/Tests/test_moto_integration_example.py,sha256=mBS6Tnr5Wd2EfzhhnbCqZxMEsPdjNPtu8PDrzsMT3JA,9357
|
144
|
+
runbooks/inventory/Tests/test_org_list_accounts.py,sha256=otlaEcVED1bJEkwxWu0zrmMDM9JX5fvw72V0kD17j38,2233
|
145
|
+
runbooks/inventory/collectors/__init__.py,sha256=gmRyAeXqZt-0KgBD4eh77zQs-dcxpKVci0470yZInMg,1101
|
181
146
|
runbooks/inventory/collectors/aws_compute.py,sha256=MzxNqE1YWRdTVtLyJNNXgWabyvLU1kKoiKpe9Cn0RdU,21018
|
182
|
-
runbooks/inventory/collectors/
|
147
|
+
runbooks/inventory/collectors/aws_management.py,sha256=kRB3mxCGXq3TfXlINzdhxIb0sB6CzGoO698JeuyKLWc,32932
|
148
|
+
runbooks/inventory/collectors/aws_networking.py,sha256=8PbLVWrg_wls5a7NJm59e09WSglPwVGpL5wL48TeDDs,11425
|
183
149
|
runbooks/inventory/collectors/base.py,sha256=cOFE-zUOOWYQJPxK0p9lwqPfBopS_bfX_LBrc9qq5TY,7371
|
184
150
|
runbooks/inventory/core/__init__.py,sha256=kCH8dKMGp3bAYNPQI7OegiQdglV0G1k36gUtAKT6avE,562
|
185
151
|
runbooks/inventory/core/collector.py,sha256=YYeAKgbVlJmltwZoPBCtacTSz5HYTwkEjL7z2IWjEcE,11769
|
@@ -188,25 +154,67 @@ runbooks/inventory/models/__init__.py,sha256=LjW8NAHcDeBFvjXjAZwoo73xwQHid8f1-Fi
|
|
188
154
|
runbooks/inventory/models/account.py,sha256=G-7NtoRi8VRX6B0VoMF4qirwTNU_3ukMRGThylQKEbA,7109
|
189
155
|
runbooks/inventory/models/inventory.py,sha256=zNaQLvpshWeljbnbaTAeQ_6rJZ4HDPpwPovY7LfwrFY,11434
|
190
156
|
runbooks/inventory/models/resource.py,sha256=mSTpOv0EE5t-jZtLofsovXb1bpG9EE2HTU_0KjeE8Jo,8539
|
191
|
-
runbooks/inventory/tests/common_test_data.py,sha256=M4qRXxYu-WphsJnnumG0P7ENK3OX1Gh2AoCxFN71U4s,180677
|
192
|
-
runbooks/inventory/tests/common_test_functions.py,sha256=WKeLHuAclroH1Jhc2RyDU9L7d9L4nH6fIFS2NjNtokE,8710
|
193
|
-
runbooks/inventory/tests/script_test_data.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
194
|
-
runbooks/inventory/tests/setup.py,sha256=hig677ZZWySuWa5nlL1McAjLR3JMaFP1w6ysS9fISeg,698
|
195
|
-
runbooks/inventory/tests/src.py,sha256=5JhsRWGkrukMa8vGXbei64z_0j9K7c7uNmHk-TK8ZXE,641
|
196
|
-
runbooks/inventory/tests/test_cfn_describe_stacks.py,sha256=0Lt9pU8rlhnDo1-AnQLlSYSIzr3jl-NB6NUjj8QnRmI,7793
|
197
|
-
runbooks/inventory/tests/test_ec2_describe_instances.py,sha256=TPwK-sW3H3da30s1e-toJRpKJDhAZqE7l9sbh99buKc,8314
|
198
|
-
runbooks/inventory/tests/test_inventory_modules.py,sha256=OcGqt_Za3Se2hRbDidbcd-WZQfR3IOhsLBnAOsNhz14,2164
|
199
|
-
runbooks/inventory/tests/test_lambda_list_functions.py,sha256=4sABlsEVTxGzGtFVT5k4K5bYzK9YsX828_2_RkeHQas,3163
|
200
|
-
runbooks/inventory/tests/test_moto_integration_example.py,sha256=mBS6Tnr5Wd2EfzhhnbCqZxMEsPdjNPtu8PDrzsMT3JA,9357
|
201
|
-
runbooks/inventory/tests/test_org_list_accounts.py,sha256=otlaEcVED1bJEkwxWu0zrmMDM9JX5fvw72V0kD17j38,2233
|
202
157
|
runbooks/inventory/utils/__init__.py,sha256=c6bQD-Foq3U8tw-JK8PYR-o8K5MwJ3mJWkKi2UbDLtg,830
|
203
158
|
runbooks/inventory/utils/aws_helpers.py,sha256=rg1L69An3PLVWrTTiHGjL29Z8N51rOVYLostN8CCcwk,17124
|
204
159
|
runbooks/inventory/utils/threading_utils.py,sha256=ckizvb0QSWx1xkDanvaoUOCHaXOm2E6Abg1VQFxfJrU,16067
|
205
160
|
runbooks/inventory/utils/validation.py,sha256=HoQmEr9CSEfS1yF0uyCAW5TKlG-u9-t-YRouThSBxeA,19803
|
206
|
-
runbooks/
|
207
|
-
runbooks/
|
161
|
+
runbooks/operate/__init__.py,sha256=fqFgURzM0H13TaIfycJlMQHIk78mVfHFCzvJkhcTTp0,7258
|
162
|
+
runbooks/operate/base.py,sha256=-pgIOqCzCH-0nNiZWVvp4efy26g7K4l2KgDMcpJRhng,10154
|
163
|
+
runbooks/operate/cloudformation_operations.py,sha256=U6zDeDnnGUiOu1GXCYtC_5g2LJMqzic6RX61VsYejfw,24481
|
164
|
+
runbooks/operate/cloudwatch_operations.py,sha256=CHqJ-vf9dh_AhnEZ6lrr9BYM4QKiMGYnSa7Qc4lwXPo,19071
|
165
|
+
runbooks/operate/dynamodb_operations.py,sha256=jqG3Bj6um2nWNzOcAv8aoNac2R4Slws8CoN9BC55fVo,31363
|
166
|
+
runbooks/operate/ec2_operations.py,sha256=uZDHoXPKtuXNb-DmDT5zZJ5xmmkZOQT_Ga02r1mKob4,38305
|
167
|
+
runbooks/operate/iam_operations.py,sha256=0x6LWczQsSNBgQgXZAJLXM1kMwMIfH5pqwMmU72jQig,21378
|
168
|
+
runbooks/operate/s3_operations.py,sha256=k6cXa-NVzikj5ODZgLtuo417hzyJJVHE9cIzTGV4NwA,47107
|
169
|
+
runbooks/operate/tagging_operations.py,sha256=UMyiXTly6hy7ZrehalHQmWaAG1lKVW2yviOUFDY7zv8,26228
|
170
|
+
runbooks/operate/tags.json,sha256=-Y77SDvrvn0sCdsxgdRwu0sl0mih2Ib_N6nGi-UtE5U,513
|
171
|
+
runbooks/remediation/CLAUDE.md,sha256=E7u7DX4nso7yN4suoV7HS1T52058zdUNfiExZkEVd1o,3999
|
172
|
+
runbooks/remediation/DOME9.md,sha256=g2qMJmkoMdfUZWoGufo-tNXPLFV9utDlsWatAKsflnY,43743
|
173
|
+
runbooks/remediation/README.md,sha256=qoO6D8qaF5o5K-yBoGfslu8ChaijWnWJaqh_AveqLV8,386
|
174
|
+
runbooks/remediation/__init__.py,sha256=xtmVEgarrkYU66tp_jT0rM-pMxpOQq69nOfFI-qsAx0,3422
|
175
|
+
runbooks/remediation/acm_cert_expired_unused.py,sha256=_SfttBHKMBfXNtI1006Ci1dCYDgqhCEGGI5Ua3RvQGk,3541
|
176
|
+
runbooks/remediation/acm_remediation.py,sha256=0A3-aOBo1A5CkusTs77136m93TzPWRkFjN6-xXYUNrI,38824
|
177
|
+
runbooks/remediation/api_gateway_list.py,sha256=7RyTSmmhQaezNt9Ksh_BktSAPaQ7DGKQeBviqbkEdS0,7180
|
178
|
+
runbooks/remediation/base.py,sha256=7GjQr80Ce7FqftFCuXGiib_YdYQJaKUJQR4z_jgCdaE,24480
|
179
|
+
runbooks/remediation/cloudtrail_remediation.py,sha256=eumUem5lCuY7Hcm0w7rJhnAX7xrWBRoNShxmGJih074,38390
|
180
|
+
runbooks/remediation/cloudtrail_s3_modifications.py,sha256=DaN6DmvTgZk4D2QlxXEJ4yUc1m1oi7U1myNX7krA00Q,13147
|
181
|
+
runbooks/remediation/cognito_active_users.py,sha256=ZKtludgCL0ufWiWpiodfD8DNRKSiIMWcQeBBBANH4o8,2973
|
182
|
+
runbooks/remediation/cognito_remediation.py,sha256=2uWiNo0LSo3lCA4UOmeuvCSsAPVqVuoLkiru67LrW5k,36966
|
183
|
+
runbooks/remediation/cognito_user_password_reset.py,sha256=1pBLS9Ccdu8ohflGcbsBI-HLKLbNYsU39sijielAcQk,6902
|
184
|
+
runbooks/remediation/commons.py,sha256=f3QcUHyZ0fRHWYvh3NNVJoittoS8eEeVZ7cUiGWFseQ,15348
|
185
|
+
runbooks/remediation/dynamodb_optimize.py,sha256=CKezH6osJlW44kpu47STN0K6Q9EbL69FYr2SmwjcHmw,5987
|
186
|
+
runbooks/remediation/dynamodb_remediation.py,sha256=o9zwjjbgkMkXxtUe3Qq4NAOBYaNXd3KbaioRrZQdLx8,30872
|
187
|
+
runbooks/remediation/dynamodb_server_side_encryption.py,sha256=wnXwRcXzR3dFpcsA-5CjyCvPBixOiflN2H8Rfdp8Wao,3802
|
188
|
+
runbooks/remediation/ec2_public_ips.py,sha256=BcTi7QGihyy5brPa2zJSiqk0fcFYok5YO96B6GrEf68,5331
|
189
|
+
runbooks/remediation/ec2_remediation.py,sha256=mzQVZJeSzYsfH1co-V96oW-fkqPAzS3-Odq-qi0JNzg,37035
|
190
|
+
runbooks/remediation/ec2_subnet_disable_auto_ip_assignment.py,sha256=UeXqp2qTCj2oXwGKXH_6H1PcBQANjMAXXIKADH1kOd4,2723
|
191
|
+
runbooks/remediation/ec2_unattached_ebs_volumes.py,sha256=x8vgSFOzQo5mfN-tOKLaBt1IzHqWmuhSv5gEFR2_fYk,18987
|
192
|
+
runbooks/remediation/ec2_unused_security_groups.py,sha256=YKG4-UBipJEdoMvy1Pt5-j3CdK-4LlmdXSJ3wyxZdNA,8512
|
193
|
+
runbooks/remediation/kms_enable_key_rotation.py,sha256=Ulpltvh-n_PHLxKE2rI5UsEHr-L3edjkTdv9-mIDurw,27587
|
194
|
+
runbooks/remediation/kms_remediation.py,sha256=YxscKTGWEh7ViPYmDFzeORjS6Qds04iZKC6dHZfAvnY,29381
|
195
|
+
runbooks/remediation/lambda_list.py,sha256=B5dQzg_nWXbuC-h0TuCE1hH26Rsm5jeNkmRZrbYGekM,10925
|
196
|
+
runbooks/remediation/lambda_remediation.py,sha256=MKOqWDpRQ41xSa9J4GdmABvK7_LiNAs-hp5zPkFdxZ4,42553
|
197
|
+
runbooks/remediation/multi_account.py,sha256=DBC2abhQAjIx7nbPqTZjIQGcUL0farQgZt6cIV7sYp4,22062
|
198
|
+
runbooks/remediation/rds_instance_list.py,sha256=Nl1Pe1DDBZBl3SDjnY2i51IrcErELgCh2W1EXQyu_Dc,8476
|
199
|
+
runbooks/remediation/rds_remediation.py,sha256=KVgo9ermkR0f19-0Jq-e0_c8ImfsB_XAGIYyeWC4EfM,37069
|
200
|
+
runbooks/remediation/rds_snapshot_list.py,sha256=7ImBYvHScpP_TxnccE2pWbwuiYlblZKtXZ1YzsSVLiY,7933
|
201
|
+
runbooks/remediation/requirements.txt,sha256=xwrVRq4cK8GbX9cwt_8TLLj8kCJHQ06tqBrH_wukMzE,2091
|
202
|
+
runbooks/remediation/s3_block_public_access.py,sha256=mTBIxaiBnyjyAOMFxzhFhlRwBDYFl9tXbkoFTBDLy4o,6331
|
203
|
+
runbooks/remediation/s3_bucket_public_access.py,sha256=eejdaWik_QpWHIMAZSdHWVckJBHL3VkXRBCIDFcVVVI,5533
|
204
|
+
runbooks/remediation/s3_disable_static_website_hosting.py,sha256=08CeFqDfGpLRAwGVJQDiEyA2ct_pHSXiSh9Wt0_iIOI,2749
|
205
|
+
runbooks/remediation/s3_downloader.py,sha256=WteUk1xMiiUdnUOeC_O3RhbAVSEfKB4XyYbWSW29lT4,8777
|
206
|
+
runbooks/remediation/s3_enable_access_logging.py,sha256=jUxMy7Dy0EweuCxW-YQ43nHSSmptmL6cYfxZuniHGyc,24672
|
207
|
+
runbooks/remediation/s3_encryption.py,sha256=K94Xn7yd9SZ3IgFjubEw87_NzWyIPeX4lgZKLoFOGPM,21064
|
208
|
+
runbooks/remediation/s3_force_ssl_secure_policy.py,sha256=j-p0T5xjk8l4wIgtW07yYuoWIYhcDyVL_UgdrdNGPDY,5219
|
209
|
+
runbooks/remediation/s3_list.py,sha256=PB7MqI13GYR6-PhYtqf3MIdURWbd1dVKdSSDUoubmVE,6313
|
210
|
+
runbooks/remediation/s3_object_search.py,sha256=8MnbwVwz2qZ0IK_C_uzMwNCfMnkB24d8JgrIN03lqSo,7904
|
211
|
+
runbooks/remediation/s3_remediation.py,sha256=ix-WoeND_galxEhV901T3E__bNovqvcE_Z6bWToLbC0,33014
|
212
|
+
runbooks/remediation/scan_for_phrase.py,sha256=FgTpDXnLg1tdnU6aYTmvOZu9CMjZMsfrZCNOSLqL4P4,18958
|
213
|
+
runbooks/remediation/workspaces_list.py,sha256=M6UGSmHT_IfTD2Dk58fO0b38wAp3Rb7IXvuI0S46Inw,9426
|
214
|
+
runbooks/remediation/Tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
215
|
+
runbooks/remediation/Tests/update_policy.py,sha256=7jb5hMR6jVbCUwzl5MHVqxrIGFN9_2-trIMUV-R7Kls,2999
|
208
216
|
runbooks/security/README.md,sha256=NiOHsV8Kal5LHh3mJtEjw30rCjx-9JjnMzPjXe4_Hzo,17850
|
209
|
-
runbooks/security/__init__.py,sha256=
|
217
|
+
runbooks/security/__init__.py,sha256=tVfoTO03gnk0BB7vI_XuDsBCmGfd7_c-BNg4Rc9GBLo,1844
|
210
218
|
runbooks/security/config-origin.json,sha256=3mijAIymVtkf1V_BzDJPnQSBSFjrYyL-wrPBH3t8gXQ,1009
|
211
219
|
runbooks/security/config.json,sha256=3mijAIymVtkf1V_BzDJPnQSBSFjrYyL-wrPBH3t8gXQ,1009
|
212
220
|
runbooks/security/permission.json,sha256=3p9xDYEKLfOT171GE8gV2dAjgw2TFNoggGB65w2q-L8,1261
|
@@ -216,7 +224,7 @@ runbooks/security/report_template_jp.html,sha256=UARo0jfvNe41W9m70r_U6kqw8arq8N7
|
|
216
224
|
runbooks/security/report_template_kr.html,sha256=m3lf59ef12qaLsd_Zs2uZlYHVru0tQwt-e7q9odrvhc,10383
|
217
225
|
runbooks/security/report_template_vn.html,sha256=UARo0jfvNe41W9m70r_U6kqw8arq8N7Y0G5bqq6Mk5w,7983
|
218
226
|
runbooks/security/run_script.py,sha256=TrydLAuZ6_1AOo-CeNRqCYWABXDXAniyQ506KP6IRKI,2322
|
219
|
-
runbooks/security/security_baseline_tester.py,sha256=
|
227
|
+
runbooks/security/security_baseline_tester.py,sha256=xMQ8Pp6dp1X_SU42AoAfZiezjHf95vrJEEAzuIxpU-Q,7839
|
220
228
|
runbooks/security/checklist/__init__.py,sha256=gXjVSA36zv5jCkaw3XASG8DpLPo6Fu8yxquUdX8YSFY,455
|
221
229
|
runbooks/security/checklist/account_level_bucket_public_access.py,sha256=_sILKNiBg-33wUUxoZhUq2O-x-xC2zZU9cQUehYMxTs,3386
|
222
230
|
runbooks/security/checklist/alternate_contacts.py,sha256=D65xPRbiregtYQ76kkKjy9GxHbbI_HWGEVF7Sbeu_bU,3172
|
@@ -241,9 +249,9 @@ runbooks/security/utils/level_const.py,sha256=l8uYBmgEMjIQTGVVuXPAfDd_Psl6jNfTQw
|
|
241
249
|
runbooks/security/utils/permission_list.py,sha256=nq06vlILHp9rfnCpJauCmFCOEGdgFMF-XO3uBFrrd-o,767
|
242
250
|
runbooks/utils/__init__.py,sha256=3K-CwUA_NEN9R7RT5PeELs-VLSgVKUfkV-4NJkbCg90,5770
|
243
251
|
runbooks/utils/logger.py,sha256=ifxqLjDlZoDaG8rtAGVKLZ5dAwcMn16rB4YgMfeUC3E,972
|
244
|
-
runbooks-0.7.
|
245
|
-
runbooks-0.7.
|
246
|
-
runbooks-0.7.
|
247
|
-
runbooks-0.7.
|
248
|
-
runbooks-0.7.
|
249
|
-
runbooks-0.7.
|
252
|
+
runbooks-0.7.6.dist-info/licenses/LICENSE,sha256=WAQUYGIkLJh6CPrlZgr0IsbRODa0EZ6fboBXGjfWggs,11375
|
253
|
+
runbooks-0.7.6.dist-info/METADATA,sha256=tR_okgkKovVNu3De0TihCGaQym-0glHx9wHSK9CuJTg,26273
|
254
|
+
runbooks-0.7.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
255
|
+
runbooks-0.7.6.dist-info/entry_points.txt,sha256=OUdFCP5rg5Q1bS1lqyZ8z1NjdGMyIj3t1M7eHd6CRuM,223
|
256
|
+
runbooks-0.7.6.dist-info/top_level.txt,sha256=A0zTBjuF7THC6vnJU7StN7ihtUoh31lZSfwyWpWP2YE,18
|
257
|
+
runbooks-0.7.6.dist-info/RECORD,,
|
@@ -1,7 +1,6 @@
|
|
1
1
|
[console_scripts]
|
2
2
|
cfat = runbooks.cfat.cli:main
|
3
3
|
runbooks = runbooks.main:main
|
4
|
-
runbooks-aws = runbooks.aws:run_script
|
5
4
|
runbooks-cfat = runbooks.cfat.cli:main
|
6
5
|
runbooks-finops = runbooks.finops.cli:main
|
7
6
|
runbooks-security = runbooks.security_baseline.run_script:main
|
jupyter-agent/.env
DELETED
jupyter-agent/.env.template
DELETED
jupyter-agent/.gitattributes
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
2
|
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
3
|
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
4
|
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
5
|
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
6
|
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
7
|
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
8
|
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
9
|
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
10
|
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
11
|
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
12
|
-
*.model filter=lfs diff=lfs merge=lfs -text
|
13
|
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
14
|
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
15
|
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
16
|
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
17
|
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
18
|
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
19
|
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
20
|
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
21
|
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
22
|
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
23
|
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
24
|
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
25
|
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
26
|
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
27
|
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
28
|
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
29
|
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
30
|
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
31
|
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
32
|
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
33
|
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
34
|
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
35
|
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
@@ -1,31 +0,0 @@
|
|
1
|
-
-----BEGIN CERTIFICATE-----
|
2
|
-
MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
|
3
|
-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
-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
-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
-
ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
|
7
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-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
-
ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
|
22
|
-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
-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
-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
-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
-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
-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
-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
-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
-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
|
31
|
-
-----END CERTIFICATE-----
|
jupyter-agent/README.md
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
---
|
2
|
-
title: Jupyter Agent
|
3
|
-
emoji: 🏃
|
4
|
-
colorFrom: red
|
5
|
-
colorTo: purple
|
6
|
-
sdk: gradio
|
7
|
-
sdk_version: 5.8.0
|
8
|
-
app_file: app.py
|
9
|
-
pinned: false
|
10
|
-
thumbnail: cloudops-agent.png
|
11
|
-
---
|
12
|
-
|
13
|
-
|
14
|
-
# Task-Specialized Agents for automation, by focusing on well-defined problems with clear success metrics
|
15
|
-
|
16
|
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
jupyter-agent/__main__.log
DELETED
@@ -1,8 +0,0 @@
|
|
1
|
-
2025-02-07 08:59:31,890 - INFO - Notebook saved to ./tmp/hohanq1u097/jupyter-agent.ipynb
|
2
|
-
2025-02-07 09:08:58,989 - INFO - Notebook saved to ./tmp/4ojbs8a02ir/jupyter-agent.ipynb
|
3
|
-
2025-02-07 09:16:22,801 - INFO - Notebook saved to ./tmp/4ojbs8a02ir/jupyter-agent.ipynb
|
4
|
-
2025-02-07 10:27:19,698 - INFO - Notebook saved to ./tmp/crqbsseag5/jupyter-agent.ipynb
|
5
|
-
2025-02-07 10:29:00,714 - INFO - Notebook saved to ./tmp/crqbsseag5/jupyter-agent.ipynb
|
6
|
-
2025-02-07 10:44:22,894 - INFO - Notebook saved to ./tmp/jns1sam29wm/jupyter-agent.ipynb
|
7
|
-
2025-02-07 11:56:07,281 - INFO - Notebook saved to ./tmp/cm5iasgpm3p/jupyter-agent.ipynb
|
8
|
-
2025-02-07 11:57:38,936 - INFO - Notebook saved to ./tmp/cm5iasgpm3p/jupyter-agent.ipynb
|
jupyter-agent/app.py
DELETED
@@ -1,256 +0,0 @@
|
|
1
|
-
"""
|
2
|
-
app.py
|
3
|
-
|
4
|
-
Main entry point for the Jupyter Agent. This file sets up the Gradio user interface,
|
5
|
-
handles session-specific sandbox initialization, file management, and orchestrates
|
6
|
-
the interactive notebook generation and code execution.
|
7
|
-
"""
|
8
|
-
|
9
|
-
import json
|
10
|
-
import os
|
11
|
-
from pathlib import Path
|
12
|
-
from typing import Any, Dict, List, Tuple
|
13
|
-
|
14
|
-
import gradio as gr
|
15
|
-
from e2b_code_interpreter import Sandbox
|
16
|
-
from gradio.utils import get_space
|
17
|
-
from huggingface_hub import InferenceClient
|
18
|
-
from transformers import AutoTokenizer
|
19
|
-
|
20
|
-
## Import helper functions from utils with type hints
|
21
|
-
from utils import (
|
22
|
-
create_base_notebook,
|
23
|
-
run_interactive_notebook,
|
24
|
-
update_notebook_display,
|
25
|
-
)
|
26
|
-
|
27
|
-
from runbooks.utils.logger import configure_logger
|
28
|
-
|
29
|
-
## ✅ Configure Logger
|
30
|
-
logger = configure_logger(__name__)
|
31
|
-
|
32
|
-
## Load environment variables if not running in a Hugging Face Space
|
33
|
-
if not get_space():
|
34
|
-
try:
|
35
|
-
from dotenv import load_dotenv
|
36
|
-
|
37
|
-
load_dotenv()
|
38
|
-
except (ImportError, ModuleNotFoundError):
|
39
|
-
logger.warning("python-dotenv not installed; proceeding without .env support.")
|
40
|
-
pass
|
41
|
-
|
42
|
-
## Global configurations
|
43
|
-
## For sandbox execution and Hugging Face API authentication
|
44
|
-
E2B_API_KEY = os.environ["E2B_API_KEY"]
|
45
|
-
HF_TOKEN = os.environ["HF_TOKEN"]
|
46
|
-
## Set a limit on the number of new tokens generated per request.
|
47
|
-
DEFAULT_MAX_TOKENS = 512
|
48
|
-
## A dictionary used to keep track of separate execution environments (sandboxes) for each session.
|
49
|
-
SANDBOXES = {}
|
50
|
-
## For storing temporary files (e.g., generated notebooks)
|
51
|
-
TMP_DIR = "./tmp/"
|
52
|
-
## Ensure the temporary directory exists
|
53
|
-
if not os.path.exists(TMP_DIR):
|
54
|
-
os.makedirs(TMP_DIR)
|
55
|
-
|
56
|
-
## Initialize a base notebook on startup
|
57
|
-
notebook_data = create_base_notebook([])[0]
|
58
|
-
with open(TMP_DIR + "jupyter-agent.ipynb", "w", encoding="utf-8") as f:
|
59
|
-
json.dump(notebook_data, f, indent=2)
|
60
|
-
|
61
|
-
## Read default system prompt
|
62
|
-
try:
|
63
|
-
with open("ds-system-prompt.txt", "r", encoding="utf-8") as f:
|
64
|
-
DEFAULT_SYSTEM_PROMPT: str = f.read()
|
65
|
-
except FileNotFoundError:
|
66
|
-
logger.error("ds-system-prompt.txt not found. Please ensure it is available.")
|
67
|
-
DEFAULT_SYSTEM_PROMPT = ""
|
68
|
-
|
69
|
-
|
70
|
-
## --- Main Execution Function ---
|
71
|
-
def execute_jupyter_agent(
|
72
|
-
system_prompt: str,
|
73
|
-
user_input: str,
|
74
|
-
max_new_tokens: int,
|
75
|
-
model: str,
|
76
|
-
files: List[str],
|
77
|
-
message_history: List[Dict[str, Any]],
|
78
|
-
request: gr.Request,
|
79
|
-
) -> Tuple[str, List[Dict[str, Any]], str]:
|
80
|
-
"""
|
81
|
-
Core callback function that orchestrates the interactive notebook generation.
|
82
|
-
|
83
|
-
:param system_prompt: The system prompt template.
|
84
|
-
:param user_input: User's input command.
|
85
|
-
:param max_new_tokens: Maximum number of tokens to generate.
|
86
|
-
:param model: Identifier for the language model.
|
87
|
-
:param files: List of file paths uploaded by the user.
|
88
|
-
:param message_history: History of conversation messages.
|
89
|
-
:param request: Gradio request object with session details.
|
90
|
-
:return: A tuple containing the updated notebook HTML, updated message history,
|
91
|
-
and the path to the generated notebook file.
|
92
|
-
"""
|
93
|
-
## Retrieve or create a sandbox instance for the given session.
|
94
|
-
if request.session_hash not in SANDBOXES:
|
95
|
-
## Create a new Sandbox with the E2B API key and stored
|
96
|
-
SANDBOXES[request.session_hash] = Sandbox(api_key=E2B_API_KEY)
|
97
|
-
sbx = SANDBOXES[request.session_hash]
|
98
|
-
|
99
|
-
## Create session-specific directory for saving notebook
|
100
|
-
save_dir = os.path.join(TMP_DIR, request.session_hash)
|
101
|
-
os.makedirs(save_dir, exist_ok=True)
|
102
|
-
save_dir = os.path.join(save_dir, "jupyter-agent.ipynb")
|
103
|
-
|
104
|
-
## Initializes an inference client for text generation using the provided Hugging Face token.
|
105
|
-
client = InferenceClient(api_key=HF_TOKEN)
|
106
|
-
|
107
|
-
## Loads the tokenizer corresponding to the chosen model.
|
108
|
-
tokenizer = AutoTokenizer.from_pretrained(model)
|
109
|
-
# model = "meta-llama/Llama-3.1-8B-Instruct"
|
110
|
-
|
111
|
-
## Process uploaded files
|
112
|
-
filenames = []
|
113
|
-
if files is not None:
|
114
|
-
for filepath in files:
|
115
|
-
filpath = Path(filepath)
|
116
|
-
with open(filepath, "rb") as file:
|
117
|
-
print(f"uploading {filepath}...")
|
118
|
-
## Write the file into the sandbox’s file system (allowing the agent to access it during execution).
|
119
|
-
sbx.files.write(filpath.name, file)
|
120
|
-
filenames.append(filpath.name)
|
121
|
-
|
122
|
-
## Initialize message_history if it doesn't exist
|
123
|
-
if len(message_history) == 0:
|
124
|
-
message_history.append(
|
125
|
-
{
|
126
|
-
"role": "system",
|
127
|
-
"content": system_prompt.format("- " + "\n- ".join(filenames)),
|
128
|
-
}
|
129
|
-
)
|
130
|
-
message_history.append({"role": "user", "content": user_input})
|
131
|
-
|
132
|
-
## Outputs the current conversation history for debugging purposes.
|
133
|
-
logger.debug(f"Message history: {message_history}")
|
134
|
-
|
135
|
-
## Generate notebook updates by streaming responses
|
136
|
-
for notebook_html, notebook_data, messages in run_interactive_notebook(
|
137
|
-
client, model, tokenizer, message_history, sbx, max_new_tokens=max_new_tokens
|
138
|
-
):
|
139
|
-
message_history = messages
|
140
|
-
|
141
|
-
## Yield intermediate UI updates with a fixed download path (initial version)
|
142
|
-
yield notebook_html, message_history, TMP_DIR + "jupyter-agent.ipynb"
|
143
|
-
|
144
|
-
## Save the final notebook JSON data to a specified path.
|
145
|
-
with open(save_dir, "w", encoding="utf-8") as f:
|
146
|
-
json.dump(notebook_data, f, indent=2)
|
147
|
-
yield notebook_html, message_history, save_dir
|
148
|
-
logger.info(f"Notebook saved to {save_dir}")
|
149
|
-
|
150
|
-
|
151
|
-
def clear(msg_state):
|
152
|
-
msg_state = []
|
153
|
-
return update_notebook_display(create_base_notebook([])[0]), msg_state
|
154
|
-
|
155
|
-
|
156
|
-
## Gradio components fill the full height of the viewport, allow scrolling, and have appropriate padding
|
157
|
-
custom_css = """
|
158
|
-
#component-0 {
|
159
|
-
height: 100vh;
|
160
|
-
overflow-y: auto;
|
161
|
-
padding: 20px;
|
162
|
-
}
|
163
|
-
|
164
|
-
.gradio-container {
|
165
|
-
height: 100vh !important;
|
166
|
-
}
|
167
|
-
|
168
|
-
.contain {
|
169
|
-
height: 100vh !important;
|
170
|
-
}
|
171
|
-
"""
|
172
|
-
## TODO
|
173
|
-
# footer {
|
174
|
-
# visibility: hidden;
|
175
|
-
# }
|
176
|
-
|
177
|
-
|
178
|
-
## Build and return the Gradio Blocks interface for the Jupyter Agent.
|
179
|
-
# with gr.Blocks(css=custom_css) as poc:
|
180
|
-
with gr.Blocks() as poc:
|
181
|
-
msg_state = gr.State(value=[])
|
182
|
-
|
183
|
-
html_output = gr.HTML(value=update_notebook_display(create_base_notebook([])[0]))
|
184
|
-
|
185
|
-
user_input = gr.Textbox(
|
186
|
-
value="Solve the Bayes' theorem equation and plot the results.",
|
187
|
-
lines=3,
|
188
|
-
label="User input",
|
189
|
-
)
|
190
|
-
|
191
|
-
with gr.Row():
|
192
|
-
generate_btn = gr.Button("▶️ Let's go!")
|
193
|
-
clear_btn = gr.Button("🧹 Clear")
|
194
|
-
|
195
|
-
file = gr.File(
|
196
|
-
TMP_DIR + "jupyter-agent.ipynb", label="💾 Download Jupyter Notebook"
|
197
|
-
)
|
198
|
-
|
199
|
-
with gr.Accordion("Upload files", open=False):
|
200
|
-
files = gr.File(label="Upload files to use", file_count="multiple")
|
201
|
-
|
202
|
-
with gr.Accordion("Advanced Settings", open=False):
|
203
|
-
system_input = gr.Textbox(
|
204
|
-
label="System Prompt",
|
205
|
-
value=DEFAULT_SYSTEM_PROMPT,
|
206
|
-
elem_classes="input-box",
|
207
|
-
lines=8,
|
208
|
-
)
|
209
|
-
with gr.Row():
|
210
|
-
max_tokens = gr.Number(
|
211
|
-
label="Max New Tokens",
|
212
|
-
value=DEFAULT_MAX_TOKENS,
|
213
|
-
minimum=128,
|
214
|
-
maximum=2048,
|
215
|
-
step=8,
|
216
|
-
interactive=True,
|
217
|
-
)
|
218
|
-
|
219
|
-
model = gr.Dropdown(
|
220
|
-
# value="meta-llama/Llama-3.1-8B-Instruct",
|
221
|
-
value="meta-llama/Llama-3.3-70B-Instruct",
|
222
|
-
choices=[
|
223
|
-
## Text only instruct-tuned model in 70B size (text in/text out).
|
224
|
-
"meta-llama/Llama-3.3-70B-Instruct",
|
225
|
-
## Pretrained and fine-tuned text models with sizes
|
226
|
-
"meta-llama/Llama-3.1-8B-Instruct",
|
227
|
-
## pretrained and instruction-tuned image reasoning generative models in 11B and 90B sizes (text + images in / text out)
|
228
|
-
"meta-llama/Llama-3.2-3B-Instruct",
|
229
|
-
"meta-llama/Llama-3.2-11B-Vision-Instruct",
|
230
|
-
],
|
231
|
-
label="Models",
|
232
|
-
)
|
233
|
-
|
234
|
-
generate_btn.click(
|
235
|
-
fn=execute_jupyter_agent,
|
236
|
-
inputs=[system_input, user_input, max_tokens, model, files, msg_state],
|
237
|
-
outputs=[html_output, msg_state, file],
|
238
|
-
)
|
239
|
-
|
240
|
-
clear_btn.click(fn=clear, inputs=[msg_state], outputs=[html_output, msg_state])
|
241
|
-
|
242
|
-
poc.load(
|
243
|
-
fn=None,
|
244
|
-
inputs=None,
|
245
|
-
outputs=None,
|
246
|
-
js=""" () => {
|
247
|
-
if (document.querySelectorAll('.dark').length) {
|
248
|
-
document.querySelectorAll('.dark').forEach(el => el.classList.remove('dark'));
|
249
|
-
}
|
250
|
-
}
|
251
|
-
""",
|
252
|
-
)
|
253
|
-
|
254
|
-
## Main entry point: launch the Gradio interface.
|
255
|
-
## Disable server-side rendering (i.e., client-side rendering is used).
|
256
|
-
poc.launch(ssr_mode=False, pwa=True, share=True)
|
jupyter-agent/cloudops-agent.png
DELETED
Binary file
|