@norskvideo/ctl-dev-kit 0.2.20 → 0.2.22

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.
@@ -76,9 +76,25 @@ On 2026-10-02 a reuters tier and a commentary tier each `compose up`ed
76
76
  older text here and in the reap steps that names a fixed 14321 is stale. Two
77
77
  concurrent runs of the SAME product that both `product add --image` still
78
78
  collide on the name.
79
- - Still banded, and still able to collide: the daemon's nginx proxy host port
80
- (`daemon+3`), which is published on the host. Docker-assigned proxy ports are
81
- in progress.
79
+ - The daemon's port and its nginx proxy's host port are assigned by the system
80
+ when the ctl under test advertises the `ephemeral-ports` daemon capability
81
+ (`norsk-ctl capabilities`, or `daemonCapabilities` in `/api/health`). The
82
+ harness then starts the daemon with `NORSK_CTL_PORT=0` and `init --proxy-port
83
+ 0`: the kernel picks the daemon's port, docker picks the proxy's host port
84
+ (nginx listens on 443 inside the container), and the daemon publishes both as
85
+ `<store>/daemon.port` and `<store>/proxy.port` (also `/api/proxy/status`).
86
+ Neither can collide. `runProductSmoke`, `runDemo`, `demo check --export-only`
87
+ and the dev-loop do this on their own. A `ProductHarness` you construct does
88
+ it only with `ephemeralPorts: true`, because your harness most likely keeps
89
+ its own `demoPorts(slug)` copy: switch every daemon/proxy port you read to
90
+ `harness.ports` (or `session.proxyBase`) first, then turn it on.
91
+ - Against a ctl without the capability (the released `latest` until it catches
92
+ up) both stay on the slug's band (`daemon`, `daemon+3`), exactly as before,
93
+ and can still collide.
94
+ - Still banded either way: the studio host port a launch publishes
95
+ (`daemon+2`, and `daemon+3+n` for further launches), and the dev backend's
96
+ port (bound inside the runner container, so not shared). In `direct` reach
97
+ mode with `--internal-only` the studio port is not published at all.
82
98
 
83
99
  ## Reaching an image product's control plane
84
100
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/ctl-dev-kit",
3
- "version": "0.2.20",
3
+ "version": "0.2.22",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./create-product": "./create-product/create-product.ts",
@@ -35,7 +35,7 @@
35
35
  },
36
36
  "devDependencies": {
37
37
  "@norskvideo/ctl-oas-to-ts": "^0.1.0",
38
- "@norskvideo/norsk-sdk": "1.3.1-2026-09-30-acca6a9d",
38
+ "@norskvideo/norsk-sdk": "1.3.1-2026-10-01-e9467b05",
39
39
  "@norskvideo/norsk-studio": "1.30.0-2026-09-28-b92e8139",
40
40
  "@norskvideo/norsk-studio-builder": "1.30.0-2026-09-28-b92e8139",
41
41
  "@norskvideo/norsk-studio-built-ins": "1.30.0-2026-09-28-b92e8139",