databricks-tellr-app 0.4.3.dev12__tar.gz → 0.4.3.dev13__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.
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/PKG-INFO +1 -1
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/databricks_tellr_app.egg-info/PKG-INFO +1 -1
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/pyproject.toml +1 -1
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/main.py +9 -1
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/chat.py +0 -12
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/encryption.py +54 -32
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/encryption_key.py +6 -2
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/README.md +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/databricks_tellr_app/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/databricks_tellr_app/run.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/databricks_tellr_app.egg-info/SOURCES.txt +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/databricks_tellr_app.egg-info/requires.txt +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/databricks_tellr_app.egg-info/top_level.txt +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/setup.cfg +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/setup.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/_otel_bootstrap.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/fixtures/tour_demo_deck.json +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/mcp_auth.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/mcp_server.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/middleware/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/middleware/csrf.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/middleware/request_logging.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/middleware/security_headers.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/_authz.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/admin.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/admin_usage.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/deck_contributors.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/export.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/google_slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/images.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/local_version.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/profiles.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/sessions.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/settings/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/settings/contributors.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/settings/deck_prompts.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/settings/design_systems.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/settings/identities.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/settings/slide_styles.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/setup.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/tools.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/tour.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/verification.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/version.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/requests.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/responses.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/settings/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/settings/requests.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/settings/responses.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/streaming.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/chat_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/export_job_queue.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/feedback_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/job_queue.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/session_manager.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/session_naming.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/usage_events.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/usage_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/utils/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/utils/validation.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/config_loader.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/context_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/database.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/databricks_client.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/init_default_profile.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/lakebase.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/migrate_profiles_to_agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/mlflow_agent_spans.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/mlflow_tracing.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/otel_logging.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/permission_context.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/prompt_modules.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/settings_db.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/user_context.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/deck_contributor.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/design_system.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/genie_space.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/google_global_credentials.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/google_oauth_token.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/identity.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/image.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/profile.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/profile_contributor.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/prompts.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/request_log.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/session.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/slide_deck_prompt.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/slide_style_library.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/usage_event.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/user_preference.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/types.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/domain/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/domain/slide.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/domain/slide_deck.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/agent.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/agent_factory.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/config_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/config_validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/converter_jail/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/converter_jail/ast_guard.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/converter_jail/codeprep.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/converter_jail/gslides_runner.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/converter_jail/jail.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/converter_jail/pptx_runner.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/converter_jail/protocol.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/design_system_compiler.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/design_system_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/design_system_templates.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/drive_uploader.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/evaluation/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/evaluation/llm_judge.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/genie_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/google_slides_auth.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/google_slides_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/html_to_google_slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/html_to_pptx.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/identity_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/identity_providers/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/identity_providers/account_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/identity_providers/local_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/identity_providers/workspace_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/image_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/image_tools.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/permission_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/pptx_from_html_huashu.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/pptx_from_records.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/pptx_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/profile_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/streaming_callback.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/agent_bricks_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/ds_asset_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/genie_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/mcp_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/model_endpoint_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/vector_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/css_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/ds_asset_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/error_handling.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/html_safety.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/html_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/image_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/js_validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/logging_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/pi_filter.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/slide_hash.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/spotlight.py +0 -0
- {databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/text_caps.py +0 -0
|
@@ -489,11 +489,19 @@ logger.info("MCP server mounted at /mcp")
|
|
|
489
489
|
|
|
490
490
|
@app.get("/api/health")
|
|
491
491
|
async def health():
|
|
492
|
-
"""Health check endpoint.
|
|
492
|
+
"""Health check endpoint.
|
|
493
|
+
|
|
494
|
+
``encryption_key_source`` is load-bearing for deployment: ``tellr.update``
|
|
495
|
+
polls it to confirm a relocated app is reading the secret before it deletes
|
|
496
|
+
the Lakebase key row. Reports the source only — never the key.
|
|
497
|
+
"""
|
|
498
|
+
from src.core.encryption import key_source
|
|
499
|
+
|
|
493
500
|
return {
|
|
494
501
|
"status": "healthy",
|
|
495
502
|
"environment": ENVIRONMENT,
|
|
496
503
|
"version": "0.3.0",
|
|
504
|
+
"encryption_key_source": key_source(),
|
|
497
505
|
}
|
|
498
506
|
|
|
499
507
|
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/chat.py
RENAMED
|
@@ -543,18 +543,6 @@ async def send_message_streaming(
|
|
|
543
543
|
)
|
|
544
544
|
|
|
545
545
|
|
|
546
|
-
@router.get("/health")
|
|
547
|
-
async def health_check():
|
|
548
|
-
"""Health check endpoint.
|
|
549
|
-
|
|
550
|
-
Returns:
|
|
551
|
-
Status information
|
|
552
|
-
"""
|
|
553
|
-
return {
|
|
554
|
-
"status": "healthy",
|
|
555
|
-
"service": "AI Slide Generator",
|
|
556
|
-
}
|
|
557
|
-
|
|
558
546
|
|
|
559
547
|
@router.post("/chat/async")
|
|
560
548
|
async def submit_chat_async(
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/encryption.py
RENAMED
|
@@ -1,34 +1,16 @@
|
|
|
1
1
|
"""Fernet symmetric encryption for sensitive data (OAuth credentials, tokens).
|
|
2
2
|
|
|
3
3
|
Uses AES-128-CBC with HMAC-SHA256 authentication via the ``cryptography``
|
|
4
|
-
library. The master key
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
2. If absent, seed from the ``GOOGLE_OAUTH_ENCRYPTION_KEY`` env var (the
|
|
15
|
-
UI-button upgrade net — see below), else a legacy ``.encryption_key`` file
|
|
16
|
-
in the project root (local dev — keeps pre-existing dev ciphertext
|
|
17
|
-
decryptable), else generate a fresh key. See ``_seed_value``.
|
|
18
|
-
3. ``INSERT ... ON CONFLICT (id) DO NOTHING`` + read-back, so concurrent
|
|
19
|
-
workers/replicas converge on one key.
|
|
20
|
-
|
|
21
|
-
The supported upgrade path is ``tellr.update`` / ``deploy_local``, which — run
|
|
22
|
-
as the deploying human — reads the legacy ``GOOGLE_OAUTH_ENCRYPTION_KEY`` from
|
|
23
|
-
the existing app.yaml, seeds it into this table, and writes a keyless app.yaml
|
|
24
|
-
(SDR-4437 remediation, PR-3). As a safety net for a stray Databricks Apps UI
|
|
25
|
-
"Deploy" button upgrade — which bypasses the tool and reuses the old,
|
|
26
|
-
still-key-bearing app.yaml — ``_seed_value`` reads that same
|
|
27
|
-
``GOOGLE_OAUTH_ENCRYPTION_KEY`` env var (Apps injects every app.yaml ``env:``
|
|
28
|
-
entry into the process environment) so the booting app re-seeds the table from
|
|
29
|
-
the injected key instead of fresh-generating one and orphaning existing
|
|
30
|
-
ciphertext. Because resolution is SELECT-first, the env var is consulted only
|
|
31
|
-
while the table is empty; after any successful migration the stored row wins.
|
|
4
|
+
library. The master key comes from one of two places, selected at boot:
|
|
5
|
+
|
|
6
|
+
1. **Secret-backed (opt-in).** When the deploy tool has attached a Databricks
|
|
7
|
+
Apps secret resource, the platform injects ``TELLR_ENCRYPTION_KEY`` into the
|
|
8
|
+
environment and that value is the key. This path never touches the database.
|
|
9
|
+
See docs/superpowers/specs/2026-08-20-secret-backed-fernet-key-design.md.
|
|
10
|
+
2. **Lakebase-backed (default, unchanged).** The key lives in the
|
|
11
|
+
``encryption_keys`` table of the application database (SDR-4437 CRITICAL-3):
|
|
12
|
+
dynamic, persistent across restarts/restores, unique per deployment, zero
|
|
13
|
+
operator setup.
|
|
32
14
|
"""
|
|
33
15
|
|
|
34
16
|
import logging
|
|
@@ -75,7 +57,7 @@ def _validated(key: bytes) -> bytes:
|
|
|
75
57
|
def _seed_value() -> bytes:
|
|
76
58
|
"""Pick the value to seed an empty encryption_keys table with.
|
|
77
59
|
|
|
78
|
-
Priority (SELECT-first in
|
|
60
|
+
Priority (SELECT-first in _from_lakebase means this runs only when
|
|
79
61
|
the table is empty):
|
|
80
62
|
1. GOOGLE_OAUTH_ENCRYPTION_KEY env var — the safety net for a stray
|
|
81
63
|
Databricks Apps UI "Deploy" button upgrade of an un-migrated app
|
|
@@ -100,12 +82,44 @@ def _seed_value() -> bytes:
|
|
|
100
82
|
return Fernet.generate_key()
|
|
101
83
|
|
|
102
84
|
|
|
103
|
-
|
|
104
|
-
|
|
85
|
+
_SECRET_ENV_VAR = "TELLR_ENCRYPTION_KEY"
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def key_source() -> str:
|
|
89
|
+
"""Report where the master key comes from, without reading the key itself.
|
|
90
|
+
|
|
91
|
+
Consumed by /api/health so the deploy tool can confirm a relocated app is
|
|
92
|
+
actually reading the secret before it deletes the Lakebase row.
|
|
93
|
+
"""
|
|
94
|
+
return "secret" if os.getenv(_SECRET_ENV_VAR, "").strip() else "lakebase"
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
def _from_secret() -> bytes:
|
|
98
|
+
"""Return the Fernet key injected by the Apps secret resource.
|
|
99
|
+
|
|
100
|
+
Deliberately touches no database: a secret-mode app's encryption_keys table
|
|
101
|
+
is empty by construction, and writing to it would defeat the whole point.
|
|
102
|
+
"""
|
|
103
|
+
raw = os.getenv(_SECRET_ENV_VAR, "").strip()
|
|
104
|
+
try:
|
|
105
|
+
Fernet(raw.encode())
|
|
106
|
+
except (ValueError, TypeError) as exc:
|
|
107
|
+
raise RuntimeError(
|
|
108
|
+
f"{_SECRET_ENV_VAR} is not a valid Fernet key — refusing to start. "
|
|
109
|
+
f"Check the value stored in the secret backing the "
|
|
110
|
+
f"{_SECRET_ENV_VAR} app resource."
|
|
111
|
+
) from exc
|
|
112
|
+
logger.info("Encryption key loaded from the %s secret resource", _SECRET_ENV_VAR)
|
|
113
|
+
return raw.encode()
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def _from_lakebase() -> bytes:
|
|
105
117
|
"""Return the Fernet master key from the encryption_keys table (id=1)."""
|
|
106
118
|
from src.core.database import get_db_session
|
|
107
119
|
|
|
108
|
-
# 1. Read-first
|
|
120
|
+
# 1. Read-first: check for an existing row before seeding so concurrent
|
|
121
|
+
# workers never mint two different keys (INSERT … ON CONFLICT DO NOTHING
|
|
122
|
+
# is still safe against the race, but this avoids the seed call entirely).
|
|
109
123
|
with get_db_session() as session:
|
|
110
124
|
row = session.execute(_SELECT_KEY).first()
|
|
111
125
|
if row and row[0]:
|
|
@@ -125,6 +139,14 @@ def get_encryption_key() -> bytes:
|
|
|
125
139
|
return _validated(row[0].encode())
|
|
126
140
|
|
|
127
141
|
|
|
142
|
+
@lru_cache(maxsize=1)
|
|
143
|
+
def get_encryption_key() -> bytes:
|
|
144
|
+
"""Return the Fernet master key, from the secret resource or Lakebase."""
|
|
145
|
+
if os.getenv(_SECRET_ENV_VAR, "").strip():
|
|
146
|
+
return _from_secret()
|
|
147
|
+
return _from_lakebase()
|
|
148
|
+
|
|
149
|
+
|
|
128
150
|
def ensure_encryption_key() -> None:
|
|
129
151
|
"""Pre-fork boot hook: load/seed the key before uvicorn workers fork.
|
|
130
152
|
|
|
@@ -4,8 +4,12 @@ Holds the Fernet master key for OAuth credential/token encryption in the
|
|
|
4
4
|
ACL-governed Lakebase data schema instead of app.yaml. Single-row table
|
|
5
5
|
(id = 1). Deliberately shares the data schema's grants: the key carries
|
|
6
6
|
the same ACLs as the ciphertext it protects — an explicitly accepted risk
|
|
7
|
-
in the SDR-4437 remediation
|
|
8
|
-
|
|
7
|
+
in the SDR-4437 remediation. Do NOT add key-specific grant tightening here.
|
|
8
|
+
|
|
9
|
+
Deployments that need the key out of Lakebase entirely can opt into the
|
|
10
|
+
secret-backed path instead, in which case this table stays empty and the key
|
|
11
|
+
lives in a Databricks secret injected as TELLR_ENCRYPTION_KEY. See
|
|
12
|
+
docs/superpowers/specs/2026-08-20-secret-backed-fernet-key-design.md.
|
|
9
13
|
"""
|
|
10
14
|
|
|
11
15
|
from sqlalchemy import Column, DateTime, Integer, Text
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/databricks_tellr_app/run.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
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/_otel_bootstrap.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/middleware/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/middleware/csrf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/_authz.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/admin.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/admin_usage.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/agent_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/export.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/feedback.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/images.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/profiles.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/sessions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/setup.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/slides.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/tools.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/tour.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/verification.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/routes/version.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/feedback.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/requests.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/responses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/schemas/streaming.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/services/job_queue.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/utils/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/api/utils/validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/config_loader.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/context_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/databricks_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/mlflow_agent_spans.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/mlflow_tracing.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/otel_logging.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/permission_context.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/prompt_modules.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/settings_db.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/core/user_context.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/__init__.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
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/image.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/profile.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/prompts.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/database/models/session.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/domain/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/domain/slide_deck.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/agent_factory.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/config_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
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/drive_uploader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/genie_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/html_to_pptx.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/image_service.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/image_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/tools/mcp_tool.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/services/validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/css_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/ds_asset_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/error_handling.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/html_safety.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/html_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/image_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/js_validator.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/logging_config.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/pi_filter.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/slide_hash.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/spotlight.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev12 → databricks_tellr_app-0.4.3.dev13}/src/utils/text_caps.py
RENAMED
|
File without changes
|