topicgate 1.1.4.2__tar.gz → 1.2.2__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.
- {topicgate-1.1.4.2/src/topicgate.egg-info → topicgate-1.2.2}/PKG-INFO +16 -4
- {topicgate-1.1.4.2 → topicgate-1.2.2}/README.md +1 -3
- {topicgate-1.1.4.2 → topicgate-1.2.2}/pyproject.toml +29 -1
- {topicgate-1.1.4.2 → topicgate-1.2.2/src/topicgate.egg-info}/PKG-INFO +16 -4
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate.egg-info/SOURCES.txt +1 -0
- topicgate-1.2.2/tests/test_github_workflows.py +18 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/LICENCE +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/setup.cfg +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/__main__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/app_dependencies.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/broker_runtime_state.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/models/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/models/broker_snapshot.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/models/mcp_setup.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/broker_profile_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/broker_resolver.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/broker_snapshot_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/control_operation_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/mcp_setup_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/observation_cache_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/observation_retention_policy_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/persistence_lifecycle.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/service_container.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/service_item.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/topicgate_runtime.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/assets/icon.png +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/assets/icon.svg +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/config/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/config/app_config.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/config/mqtt_config.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/interfaces/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/interfaces/broker_profile_store.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/interfaces/mqtt_message_processor.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/interfaces/observer_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/interfaces/topic_message_store.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/broker_profile.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/broker_profile_identity.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/broker_summary.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/connection_status.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/message_filter.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/mqtt_message.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/mqtt_observation.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/mqtt_state.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/observation_cache_administration.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/observation_deletion_preview.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/observation_retention_policy.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/observer_model.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/observer_workspace.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/subscription.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/topic_message.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/mqtt_topics.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/observer_limits.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/payload_limits.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/app.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/broker_state_reader.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/about_dialog.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/add_subscription_dialog.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/application_header.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/broker_settings_dialog.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/connection_controls.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/connection_status.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/log_console.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/mcp_setup_dialog.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/observer_tree.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/onboarding_panel.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/publish_pane.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/snapshot_panel.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/stored_observations_dialog.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/subscription_settings.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/topic_details.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/topic_metadata.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/workspace_pane.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/gui.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/main_view_model.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/main_window.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/observer_state_reader.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/settings_migration.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/theme.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/credentials/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/credentials/credential_store.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/credentials/os_credential_store.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/README +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/env.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/script.py.mako +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/versions/7c3e9f1a2b4d_add_observation_retention_policy.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/versions/93fa5748f4b5_initial_revision.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/versions/b84d61a9c2e7_rename_retention_database_bytes.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/versions/d2a4c6e8f010_add_control_operation_lease.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/versions/f1490ca3b908_persist_latest_observed_mqtt_state.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic.ini +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/base.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/database_context.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/broker_profile_mapper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/config_mapper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/mapper_helper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/observation_retention_policy_mapper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/observer_workspace_mapper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/subscription_mapper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/topic_message_mapper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/migrations.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/app_config_row.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/broker_profile_row.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/mqtt_config_row.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/mqtt_message_row.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/observation_retention_policy_row.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/observer_workspace_row.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/subscription_row.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/async_callback_bridge.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/callbacks/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/callbacks/basic_callbacks.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/callbacks/observer_repository_callbacks.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/mqtt_callbacks.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/mqtt_client.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/mqtt_gate.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/repository/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/repository/broker_config_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/repository/broker_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/repository/observation_retention_policy_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/repository/observer_mqtt_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/repository/subscription_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/repository/topic_message_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/broker_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/connection_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/dashboard_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/dashboard_snapshot.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/mcp_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/preview/dashboard_preview.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/publish_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/snapshot_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/subscription_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/api/topic_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/capabilities.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/instructions.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/middleware/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/middleware/error_handling_middleware.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/middleware/logging_middleware.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/models.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/server.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/paths.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/presentation/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/presentation/retention_presentation.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/presentation/snapshot_presentation.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/presentation/topic_presentation.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/processors/__init__.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/processors/observation_retention_processor.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/processors/observer_model_mqtt_message_processor.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/processors/observer_model_processor.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/processors/subscription_manager.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate.egg-info/dependency_links.txt +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate.egg-info/entry_points.txt +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate.egg-info/requires.txt +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate.egg-info/top_level.txt +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_app.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_app_dependencies.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_async_callback_bridge.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_broker_config_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_broker_repository_persistence.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_broker_resolver.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_broker_snapshot_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_control_operation_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_dashboard_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_dashboard_dependencies.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_dashboard_preview.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_database_migrations.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_desktop_snapshot_states.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_gui.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_main_view_model.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_mcp_apis.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_mcp_disconnected_startup.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_mcp_middleware.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_mcp_server_instructions.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_mcp_setup_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_migrate_app_versions.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_mqtt_callbacks.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_mqtt_client.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_mqtt_message_row.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observation_cache_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observation_retention_policy.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observation_retention_policy_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observation_retention_policy_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observer_model_hydration.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observer_model_processor.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observer_model_service.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observer_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_observer_workspace_mapper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_os_credential_store.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_paths.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_persistence_lifecycle.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_plugin_bundle.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_retention_administration.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_service_container.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_settings_migration.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_snapshot_mcp_api.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_snapshot_presentation.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_subscription.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_subscription_manager.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_subscription_mapper.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_subscription_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_topic_message_repository.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_topic_presentation.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_topicgate_runtime.py +0 -0
- {topicgate-1.1.4.2 → topicgate-1.2.2}/tests/test_verify_distribution.py +0 -0
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: topicgate
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.2
|
|
4
4
|
Summary: Secure local access to your MQTT topics
|
|
5
5
|
License-Expression: MIT
|
|
6
|
+
Project-URL: Repository, https://github.com/Dumdart/TopicGate
|
|
7
|
+
Project-URL: Documentation, https://github.com/Dumdart/TopicGate/tree/main/docs
|
|
8
|
+
Project-URL: Issue Tracker, https://github.com/Dumdart/TopicGate/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/Dumdart/TopicGate/releases
|
|
10
|
+
Keywords: mqtt,iot,mcp,model-context-protocol,ai-agent,ai,desktop,windows,automation
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: Information Technology
|
|
14
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Topic :: Home Automation
|
|
17
|
+
Classifier: Topic :: Internet
|
|
18
|
+
Classifier: Topic :: Software Development
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
6
20
|
Requires-Python: >=3.11
|
|
7
21
|
Description-Content-Type: text/markdown
|
|
8
22
|
License-File: LICENCE
|
|
@@ -63,18 +77,16 @@ TopicGate supports exact MQTT paths and the standard `+` and `#` wildcard filter
|
|
|
63
77
|
TopicGate requires Python 3.11+ and access to an MQTT 5-compatible broker. Install the released package with uv:
|
|
64
78
|
|
|
65
79
|
> [!IMPORTANT]
|
|
66
|
-
> **Windows is the only validated platform today
|
|
80
|
+
> **TopicGate is currently a Windows-first developer preview.** Windows is the only validated platform today. The macOS and Linux paths, desktop behaviour, and credential-store integrations have not been tested end to end. TopicGate uses `keyring` for the operating-system credential store; those integrations have not yet been tested across platforms.
|
|
67
81
|
|
|
68
82
|
```powershell
|
|
69
83
|
uv tool install topicgate
|
|
70
|
-
topicgate-gui
|
|
71
84
|
```
|
|
72
85
|
|
|
73
86
|
Alternatively, install it with pip:
|
|
74
87
|
|
|
75
88
|
```powershell
|
|
76
89
|
python -m pip install topicgate
|
|
77
|
-
topicgate-gui
|
|
78
90
|
```
|
|
79
91
|
|
|
80
92
|
For upgrades, uninstallation, backups, and recovery, see [Installation recovery and upgrades](docs/install/UPGRADE_AND_RECOVERY.md).
|
|
@@ -39,18 +39,16 @@ TopicGate supports exact MQTT paths and the standard `+` and `#` wildcard filter
|
|
|
39
39
|
TopicGate requires Python 3.11+ and access to an MQTT 5-compatible broker. Install the released package with uv:
|
|
40
40
|
|
|
41
41
|
> [!IMPORTANT]
|
|
42
|
-
> **Windows is the only validated platform today
|
|
42
|
+
> **TopicGate is currently a Windows-first developer preview.** Windows is the only validated platform today. The macOS and Linux paths, desktop behaviour, and credential-store integrations have not been tested end to end. TopicGate uses `keyring` for the operating-system credential store; those integrations have not yet been tested across platforms.
|
|
43
43
|
|
|
44
44
|
```powershell
|
|
45
45
|
uv tool install topicgate
|
|
46
|
-
topicgate-gui
|
|
47
46
|
```
|
|
48
47
|
|
|
49
48
|
Alternatively, install it with pip:
|
|
50
49
|
|
|
51
50
|
```powershell
|
|
52
51
|
python -m pip install topicgate
|
|
53
|
-
topicgate-gui
|
|
54
52
|
```
|
|
55
53
|
|
|
56
54
|
For upgrades, uninstallation, backups, and recovery, see [Installation recovery and upgrades](docs/install/UPGRADE_AND_RECOVERY.md).
|
|
@@ -4,11 +4,33 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "topicgate"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.2.2"
|
|
8
8
|
description = "Secure local access to your MQTT topics"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
11
11
|
requires-python = ">=3.11"
|
|
12
|
+
keywords = [
|
|
13
|
+
"mqtt",
|
|
14
|
+
"iot",
|
|
15
|
+
"mcp",
|
|
16
|
+
"model-context-protocol",
|
|
17
|
+
"ai-agent",
|
|
18
|
+
"ai",
|
|
19
|
+
"desktop",
|
|
20
|
+
"windows",
|
|
21
|
+
"automation",
|
|
22
|
+
]
|
|
23
|
+
classifiers = [
|
|
24
|
+
"Development Status :: 4 - Beta",
|
|
25
|
+
"Intended Audience :: Developers",
|
|
26
|
+
"Intended Audience :: Information Technology",
|
|
27
|
+
"Operating System :: Microsoft :: Windows",
|
|
28
|
+
"Programming Language :: Python :: 3.11",
|
|
29
|
+
"Topic :: Home Automation",
|
|
30
|
+
"Topic :: Internet",
|
|
31
|
+
"Topic :: Software Development",
|
|
32
|
+
"Topic :: Software Development :: Libraries :: Python Modules",
|
|
33
|
+
]
|
|
12
34
|
dependencies = [
|
|
13
35
|
"paho-mqtt",
|
|
14
36
|
"pyside6",
|
|
@@ -19,6 +41,12 @@ dependencies = [
|
|
|
19
41
|
"fastmcp==3.4.7",
|
|
20
42
|
]
|
|
21
43
|
|
|
44
|
+
[project.urls]
|
|
45
|
+
Repository = "https://github.com/Dumdart/TopicGate"
|
|
46
|
+
Documentation = "https://github.com/Dumdart/TopicGate/tree/main/docs"
|
|
47
|
+
"Issue Tracker" = "https://github.com/Dumdart/TopicGate/issues"
|
|
48
|
+
Changelog = "https://github.com/Dumdart/TopicGate/releases"
|
|
49
|
+
|
|
22
50
|
[project.optional-dependencies]
|
|
23
51
|
apps = [
|
|
24
52
|
"fastmcp[apps]==3.4.7",
|
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: topicgate
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2.2
|
|
4
4
|
Summary: Secure local access to your MQTT topics
|
|
5
5
|
License-Expression: MIT
|
|
6
|
+
Project-URL: Repository, https://github.com/Dumdart/TopicGate
|
|
7
|
+
Project-URL: Documentation, https://github.com/Dumdart/TopicGate/tree/main/docs
|
|
8
|
+
Project-URL: Issue Tracker, https://github.com/Dumdart/TopicGate/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/Dumdart/TopicGate/releases
|
|
10
|
+
Keywords: mqtt,iot,mcp,model-context-protocol,ai-agent,ai,desktop,windows,automation
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: Information Technology
|
|
14
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Topic :: Home Automation
|
|
17
|
+
Classifier: Topic :: Internet
|
|
18
|
+
Classifier: Topic :: Software Development
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
6
20
|
Requires-Python: >=3.11
|
|
7
21
|
Description-Content-Type: text/markdown
|
|
8
22
|
License-File: LICENCE
|
|
@@ -63,18 +77,16 @@ TopicGate supports exact MQTT paths and the standard `+` and `#` wildcard filter
|
|
|
63
77
|
TopicGate requires Python 3.11+ and access to an MQTT 5-compatible broker. Install the released package with uv:
|
|
64
78
|
|
|
65
79
|
> [!IMPORTANT]
|
|
66
|
-
> **Windows is the only validated platform today
|
|
80
|
+
> **TopicGate is currently a Windows-first developer preview.** Windows is the only validated platform today. The macOS and Linux paths, desktop behaviour, and credential-store integrations have not been tested end to end. TopicGate uses `keyring` for the operating-system credential store; those integrations have not yet been tested across platforms.
|
|
67
81
|
|
|
68
82
|
```powershell
|
|
69
83
|
uv tool install topicgate
|
|
70
|
-
topicgate-gui
|
|
71
84
|
```
|
|
72
85
|
|
|
73
86
|
Alternatively, install it with pip:
|
|
74
87
|
|
|
75
88
|
```powershell
|
|
76
89
|
python -m pip install topicgate
|
|
77
|
-
topicgate-gui
|
|
78
90
|
```
|
|
79
91
|
|
|
80
92
|
For upgrades, uninstallation, backups, and recovery, see [Installation recovery and upgrades](docs/install/UPGRADE_AND_RECOVERY.md).
|
|
@@ -171,6 +171,7 @@ tests/test_dashboard_dependencies.py
|
|
|
171
171
|
tests/test_dashboard_preview.py
|
|
172
172
|
tests/test_database_migrations.py
|
|
173
173
|
tests/test_desktop_snapshot_states.py
|
|
174
|
+
tests/test_github_workflows.py
|
|
174
175
|
tests/test_gui.py
|
|
175
176
|
tests/test_main_view_model.py
|
|
176
177
|
tests/test_mcp_apis.py
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
from pathlib import Path
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
WORKFLOWS = Path(".github/workflows")
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def test_workflows_only_use_repository_owned_actions() -> None:
|
|
8
|
+
external_actions: list[str] = []
|
|
9
|
+
|
|
10
|
+
for workflow in WORKFLOWS.glob("*.y*ml"):
|
|
11
|
+
for line_number, line in enumerate(workflow.read_text().splitlines(), start=1):
|
|
12
|
+
value = line.strip().removeprefix("- ").strip()
|
|
13
|
+
if value.startswith("uses:"):
|
|
14
|
+
action = value.removeprefix("uses:").strip()
|
|
15
|
+
if not action.startswith(("./", "Dumdart/")):
|
|
16
|
+
external_actions.append(f"{workflow}:{line_number}: {action}")
|
|
17
|
+
|
|
18
|
+
assert external_actions == []
|
|
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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/control_operation_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/app/services/observation_cache_service.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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/interfaces/mqtt_message_processor.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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/observation_cache_administration.py
RENAMED
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/observation_deletion_preview.py
RENAMED
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/core/models/observation_retention_policy.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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/add_subscription_dialog.py
RENAMED
|
File without changes
|
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/broker_settings_dialog.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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/gui/components/stored_observations_dialog.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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/credentials/credential_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/alembic/script.py.mako
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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/database_context.py
RENAMED
|
File without changes
|
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/config_mapper.py
RENAMED
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/mappers/mapper_helper.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/__init__.py
RENAMED
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/database/models/app_config_row.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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/async_callback_bridge.py
RENAMED
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/callbacks/__init__.py
RENAMED
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/mqtt/callbacks/basic_callbacks.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/infrastructure/repository/broker_repository.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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/mcp/middleware/error_handling_middleware.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
|
{topicgate-1.1.4.2 → topicgate-1.2.2}/src/topicgate/processors/observation_retention_processor.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
|
|
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
|