Embed any generated component
Declare it in componentRefs, drop its tag in your template, and the real selector, grid, editor, form, card, list, widget or custom component renders inside yours.
References carry the target's snapshot
A push stores each embedded component's parameters, so the platform reports a changed contract instead of a broken build.
A compile error is an error
dxs ng preview raises DXS-NG-057 with the compiler lines instead of re-serving the last good screenshot.
Browser login over SSH
dxs auth login --remote replaces the device-code flow on machines without a browser.
Custom Angular Components
-
Embed a selector, grid, editor, form, card, list, widget or another custom componentNew#393
Add an entry to
componentRefsinmanifest.jsonwith the target'sname, itskindand, for a package target, itsmodule. The harness imports the generated component, and the tag, inputs and outputs are in the generated<P>.<ref>.component.tsit materializes. A hosted custom component is used through its tag only; its code stays in its own folder. Rundxs ng preview <folder> --refresh -b <branch>after acomponentRefschange.dxs ng preview ./OrderCommandCenter --refresh -b <branch> -
A stored reference carries the target's contractChanged#393
dxs ng pushstores each reference ascomponentTypepluscomponentConfig: the target's name, its owning application asmoduleId, and a snapshot of its input and output parameters. Branch validation compares that snapshot with the live target and reportsOutdated contractwhen a required input appears or a parameter is renamed, naming every host down to the shell.pullreads both the new and the retired shape;pushwrites only the new one. A reference without a snapshot is checked for existence and type only. -
Push checks references before it writesNew#393
A new preflight,
DXS-NG-056, refuses an unknownkind, a duplicate entry, a component that embeds itself, and a target that does not exist on the branch. It cannot be skipped. The server still runs its own gate on upsert, including the walk that refuses a loop through hosted components withCyclical references detected. -
Preview fails loudly on a compile error and frames widgetsFix#393
A failed build is
DXS-NG-057quoting the compiler lines; no screenshot is taken.render.logis written on every run, including failures, and the dev server's output goes to.dxs-serve.log.mocks/harness-inputs.jsongains a"$container"key (page,widgetordashboard-widget) so a widget-destined component previews in its real frame. The component the harness mounts is picked by name, never by file order, so a hosted copy is never edited by mistake. -
Mock data covers embedded componentsNew#393
dxs ng data generatewalks the materialized harness, so the datasource calls of every embedded component get a"<ds>.<method>"key too. It warns when the harness predates the currentcomponentRefsand when an entry was not materialized, which is the sign of a wrongnameormodule.dxs ng data generate ./OrderCommandCenter -b <branch> -
Explore and document see what a slot or a component holdsFix#393
A widget slot is filed by its
widgetType, so a custom component placed in a hub, editor or dashboard slot shows up as one. A custom component's own references are filed bycomponentType, anddxs source explore reverse-trace <target>lists the custom components that embed the target. -
A failed configuration write no longer reverts your branchFix#393
When a configuration PUT fails, the CLI releases only the lock it took for that call. It no longer asks the platform to unlock a configuration it did not lock, which the platform treats as a revert that deletes uncommitted additions and resets edits to main.
Sign-in and setup
-
Sign in on a browserless machine through an SSH tunnelChanged#358
dxs auth login --remoteprints a Microsoft sign-in URL and waits for the browser callback on a fixed loopback port (--callback-port, default 8400) that SSH forwards from your local computer. The remote machine keeps the PKCE verifier and stores its own credentials. The device-code flow and its--use-device-codeflag are gone.ssh -o ExitOnForwardFailure=yes -L 127.0.0.1:8400:127.0.0.1:8400 user@remote dxs auth login --remote --callback-port 8400 -
dxs initreports file credentials correctlyFix#339With
credential_storage=file, the onboarding summary reported the persistence state wrongly. It now reflects where the credentials were written.
Feedback
-
Send feedback from the CLIPreview#279
dxs feedbackopens a short form;dxs feedback submittakes--category,--title,--messageor--file, and--include-transcriptfor the session log. The report is saved durably before an issue is created, anddxs feedback showandretryfollow a submission by its tracking id. Login is required.Preview: the feedback service is not enabled in production yet, so a submission can fail until it is. The report stays in the local outbox, and
dxs feedback retrysends it later under the same tracking id.dxs feedback submit --category cli --title "The documented option fails" --file report.md
Behind the scenes
-
Internal service workService#359#388
Groundwork on internal Datex services. Nothing in the
dxspackage changes. -
Release runs show their version in the Actions listTooling#393
The Release to PyPI workflow names each run after the version it publishes, so the list no longer needs the bump step's log to tell releases apart.
What might need a change on your side
- Anyone who runs
dxs ng pullorpush. Upgrade first. Every deployed Datex Application API stores the new reference shape. A 0.5.xpullsilently drops every stored reference of a Custom Angular Component, and its nextpushremoves them; a 0.5.xpushthat still carriescomponentRefsis refused as the retired shape. Components whose references were written by Studio keep working; re-push them once with 0.6.0 to store their contract snapshot. - Scripts that pass
--use-device-code. The flag no longer exists. Usedxs auth login --remotewith an SSH tunnel, or cached credentials. - Consumers of
dxs source exploreoutput for widget slots. A slot's content type is reported aswidgetType, and a slot holding a Custom Angular Component is filed under that type.
Source record
Compiled from six PRs merged between v0.5.11 and v0.6.0: #279, #339, #358, #359, #388 and the Custom Angular Component embedding PR (#393). Deploy-pin commits and the version-bump commit are excluded. Dates use America/New_York.