License configuration

ubCode and the CLI application ubc are provided in 2 different licensing modes: commercial and open source.

For open source projects, that is projects that are publicly available, we grant you a free open source license. We do that because we value open source software and want to support the community.

For usage in non-public projects, a commercial license is required.

Commercial

If not already done, please request a license key from useblocks. The process for this is not yet automated, so please contact our support directly via e-mail.

To configure the license for ubCode, place a file named ubcode.toml in the following location:

For Linux:

~/.config/ubcode/ubcode.toml

For Windows:

C:\Users\<username>\AppData\Local\useblocks\ubcode\ubcode.toml

For MacOS:

~/Library/Application Support/ubcode/ubcode.toml

The file should have the following content:

[license]
key = "AAAAA-BBBBB-CCCCC-DDDDD"
user = "mail@example.com"

If you add or change the key, to let it take effect in the VS Code extension, you need to restart the server, with the command Ctrl+Shift+P and then ubCode: Restart language server.

Proxies

License activation requires an active Internet connection. System proxies are automatically detected and used by ubCode.

If that fails or cannot be done on system level, the proxy server can also be configured in a dedicated section of ubcode.toml:

[proxy]
https = "<proxy-domain-or-ip>"

Note

ubCode only supports HTTP CONNECT proxies.

Environmental variables

In the CLI, environmental variables can also set, to override the configuration in the ubcode.toml file:

  • UBCODE_LICENSE_KEY: The license key.

  • UBCODE_LICENSE_USER: The user e-mail.

  • UBCODE_HTTPS_PROXY: The proxy server.

License handling

License keys supplied by useblocks are commonly user based, which means a valid user e-mail must be provided with the license key.

For data protection, the e-mail is irreversibly obfuscated on the local user’s machine, before being sent to the license server for activation.

Caching

Online license requests are cached locally for 3 days to avoid unnecessary network traffic, faster startup times and to be able to work offline for a limited time.

The cache is stored in platform specific cache directories, e.g. for Linux under ~/.cache/ublicense/.

The directory can be safely deleted to clear the cache. Online license requests will then be repeated the next time ubCode is started. Also open source checks will be repeated.

Offline licenses

If agreed upon, useblocks can also provide offline licenses. The provided license file is configured as follows:

[license]
file = "ActivationFile.skm"
user = "mail@example.com"

If the license file is placed in the same directory as the ubcode.toml file and named “ActivationFile.skm”, it will be picked up automatically.

A user is still required for offline licenses, but the property key is not needed.

Open Source

ubCode detects whether your VS Code workspace folders are located within publicly reachable Git projects. All major Git hosting providers like GitHub, GitLab, Bitbucket, Codeberg, SourceForge etc. are supported. Submodules and nested repositories must fulfill the same conditions.

The ubc CLI application does the same, but based on paths of the analyzed projects.

Note

The test requests to the Git remotes are cached for a couple of days, so that they are not repeated unnecessarily.

Note

The requests to test this are unauthenticated and do not use proxies.

Please get in touch with us if you have any issues with this.

License terms

ubCode is proprietary software developed and owned by useblocks GmbH.

While the source code of ubCode itself is not publicly available (closed source), ubCode is offered free of charge for use in Open Source Software (OSS) projects that fulfill the following conditions:

  1. the OSS project must be licensed under an OSI-approved open source license, and

  2. the complete source code of the OSS project must be publicly available in a generally accessible Git repository (e.g. GitHub, GitLab).

Any use of ubCode in commercial environments - including but not limited to closed-source projects, commercial products, services, platforms, or internal tools - requires a separate commercial license agreement with useblocks GmbH.

Please contact us for licensing inquiries regarding commercial use.