Metadata-Version: 2.5
Name: databricks-remote-tool-bootstrap
Version: 0.1.1
Summary: Secure bootstrap launcher for the Databricks Remote Tool Host
Requires-Python: >=3.8,<3.15
Description-Content-Type: text/markdown
License-Expression: LicenseRef-Databricks
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
License-File: LICENSE.md
License-File: NOTICE.md
Requires-Dist: databricks-sdk==0.83.0
Project-URL: Repository, https://github.com/Chien-wang/chatdataagent
Import-Name: databricks_remote_tool_bootstrap

# Databricks Remote Tool Bootstrap

A small launcher that securely pairs with a deployed Databricks Builder App, verifies that App in its workspace, downloads the private Remote Tool Host wheel, validates its size, SHA-256 digest and package metadata, and runs it from a dedicated private Host environment.

The public bootstrap package does not contain the Remote Tool Host implementation, App configuration, credentials, signing keys or persistent Host identity.

## Usage

Run these two commands in PowerShell or Bash:

```text
pip install --user databricks-remote-tool-bootstrap
databricks-remote-host connect <app-url>
```

For example:

```text
pip install --user databricks-remote-tool-bootstrap
databricks-remote-host connect https://your-app.databricksapps.com
```

`pip install --user` writes the public launcher only to the current user's Python installation and does not require permission to modify a system Python under `Program Files` or another protected prefix. The Python user scripts directory must be on `PATH` so the `databricks-remote-host` command can be found.

The connect command accepts only the deployed App URL. It starts a random loopback callback and opens the exact App origin in the browser. After the user confirms the visible pairing page, the App returns a short-lived one-time ticket to that callback. Production App and workspace metadata is restricted to trusted Databricks domains, and App names are validated as canonical Databricks App identifiers before they enter an SDK API path. The launcher then authenticates with the fixed public `databricks-cli` OAuth client, requires the Workspace Apps API to return the exact App name and supplied App URL, and redeems the ticket at that same App origin. Workspace, App name, and the App's configured Host OAuth client are bound into the signed ticket and returned by the server after redemption.

After pairing, the launcher downloads and verifies the authenticated private wheel. The private Host dependencies are installed into a SHA-256-scoped environment under the current user's local application data directory on Windows or `~/.databricks-remote-tool-host` on other platforms. This environment belongs to the private Host; the public bootstrap itself is installed directly into the user's default pip environment. Existing Host state is validated before reuse and is never silently replaced.

The legacy `remote-start` and `python -m databricks_remote_tool_bootstrap` entry points remain available for existing explicit App/workspace configurations.

Python 3.8 through 3.14 is supported. Python 3.9 must be 3.9.2 or newer.

## License and support

Use is limited to connecting to Databricks Services under the included `LICENSE.md`. See `NOTICE.md` for support and attribution information.

