ChatCoolify 0.2.1__tar.gz → 0.2.3__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.
- {chatcoolify-0.2.1/src/ChatCoolify.egg-info → chatcoolify-0.2.3}/PKG-INFO +19 -3
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/README.md +17 -1
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/pyproject.toml +2 -2
- {chatcoolify-0.2.1 → chatcoolify-0.2.3/src/ChatCoolify.egg-info}/PKG-INFO +19 -3
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/ChatCoolify.egg-info/SOURCES.txt +7 -1
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/ChatCoolify.egg-info/requires.txt +1 -1
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/__init__.py +1 -1
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/config.py +2 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/platform.py +466 -66
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/platform_backend.py +46 -5
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/platform_cli.py +51 -1
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/platform_client.py +30 -2
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/platform_runtime.py +61 -4
- chatcoolify-0.2.3/src/chatcoolify/platform_web.py +293 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/tests/test_cli.py +28 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/tests/test_platform.py +86 -4
- chatcoolify-0.2.3/tests/test_platform_domains.py +290 -0
- chatcoolify-0.2.3/tests/test_platform_management.py +358 -0
- chatcoolify-0.2.3/tests/test_platform_public.py +216 -0
- chatcoolify-0.2.3/tests/test_platform_public_projection.py +82 -0
- chatcoolify-0.2.3/tests/test_public_patch_version.py +13 -0
- chatcoolify-0.2.3/tests/test_site_management.py +144 -0
- chatcoolify-0.2.1/src/chatcoolify/platform_web.py +0 -214
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/LICENSE +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/setup.cfg +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/ChatCoolify.egg-info/dependency_links.txt +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/ChatCoolify.egg-info/entry_points.txt +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/ChatCoolify.egg-info/top_level.txt +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/cli.py +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/client.py +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/platform_artifact.py +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/src/chatcoolify/platform_source.py +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/tests/test_client.py +0 -0
- {chatcoolify-0.2.1 → chatcoolify-0.2.3}/tests/test_release_contract.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ChatCoolify
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: AI-safe Python client and CLI for the official Coolify API
|
|
5
5
|
Author-email: ChatArch <1073853456@qq.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -24,7 +24,7 @@ Requires-Dist: chatstyle<0.3.0,>=0.2.0
|
|
|
24
24
|
Requires-Dist: chatlogin<0.3.0,>=0.2.1
|
|
25
25
|
Requires-Dist: click<9.0,>=8.1
|
|
26
26
|
Provides-Extra: comments
|
|
27
|
-
Requires-Dist: ChatComment<0.3.0,>=0.2.
|
|
27
|
+
Requires-Dist: ChatComment<0.3.0,>=0.2.2; extra == "comments"
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: build<2.0,>=1.2; extra == "dev"
|
|
30
30
|
Requires-Dist: pytest<10.0,>=8.0; extra == "dev"
|
|
@@ -95,6 +95,8 @@ coolify website-plan \
|
|
|
95
95
|
|
|
96
96
|
省略 `--domain` 时,计划会请求 Coolify 从已配置的泛域名池自动分配唯一 tenant URL;需要自定义域名时才显式传入 `--domain`。查看完整的 [真实 Git 到 HTTPS 演示](https://arch.gh.wzhecnu.cn/ChatCoolify/self-service-demo/)。
|
|
97
97
|
|
|
98
|
+
以上为直接原生 API 的低层命令。面向普通协作者的 `coolify platform` 使用项目名分配可读的正式/预览子域名,owner 可在“我的网站”管理页或通过 `domains set` 自定义受管前缀,并用 `domains apply` 应用到已发布网站。新项目默认公开阅读,管理登录与访客留言分离;登录、项目列表、目录上传与明确发布流程见[本地项目平台](https://arch.gh.wzhecnu.cn/ChatCoolify/platform/)。
|
|
99
|
+
|
|
98
100
|
该命令只输出官方 API payload。真正创建资源需要同时具备 `write` Token 和显式写门:
|
|
99
101
|
|
|
100
102
|
```bash
|
|
@@ -111,7 +113,7 @@ coolify --allow-write website-create ...
|
|
|
111
113
|
## 开发
|
|
112
114
|
|
|
113
115
|
```bash
|
|
114
|
-
python -m pip install -e '.[dev,docs]'
|
|
116
|
+
python -m pip install -e '.[dev,docs,comments]'
|
|
115
117
|
python -m pytest -q
|
|
116
118
|
python -m mkdocs build --strict
|
|
117
119
|
python -m build
|
|
@@ -121,3 +123,17 @@ python -m twine check dist/*
|
|
|
121
123
|
## 许可证
|
|
122
124
|
|
|
123
125
|
MIT。
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
## 签名访客的公开只读投影
|
|
129
|
+
|
|
130
|
+
公开项目可以由受信任服务显式实现 `GET` / `HEAD /api/public/catalog`、`/api/public/state` 和 `/api/public/projects/{id}`(ID 为 1–80 个 ASCII 字母、数字、下划线或连字符)。平台仍按应用和站点绑定签名,访客上下文保持 `authenticated=False`,不因签名或客户端身份声明成为已登录所有者。普通私有 API 不在访客白名单中;此扩展不改变既有评论提交协议。
|
|
131
|
+
|
|
132
|
+
后端必须独立验证准确的方法、路径/查询、正文与站点 read 权限,并生成明确允许的公开字段。不要把原始项目材料、来源连接、人工私人记录或凭据直接当成公开响应。投影路径只读;私有读取、管理写入和 CSRF 仍执行各自的认证规则。项目可见性是项目级策略,切换前同时核对预览与生产范围,不以一层登录遮罩替代后端权限。
|
|
133
|
+
|
|
134
|
+
本工作树的 `0.2.2+access.1` 是基于已发布 `0.2.2` 的私有验证构建,不是 PyPI 正式发版。
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
### Native project access management
|
|
138
|
+
|
|
139
|
+
Authenticated project owners can follow `GET /__platform/manage` to the existing console project anchor. Browser settings use the persisted project visibility for both production and preview, with an explicit public confirmation, stale-mode precondition and GET readback after saving. Ordinary reader accounts cannot manage access. This private build does not add or rename CLI commands.
|
|
@@ -56,6 +56,8 @@ coolify website-plan \
|
|
|
56
56
|
|
|
57
57
|
省略 `--domain` 时,计划会请求 Coolify 从已配置的泛域名池自动分配唯一 tenant URL;需要自定义域名时才显式传入 `--domain`。查看完整的 [真实 Git 到 HTTPS 演示](https://arch.gh.wzhecnu.cn/ChatCoolify/self-service-demo/)。
|
|
58
58
|
|
|
59
|
+
以上为直接原生 API 的低层命令。面向普通协作者的 `coolify platform` 使用项目名分配可读的正式/预览子域名,owner 可在“我的网站”管理页或通过 `domains set` 自定义受管前缀,并用 `domains apply` 应用到已发布网站。新项目默认公开阅读,管理登录与访客留言分离;登录、项目列表、目录上传与明确发布流程见[本地项目平台](https://arch.gh.wzhecnu.cn/ChatCoolify/platform/)。
|
|
60
|
+
|
|
59
61
|
该命令只输出官方 API payload。真正创建资源需要同时具备 `write` Token 和显式写门:
|
|
60
62
|
|
|
61
63
|
```bash
|
|
@@ -72,7 +74,7 @@ coolify --allow-write website-create ...
|
|
|
72
74
|
## 开发
|
|
73
75
|
|
|
74
76
|
```bash
|
|
75
|
-
python -m pip install -e '.[dev,docs]'
|
|
77
|
+
python -m pip install -e '.[dev,docs,comments]'
|
|
76
78
|
python -m pytest -q
|
|
77
79
|
python -m mkdocs build --strict
|
|
78
80
|
python -m build
|
|
@@ -82,3 +84,17 @@ python -m twine check dist/*
|
|
|
82
84
|
## 许可证
|
|
83
85
|
|
|
84
86
|
MIT。
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
## 签名访客的公开只读投影
|
|
90
|
+
|
|
91
|
+
公开项目可以由受信任服务显式实现 `GET` / `HEAD /api/public/catalog`、`/api/public/state` 和 `/api/public/projects/{id}`(ID 为 1–80 个 ASCII 字母、数字、下划线或连字符)。平台仍按应用和站点绑定签名,访客上下文保持 `authenticated=False`,不因签名或客户端身份声明成为已登录所有者。普通私有 API 不在访客白名单中;此扩展不改变既有评论提交协议。
|
|
92
|
+
|
|
93
|
+
后端必须独立验证准确的方法、路径/查询、正文与站点 read 权限,并生成明确允许的公开字段。不要把原始项目材料、来源连接、人工私人记录或凭据直接当成公开响应。投影路径只读;私有读取、管理写入和 CSRF 仍执行各自的认证规则。项目可见性是项目级策略,切换前同时核对预览与生产范围,不以一层登录遮罩替代后端权限。
|
|
94
|
+
|
|
95
|
+
本工作树的 `0.2.2+access.1` 是基于已发布 `0.2.2` 的私有验证构建,不是 PyPI 正式发版。
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
### Native project access management
|
|
99
|
+
|
|
100
|
+
Authenticated project owners can follow `GET /__platform/manage` to the existing console project anchor. Browser settings use the persisted project visibility for both production and preview, with an explicit public confirmation, stale-mode precondition and GET readback after saving. Ordinary reader accounts cannot manage access. This private build does not add or rename CLI commands.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "ChatCoolify"
|
|
7
|
-
version = "0.2.
|
|
7
|
+
version = "0.2.3"
|
|
8
8
|
description = "AI-safe Python client and CLI for the official Coolify API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -40,7 +40,7 @@ coolify = "chatcoolify.cli:main"
|
|
|
40
40
|
chatcoolify = "chatcoolify.config"
|
|
41
41
|
|
|
42
42
|
[project.optional-dependencies]
|
|
43
|
-
comments = ["ChatComment>=0.2.
|
|
43
|
+
comments = ["ChatComment>=0.2.2,<0.3.0"]
|
|
44
44
|
dev = [
|
|
45
45
|
"build>=1.2,<2.0",
|
|
46
46
|
"pytest>=8.0,<10.0",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ChatCoolify
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
4
4
|
Summary: AI-safe Python client and CLI for the official Coolify API
|
|
5
5
|
Author-email: ChatArch <1073853456@qq.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -24,7 +24,7 @@ Requires-Dist: chatstyle<0.3.0,>=0.2.0
|
|
|
24
24
|
Requires-Dist: chatlogin<0.3.0,>=0.2.1
|
|
25
25
|
Requires-Dist: click<9.0,>=8.1
|
|
26
26
|
Provides-Extra: comments
|
|
27
|
-
Requires-Dist: ChatComment<0.3.0,>=0.2.
|
|
27
|
+
Requires-Dist: ChatComment<0.3.0,>=0.2.2; extra == "comments"
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: build<2.0,>=1.2; extra == "dev"
|
|
30
30
|
Requires-Dist: pytest<10.0,>=8.0; extra == "dev"
|
|
@@ -95,6 +95,8 @@ coolify website-plan \
|
|
|
95
95
|
|
|
96
96
|
省略 `--domain` 时,计划会请求 Coolify 从已配置的泛域名池自动分配唯一 tenant URL;需要自定义域名时才显式传入 `--domain`。查看完整的 [真实 Git 到 HTTPS 演示](https://arch.gh.wzhecnu.cn/ChatCoolify/self-service-demo/)。
|
|
97
97
|
|
|
98
|
+
以上为直接原生 API 的低层命令。面向普通协作者的 `coolify platform` 使用项目名分配可读的正式/预览子域名,owner 可在“我的网站”管理页或通过 `domains set` 自定义受管前缀,并用 `domains apply` 应用到已发布网站。新项目默认公开阅读,管理登录与访客留言分离;登录、项目列表、目录上传与明确发布流程见[本地项目平台](https://arch.gh.wzhecnu.cn/ChatCoolify/platform/)。
|
|
99
|
+
|
|
98
100
|
该命令只输出官方 API payload。真正创建资源需要同时具备 `write` Token 和显式写门:
|
|
99
101
|
|
|
100
102
|
```bash
|
|
@@ -111,7 +113,7 @@ coolify --allow-write website-create ...
|
|
|
111
113
|
## 开发
|
|
112
114
|
|
|
113
115
|
```bash
|
|
114
|
-
python -m pip install -e '.[dev,docs]'
|
|
116
|
+
python -m pip install -e '.[dev,docs,comments]'
|
|
115
117
|
python -m pytest -q
|
|
116
118
|
python -m mkdocs build --strict
|
|
117
119
|
python -m build
|
|
@@ -121,3 +123,17 @@ python -m twine check dist/*
|
|
|
121
123
|
## 许可证
|
|
122
124
|
|
|
123
125
|
MIT。
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
## 签名访客的公开只读投影
|
|
129
|
+
|
|
130
|
+
公开项目可以由受信任服务显式实现 `GET` / `HEAD /api/public/catalog`、`/api/public/state` 和 `/api/public/projects/{id}`(ID 为 1–80 个 ASCII 字母、数字、下划线或连字符)。平台仍按应用和站点绑定签名,访客上下文保持 `authenticated=False`,不因签名或客户端身份声明成为已登录所有者。普通私有 API 不在访客白名单中;此扩展不改变既有评论提交协议。
|
|
131
|
+
|
|
132
|
+
后端必须独立验证准确的方法、路径/查询、正文与站点 read 权限,并生成明确允许的公开字段。不要把原始项目材料、来源连接、人工私人记录或凭据直接当成公开响应。投影路径只读;私有读取、管理写入和 CSRF 仍执行各自的认证规则。项目可见性是项目级策略,切换前同时核对预览与生产范围,不以一层登录遮罩替代后端权限。
|
|
133
|
+
|
|
134
|
+
本工作树的 `0.2.2+access.1` 是基于已发布 `0.2.2` 的私有验证构建,不是 PyPI 正式发版。
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
### Native project access management
|
|
138
|
+
|
|
139
|
+
Authenticated project owners can follow `GET /__platform/manage` to the existing console project anchor. Browser settings use the persisted project visibility for both production and preview, with an explicit public confirmation, stale-mode precondition and GET readback after saving. Ordinary reader accounts cannot manage access. This private build does not add or rename CLI commands.
|
|
@@ -22,4 +22,10 @@ src/chatcoolify/platform_web.py
|
|
|
22
22
|
tests/test_cli.py
|
|
23
23
|
tests/test_client.py
|
|
24
24
|
tests/test_platform.py
|
|
25
|
-
tests/
|
|
25
|
+
tests/test_platform_domains.py
|
|
26
|
+
tests/test_platform_management.py
|
|
27
|
+
tests/test_platform_public.py
|
|
28
|
+
tests/test_platform_public_projection.py
|
|
29
|
+
tests/test_public_patch_version.py
|
|
30
|
+
tests/test_release_contract.py
|
|
31
|
+
tests/test_site_management.py
|
|
@@ -66,6 +66,8 @@ class PlatformServerConfig(BaseEnvConfig):
|
|
|
66
66
|
COOLIFY_API_TOKEN = EnvField('COOLIFY_API_TOKEN',is_sensitive=True,desc='Server-only native Team service token')
|
|
67
67
|
CHATCOOLIFY_PLATFORM_DATA = EnvField('CHATCOOLIFY_PLATFORM_DATA',default='/data',desc='Persistent platform root')
|
|
68
68
|
CHATCOOLIFY_CONTROL_URL = EnvField('CHATCOOLIFY_CONTROL_URL',desc='Public platform HTTPS origin')
|
|
69
|
+
CHATCOOLIFY_DOMAIN_SUFFIX = EnvField('CHATCOOLIFY_DOMAIN_SUFFIX',desc='Operator-managed wildcard DNS suffix; defaults to the parent of platform.<suffix>')
|
|
70
|
+
CHATCOOLIFY_RESERVED_HOSTS = EnvField('CHATCOOLIFY_RESERVED_HOSTS',desc='Comma-separated additional operator-reserved public hostnames outside native Team inventory')
|
|
69
71
|
CHATCOOLIFY_INTERNAL_URL = EnvField('CHATCOOLIFY_INTERNAL_URL',desc='Private platform origin for frontend authorization')
|
|
70
72
|
CHATCOOLIFY_SERVER_UUID = EnvField('CHATCOOLIFY_SERVER_UUID',desc='Operator-approved native server')
|
|
71
73
|
CHATCOOLIFY_TEAM_ID = EnvField('CHATCOOLIFY_TEAM_ID',desc='Native service Team ID')
|