@tikoci/quickchr 0.4.4 → 0.4.5
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/DESIGN.md +5 -4
- package/package.json +1 -1
- package/src/lib/quickchr.ts +12 -6
package/DESIGN.md
CHANGED
|
@@ -154,10 +154,11 @@ with a layered design:
|
|
|
154
154
|
dispatches. `test-filter` narrows; `run-examples` defaults ON. Each runner boots its
|
|
155
155
|
native CHR arch — `detectAccel()` picks KVM/HVF/TCG. Agents dispatch this to ground
|
|
156
156
|
platform hypotheses without waiting for a PR cycle.
|
|
157
|
-
- **`release.yml`** — one-click release: freshness gate
|
|
158
|
-
continuously release-able) +
|
|
159
|
-
|
|
160
|
-
--provenance` (odd minor → `next`, even → `latest`).
|
|
157
|
+
- **`release.yml`** — one-click publish from committed release state: freshness gate
|
|
158
|
+
(no suite re-run — main is kept continuously release-able) + `package.json` version
|
|
159
|
+
with a matching non-empty CHANGELOG section → tag + GitHub Release + `npm publish
|
|
160
|
+
--provenance` (odd minor → `next`, even → `latest`). CI never bumps versions or pushes
|
|
161
|
+
to protected `main`.
|
|
161
162
|
- **`ros-versions.yml`** — daily: new RouterOS versions (per channel) with no linux-x86
|
|
162
163
|
record in `ci-data/tested-versions.json` ride the `routeros-targets` matrix of a
|
|
163
164
|
single integration dispatch.
|
package/package.json
CHANGED
package/src/lib/quickchr.ts
CHANGED
|
@@ -286,7 +286,14 @@ function createInstance(state: MachineState): ChrInstance {
|
|
|
286
286
|
authObj: { username: string; password?: string; basic?: string; header?: string },
|
|
287
287
|
urlSuffix = "",
|
|
288
288
|
): ServiceEndpoint => {
|
|
289
|
-
|
|
289
|
+
// Plain-first (#95): on a stock CHR the TLS services are not dialable —
|
|
290
|
+
// `www-ssl` is disabled and `api-ssl` is certificate-less (TLS alert 40) —
|
|
291
|
+
// so preferring the secure forward advertised dead endpoints. Prefer the
|
|
292
|
+
// plain forward for each service; the secure forward remains the fallback
|
|
293
|
+
// so excluded plain ports still resolve when a secure forward is available
|
|
294
|
+
// (with `tls: true`). Secure preference can return once boot provisioning
|
|
295
|
+
// installs a certificate and enables www-ssl.
|
|
296
|
+
const chosen = plainPM ?? securePM;
|
|
290
297
|
if (!chosen) {
|
|
291
298
|
return { available: false, unavailableReason: `no forwarded port for ${serviceLabel}` };
|
|
292
299
|
}
|
|
@@ -306,11 +313,10 @@ function createInstance(state: MachineState): ChrInstance {
|
|
|
306
313
|
return { available: true, ...echo, auth: authObj };
|
|
307
314
|
};
|
|
308
315
|
|
|
309
|
-
//
|
|
310
|
-
//
|
|
311
|
-
//
|
|
312
|
-
//
|
|
313
|
-
// left restUrl pointing at a port that doesn't exist.
|
|
316
|
+
// Preference order lives in buildHttpService (plain-first, #95); this also
|
|
317
|
+
// keeps the excludePorts fix: excluding "http" while keeping "https" now
|
|
318
|
+
// resolves rest-api onto the surviving secure port instead of a port that
|
|
319
|
+
// doesn't exist.
|
|
314
320
|
const restApi = buildHttpService(
|
|
315
321
|
state.ports.https,
|
|
316
322
|
state.ports.http,
|