velocity-python 0.1.47__tar.gz → 0.1.48__tar.gz
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.
- {velocity_python-0.1.47/src/velocity_python.egg-info → velocity_python-0.1.48}/PKG-INFO +1 -1
- {velocity_python-0.1.47 → velocity_python-0.1.48}/pyproject.toml +1 -1
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/__init__.py +1 -1
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/amplify.py +10 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/amplify_build.py +47 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/context.py +9 -1
- {velocity_python-0.1.47 → velocity_python-0.1.48/src/velocity_python.egg-info}/PKG-INFO +1 -1
- {velocity_python-0.1.47 → velocity_python-0.1.48}/LICENSE +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/README.md +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/setup.cfg +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/assets/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/assets/backfill.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/assets/indexing.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/assets/references.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/assets/service.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/assets/usage_index.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/dirty_pipeline.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/s3.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/ssm_config.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/async_support.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/table.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/transaction.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/migrations.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/logging.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/pdf.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/authorizenet_adapter.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/authorizenet_mirror.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/braintree_adapter.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/braintree_mirror.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/charge_rules.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/stripe_adapter.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/stripe_mirror.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity_python.egg-info/entry_points.txt +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_amplify_build.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_asset_indexing.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_asset_references.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_assets_service.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_async_support.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_batch_operations.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_concurrency_safety.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_connection_pool.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_connection_resilience.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_context_job_descriptions.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_decorators.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_dirty_pipeline_fast_path.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_email_processing.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_n_plus_one.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_observability.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_payment_authorizenet_adapter.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_payment_braintree_adapter.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_payment_braintree_mirror.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_payment_stripe_adapter.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_pdf.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_prepared_statements.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_psycopg3_upgrade.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_query_cache.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_row_batch_update.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_row_cache_staleness.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_row_dirty_tracking.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_schema_migrations.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_security_hardening.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_server_cursor.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_sqs_per_record_transactions.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_ssm_config.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_table_alter.py +0 -0
- {velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_where_clause_validation.py +0 -0
|
@@ -337,6 +337,7 @@ class AmplifyProject:
|
|
|
337
337
|
}}"""
|
|
338
338
|
|
|
339
339
|
def get_lambda_vpc_policy_template(self):
|
|
340
|
+
account_id = self.get_account_id()
|
|
340
341
|
return {
|
|
341
342
|
"Version": "2012-10-17",
|
|
342
343
|
"Statement": [
|
|
@@ -356,6 +357,15 @@ class AmplifyProject:
|
|
|
356
357
|
"ec2:RevokeSecurityGroupEgress",
|
|
357
358
|
"cognito-idp:*",
|
|
358
359
|
],
|
|
360
|
+
},
|
|
361
|
+
{
|
|
362
|
+
"Effect": "Allow",
|
|
363
|
+
"Resource": f"arn:aws:ssm:*:{account_id}:parameter/*",
|
|
364
|
+
"Action": [
|
|
365
|
+
"ssm:GetParameter",
|
|
366
|
+
"ssm:GetParameters",
|
|
367
|
+
"ssm:GetParametersByPath",
|
|
368
|
+
],
|
|
359
369
|
}
|
|
360
370
|
],
|
|
361
371
|
}
|
|
@@ -7,6 +7,7 @@ import time
|
|
|
7
7
|
from dataclasses import dataclass, field
|
|
8
8
|
from pathlib import Path
|
|
9
9
|
from typing import Any, Dict, Mapping, Optional, Sequence, Tuple, Union
|
|
10
|
+
from urllib.parse import unquote
|
|
10
11
|
|
|
11
12
|
import boto3
|
|
12
13
|
import botocore.exceptions
|
|
@@ -271,6 +272,50 @@ def _serialize_policy_document(policy_document: Any) -> str:
|
|
|
271
272
|
return json.dumps(policy_document)
|
|
272
273
|
|
|
273
274
|
|
|
275
|
+
def _normalize_policy_document(policy_document: Any) -> Any:
|
|
276
|
+
if not isinstance(policy_document, str):
|
|
277
|
+
return policy_document
|
|
278
|
+
try:
|
|
279
|
+
return json.loads(unquote(policy_document))
|
|
280
|
+
except json.JSONDecodeError:
|
|
281
|
+
return json.loads(policy_document)
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
def _sync_managed_policy_document(iam_client, policy_arn: str, policy_document: Any) -> None:
|
|
285
|
+
policy = retryable_call(iam_client.get_policy, PolicyArn=policy_arn)["Policy"]
|
|
286
|
+
current_version = retryable_call(
|
|
287
|
+
iam_client.get_policy_version,
|
|
288
|
+
PolicyArn=policy_arn,
|
|
289
|
+
VersionId=policy["DefaultVersionId"],
|
|
290
|
+
)["PolicyVersion"]
|
|
291
|
+
|
|
292
|
+
current_document = _normalize_policy_document(current_version["Document"])
|
|
293
|
+
desired_document = _normalize_policy_document(policy_document)
|
|
294
|
+
if json.dumps(current_document, sort_keys=True) == json.dumps(desired_document, sort_keys=True):
|
|
295
|
+
return
|
|
296
|
+
|
|
297
|
+
versions = retryable_call(iam_client.list_policy_versions, PolicyArn=policy_arn)["Versions"]
|
|
298
|
+
nondefault_versions = sorted(
|
|
299
|
+
(version for version in versions if not version["IsDefaultVersion"]),
|
|
300
|
+
key=lambda version: version["CreateDate"],
|
|
301
|
+
)
|
|
302
|
+
if len(versions) >= 5 and nondefault_versions:
|
|
303
|
+
retryable_call(
|
|
304
|
+
iam_client.delete_policy_version,
|
|
305
|
+
PolicyArn=policy_arn,
|
|
306
|
+
VersionId=nondefault_versions[0]["VersionId"],
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
print(f"Updating policy {policy['PolicyName']}")
|
|
310
|
+
retryable_call(
|
|
311
|
+
iam_client.create_policy_version,
|
|
312
|
+
PolicyArn=policy_arn,
|
|
313
|
+
PolicyDocument=_serialize_policy_document(desired_document),
|
|
314
|
+
SetAsDefault=True,
|
|
315
|
+
)
|
|
316
|
+
time.sleep(10)
|
|
317
|
+
|
|
318
|
+
|
|
274
319
|
def ensure_lambda_policies_and_attach(
|
|
275
320
|
app: AmplifyProject,
|
|
276
321
|
function: Mapping[str, str],
|
|
@@ -318,6 +363,8 @@ def ensure_lambda_policies_and_attach(
|
|
|
318
363
|
PolicyDocument=_serialize_policy_document(policy_doc),
|
|
319
364
|
)
|
|
320
365
|
time.sleep(10)
|
|
366
|
+
else:
|
|
367
|
+
_sync_managed_policy_document(iam_client, policy_arn, policy_doc)
|
|
321
368
|
|
|
322
369
|
role_name = function["Role"].split("/")[-1]
|
|
323
370
|
attached_policies = retryable_call(
|
|
@@ -12,6 +12,7 @@ from botocore.exceptions import ClientError
|
|
|
12
12
|
import hashlib
|
|
13
13
|
import velocity
|
|
14
14
|
import velocity.db
|
|
15
|
+
from velocity.aws.ssm_config import getenv as config_getenv
|
|
15
16
|
from velocity.logging import get_logger
|
|
16
17
|
|
|
17
18
|
engine = velocity.db.postgres.initialize()
|
|
@@ -21,6 +22,13 @@ cognito_client = boto3.client("cognito-idp")
|
|
|
21
22
|
logger = get_logger("velocity.aws.handlers.context")
|
|
22
23
|
|
|
23
24
|
|
|
25
|
+
def _get_work_queue_name() -> str:
|
|
26
|
+
queue_name = str(config_getenv("SqsWorkQueue", "") or "").strip()
|
|
27
|
+
if not queue_name:
|
|
28
|
+
raise KeyError("SqsWorkQueue")
|
|
29
|
+
return queue_name
|
|
30
|
+
|
|
31
|
+
|
|
24
32
|
@engine.transaction
|
|
25
33
|
class Context:
|
|
26
34
|
|
|
@@ -372,7 +380,7 @@ class Context:
|
|
|
372
380
|
batch_id = str(uuid.uuid4())
|
|
373
381
|
results = {"batch_id": batch_id}
|
|
374
382
|
queue = boto3.resource("sqs").get_queue_by_name(
|
|
375
|
-
QueueName=
|
|
383
|
+
QueueName=_get_work_queue_name()
|
|
376
384
|
)
|
|
377
385
|
if isinstance(payload, dict):
|
|
378
386
|
payload = [payload]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/context_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/lambda_handler.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/aws/handlers/mixins/web_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/base/initializer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/mysql/operators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/postgres/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlite/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlite/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlite/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/servers/sqlserver/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_connections.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_imports.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_result.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_row.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/postgres/test_transaction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_cursor_rowcount_fix.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_postgres_unchanged.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_result_caching.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/db/tests/test_result_sql_aware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/misc/tests/test_original_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/authorizenet_adapter.py
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity/payment/authorizenet_mirror.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity_python.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/src/velocity_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_payment_authorizenet_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.47 → velocity_python-0.1.48}/tests/test_sys_modified_count_postgres_demo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|