Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
lts/*
91 changes: 69 additions & 22 deletions docs/website/docs/hub/getting-started/installation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Installation
description: Installation of dlthub package
description: Installation information of dlthub package
---

:::info Supported Python versions
Expand All @@ -11,13 +11,15 @@ dltHub currently supports Python versions 3.9-3.13.

## Quickstart

To install the `dlthub` package, run:
To install the `dlt[workspace]` package, run:

```sh
pip install dlthub
pip install "dlt[workspace]"
```

Please install a valid license before proceeding, as described under [licensing](#licensing).

This comes with the dlthub package. To use the features of dlthub, please get a valid license key before proceeding, as described under [licensing](#self-licensing).


## Setting up your environment

Expand Down Expand Up @@ -126,40 +128,85 @@ C:\> .\venv\Scripts\activate
`dlthub` will be automatically installed with workspace extra:

```sh
# install the newest dlt version or upgrade the existing version to the newest one
# install the newest dlt[workspace] version or upgrade the existing version to the newest one
uv pip install -U "dlt[workspace]"
```

Please install a valid license before proceeding, as described under [licensing](#licensing).
Please install a valid license before proceeding, as described under [licensing](#self-licensing).

## Licensing

Once you have a valid license, you can make it available to dlthub using one of the following methods:

1. **Environment variable**: set the license key as an environment variable:
## Licensing

```sh
export RUNTIME__LICENSE="eyJhbGciOiJSUz...vKSjbEc==="
```
To access dltHub’s paid features, such as Iceberg support or Python-based transformations, you need a dltHub Software License.


When you purchase a paid dltHub offering, the required license will be issued and managed automatically for your account.

2. **Secrets file**: add the license key to a `secrets.toml` file. You can use either the project-level `secrets.toml` (located in `./.dlt/secrets.toml`) or the global one (located in `~/.dlt/secrets.toml`):
You can also manually configure a license for local development or CI environments as shown below.


#### Applying your license

You can provide your license key in one of two ways:

In the `secrets.toml` file:
```toml
[runtime]
license="eyJhbGciOiJSUz...vKSjbEc==="
license = "your-dlthub-license-key"
```

3. **`dlt.yml`**: add the license key directly in the project manifest file referencing a user-defined environment variable:
As an environment variable
```bash
export DLT_LICENSE_KEY="your-dlthub-license-key"
```

#### Features requiring a license:

- [@dlt.hub.transformation](../features/transformations/index.md) - powerful Python decorator to build transformation pipelines and notebooks
- [dbt transformations](../features/transformations/dbt-transformations.md): a staging layer for data transformations, combining a local cache with schema enforcement, debugging tools, and integration with existing data workflows.
- [Iceberg support](../ecosystem/iceberg.md)
- [Secure data access and sharing](../features/data-access.md)
- [AI workflows](../features/ai.md): agents to augment your data engineering team.

```yaml
runtime:
license: { env.MY_ENV_CONTAINING_LICENSE_KEY }
For more information about the feature scopes, see [Scopes](#scopes).
Please also review our End User License Agreement [(EULA)](../EULA.md)

### Self-licensing

You can self-issue an anonymous 30-day trial license to explore dltHub’s paid features.
This trial license is intended for development, education, and CI operations only. Self-issued licenses are bound to the specific machine on which they were created. They cannot be transferred or reused on other machines, workspaces, or environments.

See the [Special Terms](../EULA.md#specific-terms-for-the-self-issued-trial-license-self-issued-trial-terms) in our EULA for more details.

#### Issue a Trial License

Choose a scope for the feature you want to test, then issue a license with:
```sh
dlt license issue <scope>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would also be nice to describe what would happen when you run this command. If I'm not mistaken:

  1. License key would be printed to the cli output
  2. License key would be put in your toml file

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added it but was not able to double check whether this is true

```
This command will:
* Print your license key in the cli output
* License key will be put into your toml file

You can verify that the license was installed correctly and is valid by running:
#### Scopes:

* `*`: All features
* `dlthub`: All dltHub features
* `dlthub.dbt_generator`: [Generate dbt packages from dlt pipelines](../features/transformations/dbt-transformations)
* `dlthub.sources.mssql`: [Change tracking for MSSQL](../ecosystem/ms-sql)
* `dlthub.project`: [Declarative yaml interface for dlt](../features/project/)
* `dlthub.transformation`: [Python-first query-agnostic data transformations](../features/transformations/)
* `dlthub.destinations.iceberg`: [Iceberg destination with full catalog support](../ecosystem/iceberg)
* `dlthub.destinations.snowflake_plus`: [Snowflake iceberg extension with Open Catalog](../ecosystem/snowflake_plus)
* `dlthub.runner`: Production pipeline runner and orchestrator support

You can self-issue multiple licenses; newly issued licenses will automatically include previously granted features.

To view your installed licenses:
```sh
$ dlt license show
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What the show command do? Verifying that you have a license? Why did you decide to remove it?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there is no show command. I mixed it up because license info shows your installed licenses

dlt license info
```

Our license terms can be found [here](../EULA.md).



23 changes: 0 additions & 23 deletions docs/website/docs/hub/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,26 +18,3 @@ iceberg with full catalog support and provides a yaml interface to define data p

To get started with dltHub, install the library using pip (Python 3.9-3.12):

```sh
pip install dlthub
```

You can try out any features by self-issuing a trial license. You can use such license for evaluation, development and testing.
Trial license are issued off-line using `dlt license` command:

1. Display a list of available features
```sh
dlt license scopes
```

2. Issue license for the feature you want to test.

```sh
dlt license issue dlthub.transformation
```

The command above will enable access to new `@dlt.hub.transformation` decorator. Note that you may
self issue licenses several times and the command above will carry-over features from previously issued license.

3. Do not forget to read our [EULA](EULA.md) and [Special Terms](EULA.md#specific-terms-for-the-self-issued-trial-license-self-issued-trial-terms)
for self issued licenses.
6 changes: 6 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ dependencies = [
"sqlglot>=25.4.0",
"pywin32>=306 ; sys_platform == 'win32'",
"rich-argparse>=1.6.0",
"npm>=0.1.1",
"nvm>=1.0.21",
"node>=1.2.2",
]

[project.optional-dependencies]
Expand Down
Loading
Loading