@synopackageland/cli 0.10.0 → 0.10.1
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,30 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.10.1 (2026-10-13)
|
|
4
|
+
|
|
5
|
+
Builds with SDK 0.10.1 and templates 0.10.1: `init` writes SDK v0.10.1 (Go
|
|
6
|
+
module, Rust crate tag and `backend.sdk`) and `@synopackageland/sdk` 0.10.1.
|
|
7
|
+
The executor digest table adds SDK 0.10.1 and keeps 0.10.0. SDK 0.10.1's
|
|
8
|
+
executor changed, so an App rebuilt on it carries a new executor digest and
|
|
9
|
+
its pins are approved again; the lifecycle digests equal 0.10.0. The bridge
|
|
10
|
+
manifest schema is synced from the SDK (`capabilities.root` also serves
|
|
11
|
+
`executor.status` and `executor.control`).
|
|
12
|
+
|
|
13
|
+
繁中摘要:使用 SDK 0.10.1 與 templates 0.10.1;digest 表新增 SDK 0.10.1(保留
|
|
14
|
+
0.10.0)。executor 變更,改用 SDK 0.10.1 重建的 App 要重新核准 executor digest,
|
|
15
|
+
lifecycle digest 與 0.10.0 相同。
|
|
16
|
+
|
|
17
|
+
- A Python, Node.js or Rust App with root-ops and a Vue UI borrows
|
|
18
|
+
`native-go-root-ops/frontend`, as a Go App gets it from its overlay: its
|
|
19
|
+
`ExecutorGate.vue` holds the App's pages until an administrator approves
|
|
20
|
+
the executor (templates 0.10.1).
|
|
21
|
+
- Fix: in a DSM window with root operations (`capabilities.rootOps`, and so a
|
|
22
|
+
`portal` App), the App root now fills the window body below the root panels.
|
|
23
|
+
It had no height, so an App root asking for `height:100%` collapsed to its
|
|
24
|
+
content: a loading overlay covered only the top of the window, and a dialog
|
|
25
|
+
centred on the App root was placed above the window. Windows without root
|
|
26
|
+
operations are unchanged.
|
|
27
|
+
|
|
3
28
|
## 0.10.0 (2026-10-13)
|
|
4
29
|
|
|
5
30
|
Builds with SDK 0.10.0 and templates 0.10.0: `init` writes SDK v0.10.0 (Go
|
|
@@ -22,7 +22,7 @@ function bridgeOverlays(template) {
|
|
|
22
22
|
return {
|
|
23
23
|
// The example hashes a file the caller picks, which the runtime reads only for an App with files.
|
|
24
24
|
jobs: { overlays: [`${template}-jobs`], borrowed: ['native-go-jobs/frontend'], removed: [], permissions: {}, implied: ['files'], methods: ['hash.submit', 'hash.get', 'hash.cancel'] },
|
|
25
|
-
'root-ops': { overlays: [`${template}-root-ops`], borrowed: ['native-go-root-ops/root'], removed: [], permissions: {}, methods: ['whoami.run'] },
|
|
25
|
+
'root-ops': { overlays: [`${template}-root-ops`], borrowed: ['native-go-root-ops/root', 'native-go-root-ops/frontend'], removed: [], permissions: {}, methods: ['whoami.run'] },
|
|
26
26
|
delegate: {
|
|
27
27
|
overlays: [`${template}-delegate`], borrowed: ['native-go-jobs/frontend', 'native-go-delegate/frontend'], removed: [],
|
|
28
28
|
permissions: { 'app.status': 'authenticated', 'report.save': 'authenticated' }, methods: ['report.save'],
|
|
@@ -9,5 +9,16 @@
|
|
|
9
9
|
"armv7": "cafc97c89f5645c14a8cf31d6d9f258394ed6f2d086478a7aebd04d57c274b4e"
|
|
10
10
|
},
|
|
11
11
|
"goToolchain": "go1.26.9"
|
|
12
|
+
},
|
|
13
|
+
"0.10.1": {
|
|
14
|
+
"x86_64": "51b538e6ec1cb8fa2a4e00291eda097969352d6e2d9a3e7ade5da5359f1065de",
|
|
15
|
+
"aarch64": "9038b5ad7b4822e967f18390ca28b6f0021a3044ed461809b3f7333f17400840",
|
|
16
|
+
"armv7": "22d872cc618e3af4a052955186d36a6851e9f96ad959ee8ea7d3fbb5eec968bd",
|
|
17
|
+
"lifecycle": {
|
|
18
|
+
"x86_64": "d65500c4f04713a32b45d360059281391acfa5e00ee24895fdd2de7b82735372",
|
|
19
|
+
"aarch64": "94f6cd119186ff482b8aea56541dd1f9d53c147566bc1efdca6f5a1c86198331",
|
|
20
|
+
"armv7": "cafc97c89f5645c14a8cf31d6d9f258394ed6f2d086478a7aebd04d57c274b4e"
|
|
21
|
+
},
|
|
22
|
+
"goToolchain": "go1.26.9"
|
|
12
23
|
}
|
|
13
24
|
}
|
|
@@ -363,6 +363,9 @@ const ROOT_PANEL_CSS = [
|
|
|
363
363
|
".dsmapp-rootpanel-actions button{margin-right:8px;padding:4px 14px}",
|
|
364
364
|
".dsmapp-rootpanel-primary{background:#057feb;color:#fff;border:1px solid #057feb;border-radius:3px}",
|
|
365
365
|
".dsmapp-rootpanel-hint{color:#526070;font-size:12px}.dsmapp-rootpanel [hidden]{display:none}",
|
|
366
|
+
// The panels keep their height; the App root fills the rest of the window body, as without root operations.
|
|
367
|
+
".dsmapp-rootwindow{display:flex;flex-direction:column;height:100%}",
|
|
368
|
+
".dsmapp-rootwindow>.dsmapp-rootpanels{flex:none}.dsmapp-rootwindow>.dsmapp-root{flex:1 1 0;min-height:0}",
|
|
366
369
|
].join("");
|
|
367
370
|
/**
|
|
368
371
|
* A Vue app approves in the SDK's ExecutorSettings, which also carries an
|
|
@@ -374,7 +377,7 @@ function settingsOnlyApproval(manifest) {
|
|
|
374
377
|
/**
|
|
375
378
|
* The capabilities.rootOps: true additions to the window: the exact tasks and panel
|
|
376
379
|
* text, the access runtime wired to DSM's own password confirmation and the
|
|
377
|
-
* AppWindow's WebAPI channel, and the panel above the app.
|
|
380
|
+
* AppWindow's WebAPI channel, and the panel above the app, which fills the rest.
|
|
378
381
|
*/
|
|
379
382
|
function renderRootParts(ns, manifest) {
|
|
380
383
|
return {
|
|
@@ -394,7 +397,7 @@ ${PASSWORD_CONFIRM}
|
|
|
394
397
|
|
|
395
398
|
`,
|
|
396
399
|
html: `autoScroll: true,
|
|
397
|
-
html: '<style>${ROOT_PANEL_CSS}</style><div class="dsmapp-rootpanels"></div><div class="dsmapp-root"></div>'`,
|
|
400
|
+
html: '<style>${ROOT_PANEL_CSS}</style><div class="dsmapp-rootwindow"><div class="dsmapp-rootpanels"></div><div class="dsmapp-root"></div></div>'`,
|
|
398
401
|
mount: ` var session = function () {
|
|
399
402
|
var current = SYNO.SDS.Session || {};
|
|
400
403
|
return { name: current.user, admin: current.is_admin === true };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synopackageland/cli",
|
|
3
|
-
"version": "0.10.
|
|
3
|
+
"version": "0.10.1",
|
|
4
4
|
"description": "Syno Package Land Developer Kit CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"prepublishOnly": "npm run build"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@synopackageland/templates": "0.10.
|
|
27
|
+
"@synopackageland/templates": "0.10.1",
|
|
28
28
|
"ajv": "^8.17.1",
|
|
29
29
|
"commander": "^13.1.0",
|
|
30
30
|
"tar": "^7.4.3",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"identity": { "const": "standalone", "$comment": "The SDK's App sign-in (identity.*) authenticates instead of DSM." },
|
|
60
60
|
"portal": { "type": "boolean", "$comment": "true serves portal.status, to the browser and as the svc portal.status." },
|
|
61
61
|
"jobs": { "type": "boolean", "$comment": "Added in v1 (additive). true offers the svc bg.submit, bg.get and bg.cancel on the package's job store." },
|
|
62
|
-
"root": { "type": "boolean", "$comment": "Added in v1 (additive). true offers the svc root.run, root.start, root.jobs.list, root.jobs.get and root.jobs.stop: the runtime forwards them to the package's executor with the request's DSM session, and the executor's policy and the App privilege decide." },
|
|
62
|
+
"root": { "type": "boolean", "$comment": "Added in v1 (additive). true offers the svc root.run, root.start, root.jobs.list, root.jobs.get and root.jobs.stop: the runtime forwards them to the package's executor with the request's DSM session, and the executor's policy and the App privilege decide. It also serves the browser routes executor.status and executor.control (README, Executor routes)." },
|
|
63
63
|
"delegate": {
|
|
64
64
|
"type": "object",
|
|
65
65
|
"additionalProperties": false,
|