keboola-cli 0.100.3__tar.gz → 0.100.4__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.
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/PKG-INFO +1 -1
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/pyproject.toml +1 -1
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/changelog.py +10 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_writeback.py +9 -1
- keboola_cli-0.100.4/tests/test_sync_push_companion_hashes.py +137 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_service.py +9 -1
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/.gitignore +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/CLAUDE.md +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/CONTRIBUTING.md +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/LICENSE +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/Makefile +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/README.md +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/examples/README.md +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/examples/storage_tui/README.md +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/formal/sync/README.md +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/plugins/kbagent/.claude-plugin/CLAUDE.md +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/plugins/kbagent/skills/kbagent-cicd-migration/scripts/migrate_cicd.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/plugins/kbagent/skills/kbagent-promotion-pipeline/scripts/generate_promotion_pipeline.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/check_cli_spec.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/check_command_sync.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/check_error_codes.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/check_file_size.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/check_release_scope.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/check_sentinel_guards.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/check_version_gates.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/check_wheel_ui.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/cli_spec_baseline.json +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/debug_linkedby_type.sh +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/file_size_baseline.json +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/gen_command_reference.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/gen_endpoint_reference.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/gen_release_notes.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/generate_changelog.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/generate_skill.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/hatch_build.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/lineage_deep.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/post-edit-quality.sh +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/pre-commit +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/release_latest.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/sync_version.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/scripts/web-dev.sh +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/__main__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/ai_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/auth_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/device.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/environment.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/models.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/pkce.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/sentinel.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/state_store.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/token_provider.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auth/totp.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/auto_update.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/_core.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/_s3_multipart.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/_transfer.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/billing.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/branches.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/configs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/editor.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/merge_requests.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/misc.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/notifications.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/query.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/queue.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/storage_files.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/storage_tables.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/stream.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/tokens.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/triggers.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/client/workspaces.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_all_projects.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_auth_picker.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_checkbox_select.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_config_clone_cmd.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_config_oauth.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_config_trash_cmd.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_config_variables_render.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_data_app_git.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_data_app_password.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_data_app_runtime.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_flow_triggers.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_helpers.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_lineage_build_output.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_lineage_tree.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_merge_request_common.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_merge_request_render.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_merge_request_writes.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_metadata_input.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_progress.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_project_create.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_project_pin.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_project_ref.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_semantic_layer_crud.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_semantic_layer_helpers.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_semantic_layer_reference_data.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_semantic_layer_scope.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_delete.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_describe.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_jobs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_snapshots.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_table_detail.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_tables_render.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_sync_clone_render.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_sync_push_render.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_url_copy.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/agent.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/auth.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/billing.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/branch.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/changelog.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/component.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/config.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/config_state.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/context.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/data_app.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/dev_portal.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/docs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/doctor.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/encrypt.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/feature.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/flow.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/http_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/init.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/job.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/kai.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/lineage.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/merge_request.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/notification.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/org.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/permissions.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/project.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/repl.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/schedule.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/search.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/semantic_layer.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/serve.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/sharing.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/storage.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/stream.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/sync.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/token.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/transformation.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/version.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/workspace.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/config_store.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/constants.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/data_science_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/dev_portal_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/effective_branch.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/errors.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/frozen_dist.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/http_base.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/json_utils.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/lib.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/manage_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/metastore_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/models.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/output.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/permissions.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/project_ref.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/py.typed +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/resources/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/resources/flow/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/resources/flow/conditional-flow-schema.json +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/resources/flow/conditional_flow_examples.jsonl +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/resources/flow/flow-schema.json +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/resources/flow/legacy_flow_examples.jsonl +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/result_models.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/scheduler_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/_serve_command_map.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/agent_runner.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/agents_store.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/app.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/auth.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/dependencies.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/pricing.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/route_permissions.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/agents.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/ai_chat.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/auth.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/billing.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/branches.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/components.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/configs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/data_apps.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/dev_portal.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/docs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/encrypt.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/feature.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/flows.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/health.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/jobs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/kai.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/lineage.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/members.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/merge_requests.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/notifications.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/org.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/permissions.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/projects.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/schedules.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/search.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/semantic_layer.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/sharing.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/storage.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/stream.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/token.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/transformation.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/routers/workspaces.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/run_broadcaster.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/server/sse.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_auth_registration.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_column_descriptions.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_config_clone.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_config_set_guard.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_config_trash.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_data_app_bodies.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_data_app_password.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_describe_batch_input.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_encryption.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_lineage_ai.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_lineage_er.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_lineage_mermaid.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_lineage_paths.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_lineage_trace.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_semantic_layer_cascade.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_semantic_layer_crud.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_semantic_layer_fqn.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_semantic_layer_internals.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_semantic_layer_lookup.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_semantic_layer_reference_data.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_semantic_layer_scope.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_storage_downloads.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_storage_jobs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_storage_tables.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_baseline.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_bindings.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_branch.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_bulk.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_clone.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_clone_warnings.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_data_app.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_models.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_project_guard.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_push_ops.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_stale.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_storage.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_workspace.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_table_detail.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_token_last_used.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_transformation_ops.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_workspace_load_plan.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/agent_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/auth_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/base.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/billing_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/branch_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/component_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/config_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/data_app_git_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/data_app_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/deep_lineage_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/dev_portal_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/docs_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/doctor_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/encrypt_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/feature_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/flow_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/flow_validation.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/http_forwarder_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/job_idempotency_store.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/job_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/kai_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/lineage_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/member_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/merge_request_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/notification_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/org_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/project_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/repo_validate_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/schedule_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/search_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/semantic_layer_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/sharing_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/snapshot_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/storage_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/stream_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/sync_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/table_usage.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/token_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/transformation_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/variables_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/version_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/workspace_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/stream_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/branch_mapping.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/branch_registry.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/branch_scope.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/clone.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/code_extraction.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/config_format.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/diff_engine.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/git_utils.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/manifest.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/naming.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/secrets.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/sync/sql_split.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/telemetry.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/update_notice.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/update_runner.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/yaml_input.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/__init__.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/conftest.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/helpers.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/snapshots/human_output/branch_merge_warning.txt +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/snapshots/human_output/config_detail_api_error.txt +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/snapshots/human_output/config_detail_panel.txt +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/snapshots/human_output/config_list_fanout_failure.txt +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/snapshots/human_output/config_list_table.txt +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/snapshots/human_output/project_remove_success.txt +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_agent_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_agent_prompt.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_agent_prompt_helper.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_agent_runner.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_agent_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_agent_tombstone.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_agents_store_events.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_ai_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_all_projects_and_warnings.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_api_call_counts.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_device.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_environment.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_models.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_picker.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_pkce.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_register_projects.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_sentinel.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_sentinel_guards.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_state_store.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auth_totp.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_auto_update.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_base_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_billing_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_billing_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_billing_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_branch_metadata_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_branch_metadata_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_branch_registry.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_branch_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_branch_zero.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_build_hook.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_changelog_check.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_changelog_render.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_check_cli_spec.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_check_command_sync.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_check_file_size.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_check_release_scope.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_check_sentinel_guards.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_check_version_gates.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_checkbox_select.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_choice_enums.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_cli_auth.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_cli_contract.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_cli_human_snapshots.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_client_device_enrollment.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_client_token_events.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_component_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_component_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_component_sync_action.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_clone_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_clone_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_create_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_create_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_encryption.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_examples.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_metadata.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_rename.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_rename_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_resolution.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_row_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_row_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_search.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_search_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_set_default_bucket.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_set_guard.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_state.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_store.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_trash.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_config_update.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_data_app_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_data_app_git_repo.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_data_app_password.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_data_app_plain_env_keys.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_data_app_secrets_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_data_app_secrets_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_data_app_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_data_app_validate_repo_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_deep_lineage_ai.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_deep_lineage_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_dev_portal_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_dev_portal_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_dev_portal_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_doc_examples.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_docs_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_doctor_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_e2e.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_e2e_auth.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_e2e_config_dir_mode.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_e2e_lineage_deep.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_effective_branch.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_encrypt_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_encrypt_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_encryption.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_error_forwarding.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_errors.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_feature_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_feature_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_file_locking.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_flow_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_flow_examples.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_flow_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_flow_validation.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_frozen_dist.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_gen_command_reference.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_gen_endpoint_reference.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_gen_release_notes.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_generate_promotion_pipeline.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_helpers.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_http_base.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_http_base_auth.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_http_client_cmd.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_http_forwarder_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_install_script.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_integration.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_job_idempotency_store.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_job_options.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_json_utils.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_kai_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_kai_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_lib.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_lib_device_enrollment.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_license_consistency.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_lineage_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_lineage_view.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_local_ai_chat.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_major_gate.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_manage_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_manage_token_bulk.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_manage_token_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_mcp_migration_recipe.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_member_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_member_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_merge_request_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_merge_request_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_merge_request_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_metastore_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_migrate_cicd.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_migration_page.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_models.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_normalize_script.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_notification_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_notification_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_notification_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_org_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_output.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_partial_failure_exit_code.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_permissions.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_permissions_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_pinned_installs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_pricing.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_project_create_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_project_edit.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_project_edit_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_project_info_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_project_info_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_project_ref.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_project_token_stdin_no_leak.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_release_kbagent_ai_kit_sync.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_release_latest.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_release_workflow_major.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_repl.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_result_models.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_run_broadcaster.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_s3_multipart.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_schedule_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_schedule_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_scheduler_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_search_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_search_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_semantic_layer_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_semantic_layer_schema.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_semantic_layer_scope.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_semantic_layer_scope_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_semantic_layer_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_serve_banner_encoding.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_serve_conversation_id.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_serve_extras_hint.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_serve_telemetry.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_serve_ui.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_active_project.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_auth.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_dry_run_guard.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_permissions.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_production_branch.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_project_ref.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_route_permissions.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_router_calls.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_semantic_layer_routes_e2e.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_server_smoke.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_services.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sharing_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sharing_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_skill_frontmatter.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sql_split.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_clone.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_create_table.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_delete.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_describe_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_describe_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_empty_definition.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_export_filters.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_files.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_import_jobs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_snapshots.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_swap.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_table_definition.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_tables.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_truncate.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_storage_write.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_stream_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_stream_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_stream_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_adopted_files.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_baseline_stamping.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_branch_mapping.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_branch_scope.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_cli_behavior.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_clone.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_clone_links.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_code_extraction.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_config_format.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_data_app_type.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_diff_engine.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_e2e.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_encrypt.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_force_pull_baseline.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_formal_counterexamples.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_manifest.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_naming.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_plaintext_audit.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_project_guard.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_pull_companion_files.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_push_encrypt_first.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_push_script_guard.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_reconcile.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_secrets.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_storage_jobs.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_version_script.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_sync_workspaces.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_table_usage.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_telemetry.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_token_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_token_provider.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_token_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_transfer_progress.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_transformation_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_transformation_ops.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_triggers_client.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_update_runner.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_url_copy.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_variables_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_variables_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_version_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_workspace_cli.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_workspace_gc.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_workspace_service.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_workspace_sql_helper.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/tests/test_yaml_input.py +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/README.md +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/index.html +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/package-lock.json +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/package.json +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/postcss.config.js +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/App.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/api/client.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/api/client.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/changelogNotes.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/changelogNotes.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/AgentRunView.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/CommandPalette.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/ConfirmModal.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/DetailTabs.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/Drawer.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/Empty.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/JsonView.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/KeyValueGrid.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/ManageTokenModal.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/PillList.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/RawDetail.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/SessionExpiredBanner.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/Table.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/components/WhatsNew.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/config/credits.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/config/credits.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/index.css +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/layout/Shell.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/layout/Sidebar.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/layout/StatusBar.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/layout/TopBar.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/lib/branch.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/lib/branch.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/lib/time.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/lib/time.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/main.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Agents.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Branches.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Changelog.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Components.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Configs.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Dashboard.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/DataApps.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Doctor.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Encrypt.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Flows.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Jobs.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/JobsAll.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Lineage.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/LocalAi.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Members.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Org.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Projects.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Schedules.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Search.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/SemanticLayer.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/SemanticLayerDialogs.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Sharing.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Storage.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Streams.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Tokens.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/TokensAll.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/Workspaces.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/jobsShared.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/jobsShared.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/storageSel.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/tokensShared.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/pages/tokensShared.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/router.test.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/router.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/state.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/theme.tsx +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/types.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/useHashSelection.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/src/whatsnew.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/tailwind.config.ts +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/tsconfig.json +0 -0
- {keboola_cli-0.100.3 → keboola_cli-0.100.4}/web/frontend/vite.config.ts +0 -0
|
@@ -26,6 +26,16 @@ from .constants import CHANGELOG_HEADLINE_MAX_CHARS
|
|
|
26
26
|
|
|
27
27
|
# Ordered newest-first. Each value is a list of brief one-line descriptions.
|
|
28
28
|
CHANGELOG: dict[str, list[str]] = {
|
|
29
|
+
"0.100.4": [
|
|
30
|
+
"Fix (#919, backport of #917): `sync push` now sends an edit to `transform.sql` or another code file "
|
|
31
|
+
"of a config that a push created. Before, it found no change in such a file "
|
|
32
|
+
"(`transform.sql`, `transform.py`, `code.py`, `pyproject.toml`, `_description.md`): "
|
|
33
|
+
"`sync diff` said in sync, `sync push` said there was nothing to push, and the job "
|
|
34
|
+
"kept running the old code. With the same gap, `sync pull --force` could "
|
|
35
|
+
"replace such an edit with the remote code; it now stops with `SYNC_CONFLICT`. An edit "
|
|
36
|
+
"to `_config.yml` was always detected. A tree written by an older version is fixed by "
|
|
37
|
+
"one `sync pull`; copy edited code files aside before it.",
|
|
38
|
+
],
|
|
29
39
|
"0.100.3": [
|
|
30
40
|
"New (#911): `project add` and `project create` also take the alias of the new project "
|
|
31
41
|
"as `--alias`, and `project refresh` also takes `--all-projects`. These are the names of "
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/services/_sync_writeback.py
RENAMED
|
@@ -61,6 +61,7 @@ def stamp_created_config(
|
|
|
61
61
|
new_id=new_id,
|
|
62
62
|
file_hash=hashes.file_hash,
|
|
63
63
|
cfg_hash=stamp.cfg_hash,
|
|
64
|
+
extra_hashes=hashes.extra_hashes,
|
|
64
65
|
)
|
|
65
66
|
apply_stamp(writeback.entry.metadata, stamp)
|
|
66
67
|
return writeback
|
|
@@ -112,6 +113,7 @@ def stamp_updated_config(
|
|
|
112
113
|
new_id=config_id,
|
|
113
114
|
file_hash=hashes.file_hash,
|
|
114
115
|
cfg_hash=stamp.cfg_hash,
|
|
116
|
+
extra_hashes=hashes.extra_hashes,
|
|
115
117
|
).entry
|
|
116
118
|
apply_stamp(entry.metadata, stamp)
|
|
117
119
|
|
|
@@ -125,6 +127,7 @@ def writeback_create_config_in_manifest(
|
|
|
125
127
|
new_id: str,
|
|
126
128
|
file_hash: str,
|
|
127
129
|
cfg_hash: str,
|
|
130
|
+
extra_hashes: dict[str, str],
|
|
128
131
|
) -> WritebackResult:
|
|
129
132
|
"""Record a freshly-created config in the manifest.
|
|
130
133
|
|
|
@@ -154,13 +157,18 @@ def writeback_create_config_in_manifest(
|
|
|
154
157
|
entry.id = new_id
|
|
155
158
|
entry.metadata["pull_hash"] = file_hash
|
|
156
159
|
entry.metadata["pull_config_hash"] = cfg_hash
|
|
160
|
+
entry.metadata["pull_extra_hashes"] = extra_hashes
|
|
157
161
|
return WritebackResult(entry=entry, previous_id=previous_id)
|
|
158
162
|
new_entry = ManifestConfiguration(
|
|
159
163
|
branchId=target_branch,
|
|
160
164
|
componentId=component_id,
|
|
161
165
|
id=new_id,
|
|
162
166
|
path=config_path_str,
|
|
163
|
-
metadata={
|
|
167
|
+
metadata={
|
|
168
|
+
"pull_hash": file_hash,
|
|
169
|
+
"pull_config_hash": cfg_hash,
|
|
170
|
+
"pull_extra_hashes": extra_hashes,
|
|
171
|
+
},
|
|
164
172
|
)
|
|
165
173
|
manifest.configurations.append(new_entry)
|
|
166
174
|
return WritebackResult(entry=new_entry, previous_id="")
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"""A config CREATED by `sync push` must track its companion code files.
|
|
2
|
+
|
|
3
|
+
`sync pull` records a hash for every companion file (`transform.sql`,
|
|
4
|
+
`code.py`, ...) under `pull_extra_hashes`; diff reads an edit to one of them
|
|
5
|
+
only through that record. The create path recorded `_config.yml` alone, so
|
|
6
|
+
after a push that created a config, a later edit to its SQL diffed as
|
|
7
|
+
"unchanged" and the next push sent nothing -- exit 0, the job kept running the
|
|
8
|
+
old code. Reported by a customer on a dev-branch loop (author in `main/`,
|
|
9
|
+
`sync push --branch <dev>`, edit `transform.sql`, push again).
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
|
|
16
|
+
import pytest
|
|
17
|
+
|
|
18
|
+
import test_sync_formal_counterexamples as formal
|
|
19
|
+
from test_sync_formal_counterexamples import DEV, PROD, World
|
|
20
|
+
|
|
21
|
+
TRANSFORMATION = "keboola.snowflake-transformation"
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@pytest.fixture
|
|
25
|
+
def world(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> World:
|
|
26
|
+
"""A sync world whose fake remote lists configs under a SQL transformation."""
|
|
27
|
+
monkeypatch.setattr(formal, "COMP", TRANSFORMATION)
|
|
28
|
+
w = World(tmp_path)
|
|
29
|
+
return w
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _author_transformation(root: Path) -> Path:
|
|
33
|
+
"""Write a new, untracked transformation under main/ (no config id yet)."""
|
|
34
|
+
config_dir = root / "main" / "transformation" / TRANSFORMATION / "orders-model"
|
|
35
|
+
config_dir.mkdir(parents=True)
|
|
36
|
+
(config_dir / "_config.yml").write_text(
|
|
37
|
+
"version: 2\nname: orders-model\ndescription: ''\nparameters: {}\n"
|
|
38
|
+
f"_keboola:\n component_id: {TRANSFORMATION}\n"
|
|
39
|
+
)
|
|
40
|
+
(config_dir / "transform.sql").write_text("SELECT 1 FROM VALUES (1);\n")
|
|
41
|
+
return config_dir
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def _edit_sql(config_dir: Path) -> None:
|
|
45
|
+
sql = config_dir / "transform.sql"
|
|
46
|
+
sql.write_text(sql.read_text().replace("VALUES", "VALUEZ"))
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def _remote_sql(world: World, branch: int, config_id: str) -> str:
|
|
50
|
+
blocks = world.api.remote[branch][config_id]["configuration"]["parameters"]["blocks"]
|
|
51
|
+
return "".join(s for b in blocks for c in b["codes"] for s in c["script"])
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def test_sql_edit_after_create_on_default_branch_is_pushed(world: World) -> None:
|
|
55
|
+
world.init()
|
|
56
|
+
world.pull()
|
|
57
|
+
config_dir = _author_transformation(world.root)
|
|
58
|
+
assert world.push().get("created", 0) == 1
|
|
59
|
+
(config_id,) = world.api.ids(PROD)
|
|
60
|
+
|
|
61
|
+
_edit_sql(config_dir)
|
|
62
|
+
|
|
63
|
+
assert world.diff()["summary"]["modified"] == 1
|
|
64
|
+
assert world.push().get("updated", 0) == 1
|
|
65
|
+
assert "VALUEZ" in _remote_sql(world, PROD, config_id)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def test_sql_edit_after_promote_create_to_dev_branch_is_pushed(world: World) -> None:
|
|
69
|
+
"""The customer's loop: author in main/, push to a dev branch, edit, push."""
|
|
70
|
+
world.init()
|
|
71
|
+
world.pull()
|
|
72
|
+
config_dir = _author_transformation(world.root)
|
|
73
|
+
assert world.push(branch=DEV).get("created", 0) == 1
|
|
74
|
+
(config_id,) = world.api.ids(DEV)
|
|
75
|
+
|
|
76
|
+
_edit_sql(config_dir)
|
|
77
|
+
|
|
78
|
+
assert world.diff(branch=DEV)["summary"]["modified"] == 1
|
|
79
|
+
second = world.push(branch=DEV)
|
|
80
|
+
assert second.get("updated", 0) == 1
|
|
81
|
+
assert second.get("created", 0) == 0
|
|
82
|
+
assert "VALUEZ" in _remote_sql(world, DEV, config_id)
|
|
83
|
+
assert world.api.ids(PROD) == []
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def test_sql_edit_after_promoting_a_pulled_config_is_pushed(world: World) -> None:
|
|
87
|
+
"""A production config promoted to a dev branch gets a NEW dev entry."""
|
|
88
|
+
world.api.put(
|
|
89
|
+
PROD,
|
|
90
|
+
"cfg-1",
|
|
91
|
+
"Orders",
|
|
92
|
+
"a",
|
|
93
|
+
extra={"blocks": [{"name": "B", "codes": [{"name": "C", "script": ["SELECT 1;"]}]}]},
|
|
94
|
+
)
|
|
95
|
+
world.init()
|
|
96
|
+
world.pull()
|
|
97
|
+
world.push(branch=DEV)
|
|
98
|
+
(dev_id,) = world.api.ids(DEV)
|
|
99
|
+
sql = world.config_dir("orders") / "transform.sql"
|
|
100
|
+
sql.write_text(sql.read_text().replace("SELECT 1", "SELECT 2"))
|
|
101
|
+
|
|
102
|
+
assert world.diff(branch=DEV)["summary"]["modified"] == 1
|
|
103
|
+
assert world.push(branch=DEV).get("updated", 0) == 1
|
|
104
|
+
assert "SELECT 2" in _remote_sql(world, DEV, dev_id)
|
|
105
|
+
assert "SELECT 1" in _remote_sql(world, PROD, "cfg-1")
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def test_unedited_config_stays_clean_after_create(world: World) -> None:
|
|
109
|
+
"""Recording the companion hashes must not turn a clean tree dirty."""
|
|
110
|
+
world.init()
|
|
111
|
+
world.pull()
|
|
112
|
+
_author_transformation(world.root)
|
|
113
|
+
world.push(branch=DEV)
|
|
114
|
+
|
|
115
|
+
summary = world.diff(branch=DEV)["summary"]
|
|
116
|
+
assert summary["modified"] == 0
|
|
117
|
+
assert summary["added"] == 0
|
|
118
|
+
assert world.push(branch=DEV).get("updated", 0) == 0
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def test_force_pull_does_not_overwrite_sql_edit_after_create(world: World) -> None:
|
|
122
|
+
"""Without the companion hashes, pull read an edited `transform.sql` as
|
|
123
|
+
untouched and `--force` replaced it with the remote code once the config
|
|
124
|
+
changed remotely (here: renamed in the UI). It is now a conflict."""
|
|
125
|
+
from keboola_agent_cli.errors import SyncConflictError
|
|
126
|
+
|
|
127
|
+
world.init()
|
|
128
|
+
world.pull()
|
|
129
|
+
config_dir = _author_transformation(world.root)
|
|
130
|
+
world.push()
|
|
131
|
+
(config_id,) = world.api.ids(PROD)
|
|
132
|
+
_edit_sql(config_dir)
|
|
133
|
+
world.api.remote[PROD][config_id]["name"] = "renamed in the UI"
|
|
134
|
+
|
|
135
|
+
with pytest.raises(SyncConflictError):
|
|
136
|
+
world.pull(force=True)
|
|
137
|
+
assert "VALUEZ" in (config_dir / "transform.sql").read_text()
|
|
@@ -3194,6 +3194,7 @@ class TestFreshCreateWriteback:
|
|
|
3194
3194
|
new_id="123456789",
|
|
3195
3195
|
file_hash="abc123",
|
|
3196
3196
|
cfg_hash="def456",
|
|
3197
|
+
extra_hashes={"transform.sql": "sql789"},
|
|
3197
3198
|
)
|
|
3198
3199
|
|
|
3199
3200
|
entry = writeback.entry
|
|
@@ -3205,6 +3206,7 @@ class TestFreshCreateWriteback:
|
|
|
3205
3206
|
assert entry.branch_id == 12345
|
|
3206
3207
|
assert entry.metadata["pull_hash"] == "abc123"
|
|
3207
3208
|
assert entry.metadata["pull_config_hash"] == "def456"
|
|
3209
|
+
assert entry.metadata["pull_extra_hashes"] == {"transform.sql": "sql789"}
|
|
3208
3210
|
assert entry.metadata["KBC.configuration.folderName"] == "FI Pipeline", (
|
|
3209
3211
|
"user-declared KBC.* metadata must survive the writeback"
|
|
3210
3212
|
)
|
|
@@ -3238,6 +3240,7 @@ class TestFreshCreateWriteback:
|
|
|
3238
3240
|
new_id="dev-id-002",
|
|
3239
3241
|
file_hash="h1",
|
|
3240
3242
|
cfg_hash="h2",
|
|
3243
|
+
extra_hashes={},
|
|
3241
3244
|
)
|
|
3242
3245
|
|
|
3243
3246
|
entry = writeback.entry
|
|
@@ -3269,6 +3272,7 @@ class TestFreshCreateWriteback:
|
|
|
3269
3272
|
new_id="999",
|
|
3270
3273
|
file_hash="h1",
|
|
3271
3274
|
cfg_hash="h2",
|
|
3275
|
+
extra_hashes={},
|
|
3272
3276
|
)
|
|
3273
3277
|
|
|
3274
3278
|
entry = writeback.entry
|
|
@@ -3276,7 +3280,11 @@ class TestFreshCreateWriteback:
|
|
|
3276
3280
|
assert len(manifest.configurations) == 1
|
|
3277
3281
|
assert manifest.configurations[0] is entry
|
|
3278
3282
|
assert entry.id == "999"
|
|
3279
|
-
assert entry.metadata == {
|
|
3283
|
+
assert entry.metadata == {
|
|
3284
|
+
"pull_hash": "h1",
|
|
3285
|
+
"pull_config_hash": "h2",
|
|
3286
|
+
"pull_extra_hashes": {},
|
|
3287
|
+
}
|
|
3280
3288
|
|
|
3281
3289
|
def test_propagate_kbc_metadata_calls_set_config_metadata(self, tmp_config_dir: Path) -> None:
|
|
3282
3290
|
"""KBC.* keys are POSTed via client.set_config_metadata; bookkeeping
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_checkbox_select.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_config_clone_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_config_trash_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_data_app_password.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_data_app_runtime.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_flow_triggers.py
RENAMED
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_lineage_build_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_merge_request_common.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_merge_request_render.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_merge_request_writes.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_metadata_input.py
RENAMED
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_project_create.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_semantic_layer_crud.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_semantic_layer_scope.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_delete.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_describe.py
RENAMED
|
File without changes
|
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_snapshots.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_table_detail.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_storage_tables_render.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_sync_clone_render.py
RENAMED
|
File without changes
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/_sync_push_render.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
|
{keboola_cli-0.100.3 → keboola_cli-0.100.4}/src/keboola_agent_cli/commands/semantic_layer.py
RENAMED
|
File without changes
|