licentivo-launch 0.1.1__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.
- licentivo_launch-0.1.1/LICENSE +21 -0
- licentivo_launch-0.1.1/PKG-INFO +66 -0
- licentivo_launch-0.1.1/README.md +31 -0
- licentivo_launch-0.1.1/pyproject.toml +23 -0
- licentivo_launch-0.1.1/setup.cfg +4 -0
- licentivo_launch-0.1.1/src/licentivo_launch/__init__.py +5 -0
- licentivo_launch-0.1.1/src/licentivo_launch/_vendor/LICENSE +21 -0
- licentivo_launch-0.1.1/src/licentivo_launch/_vendor/NOTICE +17 -0
- licentivo_launch-0.1.1/src/licentivo_launch/_vendor/VERSION +1 -0
- licentivo_launch-0.1.1/src/licentivo_launch/_vendor/__init__.py +1 -0
- licentivo_launch-0.1.1/src/licentivo_launch/_vendor/licentivo.py +440 -0
- licentivo_launch-0.1.1/src/licentivo_launch/_vendor/licentivo_tasks.py +110 -0
- licentivo_launch-0.1.1/src/licentivo_launch/client.py +359 -0
- licentivo_launch-0.1.1/src/licentivo_launch.egg-info/PKG-INFO +66 -0
- licentivo_launch-0.1.1/src/licentivo_launch.egg-info/SOURCES.txt +18 -0
- licentivo_launch-0.1.1/src/licentivo_launch.egg-info/dependency_links.txt +1 -0
- licentivo_launch-0.1.1/src/licentivo_launch.egg-info/requires.txt +1 -0
- licentivo_launch-0.1.1/src/licentivo_launch.egg-info/top_level.txt +1 -0
- licentivo_launch-0.1.1/tests/test_client.py +148 -0
- licentivo_launch-0.1.1/tests/test_runtime.py +169 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Licentivo Launch contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: licentivo-launch
|
|
3
|
+
Version: 0.1.1
|
|
4
|
+
Summary: Merchant account and official Licentivo runtime lifecycle integration
|
|
5
|
+
License: MIT License
|
|
6
|
+
|
|
7
|
+
Copyright (c) 2026 Licentivo Launch contributors
|
|
8
|
+
|
|
9
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
10
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
11
|
+
in the Software without restriction, including without limitation the rights
|
|
12
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
13
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
14
|
+
furnished to do so, subject to the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be included in all
|
|
17
|
+
copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
+
SOFTWARE.
|
|
26
|
+
|
|
27
|
+
Project-URL: Homepage, https://github.com/spf86/licentivo-launch-sdk
|
|
28
|
+
Project-URL: Documentation, https://github.com/spf86/licentivo-launch-sdk/blob/main/docs/manual-integration.md
|
|
29
|
+
Project-URL: Issues, https://github.com/spf86/licentivo-launch-sdk/issues
|
|
30
|
+
Requires-Python: >=3.10
|
|
31
|
+
Description-Content-Type: text/markdown
|
|
32
|
+
License-File: LICENSE
|
|
33
|
+
Requires-Dist: cryptography<49,>=44.0.1
|
|
34
|
+
Dynamic: license-file
|
|
35
|
+
|
|
36
|
+
# Launch Python 0.1.1
|
|
37
|
+
|
|
38
|
+
Python 3.10+. Install only Launch:
|
|
39
|
+
|
|
40
|
+
```sh
|
|
41
|
+
python -m pip install ./licentivo_launch-0.1.1-py3-none-any.whl
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
From source use python -m pip install ./sdk/python. The wheel embeds SDK 0.11.0 and its default adapter; pip resolves the ordinary cryptography dependency. No separate licentivo-sdk installation or PYTHONPATH entry is needed.
|
|
45
|
+
|
|
46
|
+
## Direct initialization and manual lifecycle
|
|
47
|
+
|
|
48
|
+
Application.connect(merchant_origin, launch_product_id, licentivo_product_id, trusted_keys, environment="live", **options) is the direct API. Launch provides the filled connect_launch function. It uses public parameters in memory, not files.
|
|
49
|
+
|
|
50
|
+
```python
|
|
51
|
+
with connect_launch() as app:
|
|
52
|
+
app.login(email, password)
|
|
53
|
+
result = app.run_feature("export", export_report)
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
restore() returns False if there is no session; failed/denied restoration is not success. logout(), release_device() and close() have distinct roles. WindowsDPAPIStore can be supplied explicitly to connect(..., store=...). Keep network operations off the desktop UI thread. Application accepts protected Store implementations for other platforms.
|
|
57
|
+
|
|
58
|
+
Launch automatically supplies the current merchant URL, existing product mapping and signing public keys when you select the software in its integration page. Copy its connection function, or use the values already shown there when writing code manually. Do not ask the integrator to type two internal product IDs. No launch-config.json or product.json file is required. The merchant URL is mandatory; the official licensing origin is fixed inside the package to https://www.licentivo.com.
|
|
59
|
+
|
|
60
|
+
The connection function initializes an application; it does not authorize business work. Login obtains only the signed-in customer's credential. Restore checks account expiry, identity, product and environment. Put every protected operation inside the feature guard. Do not substitute merchant order state or a locally saved boolean for the SDK's signed checks.
|
|
61
|
+
|
|
62
|
+
Normal close stops the runtime. Logout clears local account/cache state and follows this package's remote-session contract. Device release is a separate explicit operation, and failure must be reported. Sessions default to memory. Remembered login needs a protected store; never persist merchant passwords. Scope private SDK cache directories by origin, product, environment and account, and exclude them from installers and logs. Session encryption does not encrypt every official SDK device file.
|
|
63
|
+
|
|
64
|
+
Only transport failures or HTTP 5xx may attempt an existing cryptographically verified offline grant. Explicit 401/403/404, session/account mismatch, expiration or suspension deny access without offline fallback. Pending retries are finite and honor Retry-After; cancellation and rate limiting never authorize work. First activation and mandatory-online policies retain their network requirements.
|
|
65
|
+
|
|
66
|
+
Manual development is supported without AI. The combined source bundle includes docs/manual-integration.md with all nine language flows, secure storage, error handling and acceptance procedures. Local package/runtime checks are distinct from external payment and licensing acceptance. Check the current publication status at https://github.com/spf86/licentivo-launch-sdk/blob/main/docs/registry-status.json before using public registry installation commands.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Launch Python 0.1.1
|
|
2
|
+
|
|
3
|
+
Python 3.10+. Install only Launch:
|
|
4
|
+
|
|
5
|
+
```sh
|
|
6
|
+
python -m pip install ./licentivo_launch-0.1.1-py3-none-any.whl
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
From source use python -m pip install ./sdk/python. The wheel embeds SDK 0.11.0 and its default adapter; pip resolves the ordinary cryptography dependency. No separate licentivo-sdk installation or PYTHONPATH entry is needed.
|
|
10
|
+
|
|
11
|
+
## Direct initialization and manual lifecycle
|
|
12
|
+
|
|
13
|
+
Application.connect(merchant_origin, launch_product_id, licentivo_product_id, trusted_keys, environment="live", **options) is the direct API. Launch provides the filled connect_launch function. It uses public parameters in memory, not files.
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
with connect_launch() as app:
|
|
17
|
+
app.login(email, password)
|
|
18
|
+
result = app.run_feature("export", export_report)
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
restore() returns False if there is no session; failed/denied restoration is not success. logout(), release_device() and close() have distinct roles. WindowsDPAPIStore can be supplied explicitly to connect(..., store=...). Keep network operations off the desktop UI thread. Application accepts protected Store implementations for other platforms.
|
|
22
|
+
|
|
23
|
+
Launch automatically supplies the current merchant URL, existing product mapping and signing public keys when you select the software in its integration page. Copy its connection function, or use the values already shown there when writing code manually. Do not ask the integrator to type two internal product IDs. No launch-config.json or product.json file is required. The merchant URL is mandatory; the official licensing origin is fixed inside the package to https://www.licentivo.com.
|
|
24
|
+
|
|
25
|
+
The connection function initializes an application; it does not authorize business work. Login obtains only the signed-in customer's credential. Restore checks account expiry, identity, product and environment. Put every protected operation inside the feature guard. Do not substitute merchant order state or a locally saved boolean for the SDK's signed checks.
|
|
26
|
+
|
|
27
|
+
Normal close stops the runtime. Logout clears local account/cache state and follows this package's remote-session contract. Device release is a separate explicit operation, and failure must be reported. Sessions default to memory. Remembered login needs a protected store; never persist merchant passwords. Scope private SDK cache directories by origin, product, environment and account, and exclude them from installers and logs. Session encryption does not encrypt every official SDK device file.
|
|
28
|
+
|
|
29
|
+
Only transport failures or HTTP 5xx may attempt an existing cryptographically verified offline grant. Explicit 401/403/404, session/account mismatch, expiration or suspension deny access without offline fallback. Pending retries are finite and honor Retry-After; cancellation and rate limiting never authorize work. First activation and mandatory-online policies retain their network requirements.
|
|
30
|
+
|
|
31
|
+
Manual development is supported without AI. The combined source bundle includes docs/manual-integration.md with all nine language flows, secure storage, error handling and acceptance procedures. Local package/runtime checks are distinct from external payment and licensing acceptance. Check the current publication status at https://github.com/spf86/licentivo-launch-sdk/blob/main/docs/registry-status.json before using public registry installation commands.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=68", "wheel"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "licentivo-launch"
|
|
7
|
+
version = "0.1.1"
|
|
8
|
+
description = "Merchant account and official Licentivo runtime lifecycle integration"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = {file = "LICENSE"}
|
|
12
|
+
dependencies = ["cryptography>=44.0.1,<49"]
|
|
13
|
+
|
|
14
|
+
[project.urls]
|
|
15
|
+
Homepage = "https://github.com/spf86/licentivo-launch-sdk"
|
|
16
|
+
Documentation = "https://github.com/spf86/licentivo-launch-sdk/blob/main/docs/manual-integration.md"
|
|
17
|
+
Issues = "https://github.com/spf86/licentivo-launch-sdk/issues"
|
|
18
|
+
|
|
19
|
+
[tool.setuptools.packages.find]
|
|
20
|
+
where = ["src"]
|
|
21
|
+
|
|
22
|
+
[tool.setuptools.package-data]
|
|
23
|
+
"licentivo_launch._vendor" = ["LICENSE", "NOTICE", "VERSION"]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 spf86 and Licentivo contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
Licentivo client SDKs
|
|
2
|
+
Copyright (c) 2026 spf86 and Licentivo contributors
|
|
3
|
+
Project: https://github.com/spf86/licentivo-sdk
|
|
4
|
+
|
|
5
|
+
The MIT license applies to the Licentivo client SDK code, examples and
|
|
6
|
+
installation tools. The licensing server and administration application are
|
|
7
|
+
separate software and are not included in this SDK distribution.
|
|
8
|
+
|
|
9
|
+
Bundled third-party source retains its original license:
|
|
10
|
+
- cJSON: see sdk/c/vendor/cJSON-LICENSE (or c/vendor/cJSON-LICENSE).
|
|
11
|
+
- Monocypher and its Ed25519 extension: see
|
|
12
|
+
sdk/c/vendor/Monocypher-LICENCE.md (or c/vendor/Monocypher-LICENCE.md).
|
|
13
|
+
Native packages include these files in the licenses directory.
|
|
14
|
+
|
|
15
|
+
External dependencies such as libcurl, OpenSSL, cryptography, undici and
|
|
16
|
+
BouncyCastle retain their own licenses. Their installation is handled by
|
|
17
|
+
the corresponding package manager or the target system.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.11.0
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Private, pinned Licentivo SDK implementation."""
|