insightfactory-cli 1.0.1.dev10__tar.gz → 1.0.2__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.
- insightfactory_cli-1.0.2/LICENSE +5 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/PKG-INFO +10 -3
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/README.md +5 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/pyproject.toml +5 -3
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/http.py +5 -1
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/oauth.py +3 -2
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/uv.lock +1 -1
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/.github/workflows/ci.yml +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/.github/workflows/claude.yml +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/.github/workflows/release.yml +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/.gitignore +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/.python-version +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/AGENTS.md +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/CLAUDE.md +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/__init__.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/__main__.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/cache.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/cli.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/colour.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/__init__.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/api.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/config.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/login.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/logout.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/profiles.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/set_token.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/token.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/config.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/constants.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/main.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/runtime.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/__init__.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/cache_writer.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/conftest.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/helpers.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/servers.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_api.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_api_command.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_cache.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_cli.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_config.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_config_command.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_login.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_oauth.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_oauth_flow.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_profiles.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_programmatic_api.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_runtime.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_set_token.py +0 -0
- {insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/tests/test_token.py +0 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: insightfactory-cli
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: Profile-based authentication CLI for the InsightFactory Interfaces API
|
|
5
|
-
Project-URL: Homepage, https://
|
|
6
|
-
Project-URL: Repository, https://github.com/insightfactory-ai/insightfactory-cli
|
|
5
|
+
Project-URL: Homepage, https://insightfactory.ai
|
|
7
6
|
Author-email: "insightfactory.ai Support" <support@insightfactory.ai>
|
|
7
|
+
License-Expression: LicenseRef-Proprietary
|
|
8
|
+
License-File: LICENSE
|
|
8
9
|
Keywords: cli,insightfactory,oauth,pkce
|
|
9
10
|
Classifier: Development Status :: 5 - Production/Stable
|
|
10
11
|
Classifier: Environment :: Console
|
|
11
12
|
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: Other/Proprietary License
|
|
12
14
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
13
15
|
Classifier: Typing :: Typed
|
|
14
16
|
Requires-Python: >=3.10
|
|
@@ -308,3 +310,8 @@ genuinely diverge:
|
|
|
308
310
|
On-disk profile and token-cache paths, JSON shapes, and file permissions stay
|
|
309
311
|
compatible with the Node CLI, so you can switch implementations without
|
|
310
312
|
re-authenticating.
|
|
313
|
+
|
|
314
|
+
## Licence
|
|
315
|
+
|
|
316
|
+
Copyright 2026 insightfactory.ai. All rights reserved. This package is proprietary
|
|
317
|
+
and may be used only under a separate written agreement with insightfactory.ai.
|
|
@@ -292,3 +292,8 @@ genuinely diverge:
|
|
|
292
292
|
On-disk profile and token-cache paths, JSON shapes, and file permissions stay
|
|
293
293
|
compatible with the Node CLI, so you can switch implementations without
|
|
294
294
|
re-authenticating.
|
|
295
|
+
|
|
296
|
+
## Licence
|
|
297
|
+
|
|
298
|
+
Copyright 2026 insightfactory.ai. All rights reserved. This package is proprietary
|
|
299
|
+
and may be used only under a separate written agreement with insightfactory.ai.
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "insightfactory-cli"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.2"
|
|
4
4
|
description = "Profile-based authentication CLI for the InsightFactory Interfaces API"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
7
7
|
authors = [{ name = "insightfactory.ai Support", email = "support@insightfactory.ai" }]
|
|
8
|
+
license = "LicenseRef-Proprietary"
|
|
9
|
+
license-files = ["LICENSE"]
|
|
8
10
|
keywords = ["insightfactory", "cli", "oauth", "pkce"]
|
|
9
11
|
classifiers = [
|
|
10
12
|
"Development Status :: 5 - Production/Stable",
|
|
11
13
|
"Environment :: Console",
|
|
12
14
|
"Intended Audience :: Developers",
|
|
15
|
+
"License :: Other/Proprietary License",
|
|
13
16
|
"Programming Language :: Python :: 3 :: Only",
|
|
14
17
|
"Typing :: Typed",
|
|
15
18
|
]
|
|
@@ -18,8 +21,7 @@ classifiers = [
|
|
|
18
21
|
if-cli = "if_cli.main:main"
|
|
19
22
|
|
|
20
23
|
[project.urls]
|
|
21
|
-
Homepage = "https://
|
|
22
|
-
Repository = "https://github.com/insightfactory-ai/insightfactory-cli"
|
|
24
|
+
Homepage = "https://insightfactory.ai"
|
|
23
25
|
|
|
24
26
|
[build-system]
|
|
25
27
|
requires = ["hatchling"]
|
|
@@ -188,7 +188,11 @@ def fetch_with_timeout(
|
|
|
188
188
|
request = urllib.request.Request(url, data=data, headers=headers or {}, method=method)
|
|
189
189
|
effective_timeout = resolve_request_timeout(timeout)
|
|
190
190
|
try:
|
|
191
|
-
|
|
191
|
+
# Callers pass endpoints validated by parse_http_url or derived from a
|
|
192
|
+
# validated factory origin. file: and other local schemes are rejected.
|
|
193
|
+
with urllib.request.urlopen( # nosec B310
|
|
194
|
+
request, timeout=effective_timeout
|
|
195
|
+
) as response:
|
|
192
196
|
return HttpResponse(response.status, response.headers, response.read())
|
|
193
197
|
except urllib.error.HTTPError as error:
|
|
194
198
|
return HttpResponse(error.code, error.headers, error.read())
|
|
@@ -4,7 +4,7 @@ import base64
|
|
|
4
4
|
import hashlib
|
|
5
5
|
import json
|
|
6
6
|
import secrets
|
|
7
|
-
import subprocess
|
|
7
|
+
import subprocess # nosec B404
|
|
8
8
|
import sys
|
|
9
9
|
import time
|
|
10
10
|
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
@@ -51,7 +51,8 @@ def open_browser(url: str, launcher: str | None = None) -> None:
|
|
|
51
51
|
else:
|
|
52
52
|
command, args = "xdg-open", [url]
|
|
53
53
|
try:
|
|
54
|
-
|
|
54
|
+
# The executable is selected by platform and shell remains false.
|
|
55
|
+
subprocess.Popen( # nosec B603
|
|
55
56
|
[command, *args],
|
|
56
57
|
stdout=subprocess.DEVNULL,
|
|
57
58
|
stderr=subprocess.DEVNULL,
|
|
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
|
{insightfactory_cli-1.0.1.dev10 → insightfactory_cli-1.0.2}/src/if_cli/commands/set_token.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
|