@mriekki/project-forge 4.10.1 → 4.10.2
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.
package/assets/components.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@mriekki/project-forge",
|
|
4
|
-
"version": "4.10.
|
|
4
|
+
"version": "4.10.2",
|
|
5
5
|
"defaultProfile": "greenfield-project",
|
|
6
6
|
"profiles": {
|
|
7
7
|
"greenfield-project": {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"canonicalDescriptor": "distributions/greenfield-workspace.json"
|
|
22
22
|
},
|
|
23
23
|
"deployment": {
|
|
24
|
-
"revision": "
|
|
24
|
+
"revision": "5131dd0db9bbccda1647eee352f6bdcad7f5c112",
|
|
25
25
|
"distribution": "greenfield-project",
|
|
26
26
|
"descriptor": "assets/deployment/distribution.json",
|
|
27
27
|
"sourceRoot": "assets/generated/deployment",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 2,
|
|
3
3
|
"package": "@mriekki/project-forge",
|
|
4
|
-
"version": "4.10.
|
|
4
|
+
"version": "4.10.2",
|
|
5
5
|
"components": {
|
|
6
6
|
"core": {
|
|
7
7
|
"revision": "8796fd8dc22df8b64078e5b460e1008a8c7a5f7d",
|
|
@@ -326,7 +326,7 @@
|
|
|
326
326
|
]
|
|
327
327
|
},
|
|
328
328
|
"deployment": {
|
|
329
|
-
"revision": "
|
|
329
|
+
"revision": "5131dd0db9bbccda1647eee352f6bdcad7f5c112",
|
|
330
330
|
"distribution": "greenfield-project",
|
|
331
331
|
"files": [
|
|
332
332
|
{
|
|
@@ -412,7 +412,7 @@
|
|
|
412
412
|
{
|
|
413
413
|
"source": "src/project_forge_deployment/cloudflare_route_apply.py",
|
|
414
414
|
"destination": "tools/project-forge-deployment/project_forge_deployment/cloudflare_route_apply.py",
|
|
415
|
-
"sha256": "
|
|
415
|
+
"sha256": "9c41b4b35d15bc46e7828f0366dc53c58be47f4414e7d90dfd176ea922bf294a"
|
|
416
416
|
},
|
|
417
417
|
{
|
|
418
418
|
"source": "src/project_forge_deployment/cli.py",
|
|
@@ -113,6 +113,20 @@ def _rollback_final_state(
|
|
|
113
113
|
return errors
|
|
114
114
|
|
|
115
115
|
|
|
116
|
+
def _uncertain_recovery_error(
|
|
117
|
+
original_error: Exception,
|
|
118
|
+
recovery_error: Exception,
|
|
119
|
+
) -> DeploymentKitError:
|
|
120
|
+
return DeploymentKitError(
|
|
121
|
+
"Cloudflare public-route final verification failed, and recovery could not read "
|
|
122
|
+
"the current host/provider state. External state is uncertain and rollback was "
|
|
123
|
+
"not attempted because current ownership could not be verified safely. "
|
|
124
|
+
f"Original verification error: {original_error} "
|
|
125
|
+
f"Recovery read failed: {recovery_error} "
|
|
126
|
+
"Inspect the managed host route, tunnel configuration, and DNS record before retrying."
|
|
127
|
+
)
|
|
128
|
+
|
|
129
|
+
|
|
116
130
|
def apply_public_route(plan: dict[str, Any], *, api_token: str) -> dict[str, Any]:
|
|
117
131
|
"""Apply a reviewed public route with bounded post-write recovery.
|
|
118
132
|
|
|
@@ -140,8 +154,8 @@ def apply_public_route(plan: dict[str, Any], *, api_token: str) -> dict[str, Any
|
|
|
140
154
|
|
|
141
155
|
try:
|
|
142
156
|
state = _read_final_state(plan, api_token=api_token)
|
|
143
|
-
except Exception:
|
|
144
|
-
raise original_error
|
|
157
|
+
except Exception as recovery_error:
|
|
158
|
+
raise _uncertain_recovery_error(original_error, recovery_error) from recovery_error
|
|
145
159
|
|
|
146
160
|
route_ok = state["route"] == plan["route"]
|
|
147
161
|
config_ok = _reviewed_config_matches(state["config"], plan["desiredTunnelConfig"])
|
|
@@ -159,7 +173,9 @@ def apply_public_route(plan: dict[str, Any], *, api_token: str) -> dict[str, Any
|
|
|
159
173
|
rollback_errors = _rollback_final_state(plan, state, api_token=api_token)
|
|
160
174
|
if rollback_errors:
|
|
161
175
|
raise DeploymentKitError(
|
|
162
|
-
"Cloudflare public-route final verification failed and rollback was incomplete
|
|
176
|
+
"Cloudflare public-route final verification failed and rollback was incomplete; "
|
|
177
|
+
"external state may remain changed. "
|
|
163
178
|
+ "; ".join(rollback_errors)
|
|
179
|
+
+ " Inspect the managed host route, tunnel configuration, and DNS record before retrying."
|
|
164
180
|
) from original_error
|
|
165
181
|
raise original_error
|