Skip to content

K2GO-427 feat(cx-core): deploy the core in the box (pdsm + systemd) + dash-node relay - #678

Merged
luisguzman-adfa merged 4 commits into
mainfrom
feat/K2GO-427-cx-core-deploy
Oct 22, 2026
Merged

luisguzman-adfa merged 4 commits into
mainfrom
feat/K2GO-427-cx-core-deploy

Conversation

@luisguzman-adfa

Copy link
Copy Markdown
Collaborator

Deploy the content-exchange core (merged in #675) so it RUNS in the box on both
environments and is reachable, per controller/docs/ADR-content-exchange.md (D1d).

What it adds:

  • Ansible role cx_core: installs static/cx-core and registers a launch wrapper: a
    PDSM service under proot (K2Go), a systemd unit on systemd hosts (IIAB), chosen by
    is_proot. Writes cx_core_install / cx_core_installed. Health-checks GET /v1/apps.
  • PDSM wrapper (static/pdsm/cx-core) + systemd unit template. The core code is
    identical across environments; only the supervisor differs.
  • Bake: iiab-android runs runrole cx_core; build-iiab-rootfs.sh asserts the core
    and its PDSM service are present.
  • dash-node: thin relay forwarding /v1/* to 127.0.0.1:9500 (app -> dash-node ->
    core, D1b). dash-node 1.4.3 -> 1.5.0 (package.json + CHANGELOG).

Enables the IIAB path (IIAB Console integration is IIAB's own work). Not in this PR:
the live self-update (D1d) and the APK content-manager UI.

Verification: dash-node tests pass (incl. cx-proxy.test.ts); role mirrors the
code_assets pattern.

New PDSM wrapper (static/pdsm/cx-core) and cx_core Ansible role: PDSM under proot, a systemd unit otherwise, chosen by is_proot; health on GET /v1/apps; writes the install/installed IIAB flags like the code_assets role. The iiab-android bootstrap installs cx-core next to dash-node (the K2Go bake driver); the rootfs-builder asserts the source and the PDSM service baked.
Thin Node-core proxy forwards /v1/* (GET and POST, including the streamed GET /v1/export/item) to the in-box cx-core service on 127.0.0.1:9500. Reached externally at /k2go-api/v1/*. dash-node only relays; the core owns the content state. Bump 1.5.0 + changelog; add a proxy unit test.
iiab-android installs cx-core via 'runrole cx_core', not a hand-install: the cx_core role is the single install source for both proot (PDSM) and systemd, and cx-core has no build step that would force the dash-node hand-install path. cx-proxy also forwards Content-Disposition and the upstream Content-Length (the export filename the app needs); the PDSM wrapper notes running() is liveness-approximate and health() is the gate.
@luisguzman-adfa
luisguzman-adfa merged commit 4074ac0 into main Oct 22, 2026
4 checks passed
@luisguzman-adfa
luisguzman-adfa deleted the feat/K2GO-427-cx-core-deploy branch October 23, 2026 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant