matrx-orm 3.1.210__tar.gz → 3.1.211__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.
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/PKG-INFO +1 -1
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/crypto.py +16 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/items.py +5 -5
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/pyproject.toml +1 -1
- matrx_orm-3.1.211/tests/test_a_sealed_field_shows_no_character_of_its_value.py +51 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/.gitignore +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/AGENTS.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/BASE_CLASS_METHODS.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/CHANGELOG.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/CLAUDE.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/MODEL_API.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/database/orm/extended/managers/ai_model_base.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/docs/migrations.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/FEATURE.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/adapters/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/adapters/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/adapters/async_postgresql.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/adapters/base_adapter.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/adapters/supabase_adapter.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/admin/FEATURE.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/admin/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/admin/router.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/api/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/api/auth.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/api/config.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/api/handlers.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/api/protocol.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/api/server.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/associations.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/cache_debug.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/catalog.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/catalog_sql.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/client/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/client/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/client/postgres_connection.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/client/postgrest.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/client/supabase_auth.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/client/supabase_config.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/client/supabase_manager.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/EXTENDED-TASK.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/FEATURE.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/TASKS.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/admin_lane.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/async_db_manager.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/base.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/config.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/connections.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/db_function.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/diagnostics.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/expressions.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/extended.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/fields.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/introspection.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/listen.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/loop_filters.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/model_dto.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/model_view.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/one_database.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/paginator.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/pool_maintenance.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/pool_watch.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/pooler_role.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/pydantic_bridge.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/read_write.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/registry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/relations.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/resilience.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/rls_session.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/session_context.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/signals.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/statement_ceiling.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/tls.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/transaction.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/types.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/write_queue.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/core/write_retry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/entity.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/error_handling.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/exceptions.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/extended/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/extended/app_error_handler.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/identity_rule.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/local_sqlite.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/matrx_orm_production_door.pth +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/middleware/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/middleware/base.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/cli.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/ddl.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/diff.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/executor.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/integration.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/loader.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/operations.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/state.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/migrations/table_filter.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/no_org_assignment.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/FEATURE.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/bulk_update_values.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/catalog_select.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/conflict.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/conflict_writes.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/create.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/db_functions.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/delete.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/dynamic_admin.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/dynamic_crud.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/graph_walk.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/latest_rows.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/queue_claim.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/read.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/relational_backfill.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/staging_load.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/operations/update.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/platform_access.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/platform_db.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/py.typed +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/pytest_live_db_guard.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/pytest_lock_guard.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/pytest_plugin.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/pytest_production_door.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/python_sql/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/python_sql/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/python_sql/db_objects.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/query/FEATURE.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/query/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/query/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/query/builder.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/query/executor.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/resources/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/resources/additional-assigners-2026-09-12.json +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/resources/org_assignment_trigger_baseline.json +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/FEATURE.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/code_handler.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/codegen_writer.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/columns.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/common.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/diff_preview.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/excluded_targets.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/generator.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/package_wiring.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/relationships.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/runner.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/schema.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/schema_manager.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/tables.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/views.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/FEATURE.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/attachments.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/backup_restore.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/host_authorization.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/model.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/mutation_receipts.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/native_enable.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/native_lifecycle.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/native_passkeys.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/native_source.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/org_service.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/org_vault_gate.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/service.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/secrets_battery/vault_history.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/coalesce.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/dag.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/errors.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/fallback.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/flush.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/lifecycle.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/managed.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/op.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/reads.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/session.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/session/telemetry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/sql_executor/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/sql_executor/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/sql_executor/executor.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/sql_executor/queries.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/sql_executor/registry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/sql_executor/types.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/sql_executor/utils.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/state.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/utils/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/utils/sql_utils.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/utils/type_converters.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/write_actor.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/scripts/git-branches.sh +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/scripts/publish.sh +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/scripts/release.sh +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/conftest.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_adapter_registry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_admin_db_columns.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_admin_response_rendering.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_admin_search_negation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_admin_search_sentinels.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_advisory_lock.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_agent_message.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_api_auth.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_api_config.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_api_handlers.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_api_protocol.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_array_agg_order_by.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_association_trigger_actor_naming.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_associations.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_associations_wiring.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_bulk_hydration_offload.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_bulk_update_by_pk.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_cache_debug.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_call_function.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_case_when.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_catalog.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_column_scoped_writes.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_committed_row_guard.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_composite_pk_filter.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_composite_pk_write_paths.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_config.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_conflict_target.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_conflict_writes.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_connection_codecs.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_connection_poison_guard.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_connection_primitives.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_count_composite_distinct.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_count_limit_param_leak.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_db_function_field.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_ddl_generator.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_deadlock_retry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_derived_table.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_dirty_tracking.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_dynamic_crud.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_exceptions.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_execute_query_integrity_mapping.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_expression_primitives.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_fields.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_fk_cycle_resolution.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_from_alias.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_fts.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_func_expression_args.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_graph_walk.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_having_annotate_alias.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_introspect_rls_policies.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_join_and_aggregate.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_latest_rows.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_listen_notify.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_local_sqlite.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_lock_contention_retry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_managed_write_guard.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_matrx_entity.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_migration_diff_types.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_migration_loader.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_model_instance.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_model_meta.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_optimistic_concurrency.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_order_by_expression.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_org_assignment_inventory.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_orm_banners_are_client_safe.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_parameter_name_hydration.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_patch_jsonb_path.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_percentile_cont.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_persisted_count.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_person_scoped_session_bypasses_shared_cache.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_pool_create_never_wedges.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_pool_holder_census.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_pool_loop_recreation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_pool_maintenance.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_postgrest_filters.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_pydantic_bridge.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_query_builder.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_query_error_detail.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_query_executor_sql.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_query_timeout.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_querybuilder_clone_semantics.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_queue_claim.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_read_connection_retry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_read_write_declared.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_registry.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_registry_multi_database.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_registry_multi_schema.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_relational_backfill.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_relations.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_resilience.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_rls_session_scope.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_schema_exists.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_session_advisory_lock.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_standalone_write_session_context.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_state_cache.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_subquery_filter_raw.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_subquery_in_filter.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_subquery_nested_expressions.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_supabase_auth.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_supabase_config.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_tls.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_transaction_database_identity.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_transaction_gucs_one_round_trip.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_transaction_pool_release_sends_nothing.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_typed_join_projection.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_typed_predicates.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_update_case_expression.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_update_subquery.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_update_with_rebase.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_upsert_default_leak.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_upsert_with_conflict.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_values_jsonb_decode.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_watched_lifecycle.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_write_queue_deadline.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level1/test_write_retry_semantics.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/MODULE_README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/conftest.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_bulk_ops.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_cache_integration.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_crud.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_foreign_keys.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_m2m.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_manager.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_migrations_live.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_query_execution.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/test_schema_diff.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/level2/verify_committed_row_guard_pg17.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/live_pooler_role.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/native_source_cases.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/native_source_oracle.rs +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project/.env.example +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project/README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project/generate.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project/generated/.gitkeep +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project/matrx_orm.yaml +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project/test_schema_generation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project_desktop/.env.example +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project_desktop/README.md +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project_desktop/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project_desktop/client_example.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project_desktop/client_example.ts +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project_desktop/client_supabase_example.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/sample_project_desktop/server.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/entity_tests.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_base_generation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_composite_pk_fk_generation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_composite_unique_generation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_dto_identity_generation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_entity_capability_generation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_enum_ordering.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_excluded_fk_targets.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_generate_schema.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_junction_analysis.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_multi_schema_output.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_schema_analysis.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_sql_expression_defaults.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_table_relationships_query.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema/test_view_generation.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema_builder/test_array_default_parsing.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema_builder/test_focused_generation_plan.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema_builder/test_host_models_aggregator.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/schema_builder/test_never_filter_columns.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/__init__.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/conftest.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_a_failed_capture_still_names_the_failure.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_cache_no_downgrade.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_capture_poison_proof.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_coalesce.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_dag.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_disk_spill_fallback.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_flush_individual_fallback.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_governed_write.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_live_db_guard_plugin.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_managed.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_op_enqueue_site.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_reads.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_record_error_bounded_insert.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_record_error_storm.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_session.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/session/test_spill_guard_plugin.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_a_backend_handed_over_mid_transaction_never_takes_our_writes.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_a_list_of_uuids_binds_as_uuid_array.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_a_read_only_backend_never_refuses_our_writes.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_array_arg_element_type.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_attachment_mutation_serialization.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_backup_alias_conflict.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_backup_history_restore.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_backup_restore_live.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_call_function_as.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_call_function_none_mode.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_composite_fk_is_not_a_column_fk.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_database_name_alias.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_db_functions.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_dsn_password_masking.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_dynamic_select_unregistered.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_immutable_insert_or_exact_verify.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_keyed_digest.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_model_cls_refactor.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_native_enable.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_native_lifecycle.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_native_lifecycle_fences.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_native_passkey_receipts.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_native_source.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_no_blocking_asyncpg_tls.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_one_database.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_order_by_desc_nulls_last.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_org_vault_gate.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_pooler_role_guard.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_secret_audit_names_its_organization.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_secrets_battery.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_secrets_minting_keys.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_shared_lock_guard.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_sql_param_casts.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_statement_ceiling_warning.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_sync_twins_guard.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_update_result_truthiness.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_user_visible_lookup.py +0 -0
- {matrx_orm-3.1.210 → matrx_orm-3.1.211}/tests/test_vault_aggregate_recovery_stateful.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: matrx-orm
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.211
|
|
4
4
|
Summary: Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching
|
|
5
5
|
Project-URL: Homepage, https://github.com/AI-Matrix-Engine/aidream-current
|
|
6
6
|
Project-URL: Repository, https://github.com/AI-Matrix-Engine/aidream-current
|
|
@@ -255,6 +255,21 @@ def mask_value(plaintext: str) -> str:
|
|
|
255
255
|
return f"{plaintext[:head_len]}…{plaintext[-head_len:]}"
|
|
256
256
|
|
|
257
257
|
|
|
258
|
+
def hint_for(handling: str | None, plaintext: str) -> str:
|
|
259
|
+
"""The ``value_hint`` a stored field may carry: ``mask_value`` for a field a person may see
|
|
260
|
+
again, and NOTHING for a ``sealed`` one.
|
|
261
|
+
|
|
262
|
+
A sealed field is a value nobody can ever read back — a connection string, an authenticator
|
|
263
|
+
seed — and its hint goes to every client that lists the item. ``postg…uire`` is eight
|
|
264
|
+
characters of a secret handed to a browser (lane VISION-REACH, verifier 2026-10-03); the
|
|
265
|
+
first and last four of a connection string are its scheme and its ``sslmode``, but the
|
|
266
|
+
rule is the class, not the sample: no character of a sealed value leaves the server.
|
|
267
|
+
"""
|
|
268
|
+
if handling == "sealed":
|
|
269
|
+
return ""
|
|
270
|
+
return mask_value(plaintext)
|
|
271
|
+
|
|
272
|
+
|
|
258
273
|
__all__ = [
|
|
259
274
|
"configure_encryption",
|
|
260
275
|
"fernet_for_key",
|
|
@@ -270,4 +285,5 @@ __all__ = [
|
|
|
270
285
|
"derive_hmac_key",
|
|
271
286
|
"keyed_digest",
|
|
272
287
|
"mask_value",
|
|
288
|
+
"hint_for",
|
|
273
289
|
]
|
|
@@ -30,7 +30,7 @@ from typing import Any
|
|
|
30
30
|
|
|
31
31
|
from matrx_orm import transaction
|
|
32
32
|
|
|
33
|
-
from .crypto import decrypt_value, encrypt_value,
|
|
33
|
+
from .crypto import decrypt_value, encrypt_value, hint_for
|
|
34
34
|
from .host_authorization import CAPABILITY_MANAGE, require_host_authorization
|
|
35
35
|
from .model import PACKAGE_DB_NAME, CredentialAttachment, CredentialItem, UserSecret, UserSecretGrant
|
|
36
36
|
from .org_service import audit_organization, record_secret_audit
|
|
@@ -739,7 +739,7 @@ async def create_credential_bundle(
|
|
|
739
739
|
field_key=spec.field_key,
|
|
740
740
|
key=spec.env_key,
|
|
741
741
|
value_encrypted=encrypt_value(spec.value),
|
|
742
|
-
value_hint=
|
|
742
|
+
value_hint=hint_for(spec.handling, spec.value),
|
|
743
743
|
handling=spec.handling,
|
|
744
744
|
editable=spec.editable,
|
|
745
745
|
inject_into_sandbox=spec.inject_into_sandbox,
|
|
@@ -1270,7 +1270,7 @@ async def add_credential_field(
|
|
|
1270
1270
|
field_key=spec.field_key,
|
|
1271
1271
|
key=spec.env_key,
|
|
1272
1272
|
value_encrypted=encrypt_value(spec.value),
|
|
1273
|
-
value_hint=
|
|
1273
|
+
value_hint=hint_for(spec.handling, spec.value),
|
|
1274
1274
|
handling=spec.handling,
|
|
1275
1275
|
editable=spec.editable,
|
|
1276
1276
|
inject_into_sandbox=spec.inject_into_sandbox,
|
|
@@ -1435,7 +1435,7 @@ async def update_credential_field_value(
|
|
|
1435
1435
|
await UserSecret.update_where(
|
|
1436
1436
|
{"id": field_id, "deleted_at__isnull": True},
|
|
1437
1437
|
value_encrypted=encrypted_value,
|
|
1438
|
-
value_hint=
|
|
1438
|
+
value_hint=hint_for(str(raw.get("handling") or ""), value),
|
|
1439
1439
|
updated_by=actor_id,
|
|
1440
1440
|
updated_at=datetime.now(UTC),
|
|
1441
1441
|
)
|
|
@@ -1512,7 +1512,7 @@ async def rotate_credential_fields(
|
|
|
1512
1512
|
await UserSecret.update_where(
|
|
1513
1513
|
{"id": str(field_raw["id"])},
|
|
1514
1514
|
value_encrypted=encrypted_value,
|
|
1515
|
-
value_hint=
|
|
1515
|
+
value_hint=hint_for(str(field_raw.get("handling") or ""), plaintext),
|
|
1516
1516
|
updated_by=actor_id,
|
|
1517
1517
|
updated_at=now,
|
|
1518
1518
|
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matrx-orm"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.211"
|
|
4
4
|
description = "Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""A SEALED FIELD'S value_hint IS EMPTY — no character of a secret reaches a client (lane VISION-REACH wave 3).
|
|
2
|
+
|
|
3
|
+
THE USE CASE: Cedar Ridge Physical Therapy connects its own Postgres to AI Matrx. The connection string
|
|
4
|
+
is a SEALED vault field (nobody can ever reveal it), yet every vault listing carried its ``value_hint`` —
|
|
5
|
+
``postg…uire`` — eight characters of the secret, to every browser that opened the item (verifier,
|
|
6
|
+
2026-10-03). The hint is the only value-derived data a field row may carry, so it is the one thing to
|
|
7
|
+
guard: sealed → nothing; anything a person may see again → the masked shape as before.
|
|
8
|
+
|
|
9
|
+
The census below reads the battery's own write paths: every ``value_hint=`` a UserSecret write sets
|
|
10
|
+
goes through ``hint_for``; a new write that reaches for ``mask_value`` directly is a new member of the
|
|
11
|
+
class and turns this red.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import re
|
|
17
|
+
from pathlib import Path
|
|
18
|
+
|
|
19
|
+
import pytest
|
|
20
|
+
|
|
21
|
+
from matrx_orm.secrets_battery import crypto
|
|
22
|
+
|
|
23
|
+
CONNECTION = "postgresql://clinic_reader:Sentinel-Pw-7f3a9c@aws-0-us-east-1.pooler.supabase.com:6543/postgres?sslmode=require"
|
|
24
|
+
TOKEN = "ghp_1234567890abcd"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
@pytest.mark.parametrize(
|
|
28
|
+
("handling", "value", "expected"),
|
|
29
|
+
[
|
|
30
|
+
("sealed", CONNECTION, ""),
|
|
31
|
+
("sealed", TOKEN, ""),
|
|
32
|
+
("revealable", TOKEN, "ghp_…abcd"),
|
|
33
|
+
("visible", "clinic_reader", "clin…ader"),
|
|
34
|
+
(None, TOKEN, "ghp_…abcd"),
|
|
35
|
+
],
|
|
36
|
+
)
|
|
37
|
+
def test_the_hint_of_a_field_is_nothing_when_sealed_and_the_mask_otherwise(handling, value, expected) -> None:
|
|
38
|
+
hint = crypto.hint_for(handling, value)
|
|
39
|
+
assert hint == expected
|
|
40
|
+
if handling == "sealed":
|
|
41
|
+
assert not any(ch in hint for ch in value if ch not in "…")
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def test_every_value_hint_the_battery_writes_goes_through_hint_for() -> None:
|
|
45
|
+
"""CENSUS (not a change detector): the class is 'a UserSecret write that sets value_hint'."""
|
|
46
|
+
source = Path(crypto.__file__).with_name("items.py").read_text()
|
|
47
|
+
# a WRITE derives the hint from a plaintext; a projection copies the row's own column back out
|
|
48
|
+
writes = [w for w in re.findall(r"value_hint=([^,\n]+)", source) if '"value_hint"' not in w]
|
|
49
|
+
assert len(writes) >= 4, f"items.py writes value_hint in fewer places than the four it had: {writes}"
|
|
50
|
+
direct = [w for w in writes if not w.startswith("hint_for(")]
|
|
51
|
+
assert direct == [], f"a value_hint written without hint_for: {direct}"
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
{matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/python_sql/table_detailed_relationships.py
RENAMED
|
File without changes
|
{matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/python_sql/table_typescript_relationship.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/resources/additional-assigners-2026-09-12.json
RENAMED
|
File without changes
|
{matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/resources/org_assignment_trigger_baseline.json
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
|
{matrx_orm-3.1.210 → matrx_orm-3.1.211}/matrx_orm/schema_builder/helpers/entity_generators.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
|