@synopackageland/cli 0.41.3 → 0.41.4
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 +8 -0
- package/README.md +2 -2
- package/dist/runtime/webapi-profile.js +1 -1
- package/package.json +1 -1
- package/skills/SKILL.md +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
## Unreleased
|
|
4
4
|
|
|
5
|
+
## 0.41.4 (2026-10-30)
|
|
6
|
+
|
|
7
|
+
- Allow `webapi` raw profiles to set `raw_max_bytes` up to 2 GiB, matching
|
|
8
|
+
SDK/App 0.38.2. That SDK removes Go `JobWebAPI.CallRaw` and
|
|
9
|
+
`RawWebAPIResult.Body`; raw consumers must move to `CallRawTo(..., io.Writer)`.
|
|
10
|
+
Templates ~0.35.2 still pin SDK 0.38.1; declare SDK 0.38.2 to use larger raw
|
|
11
|
+
downloads.
|
|
12
|
+
|
|
5
13
|
## 0.41.3 (2026-10-30)
|
|
6
14
|
|
|
7
15
|
- Build Portal Apps without an executor on DSM 7.2-64570+ using the App SDK
|
package/README.md
CHANGED
|
@@ -88,7 +88,7 @@ alongside npm lockfiles. Do not disable checksum verification for public SDK
|
|
|
88
88
|
packages. Private mirrors can use explicitly configured Go authentication and
|
|
89
89
|
checksum settings; a failed fetch reports `SDK_DOWNLOAD_FAILED`.
|
|
90
90
|
|
|
91
|
-
CLI 0.41.
|
|
91
|
+
CLI 0.41.4 uses templates ~0.35.2, whose default SDK pin is 0.38.1. Compose import and SDK defaults
|
|
92
92
|
read the SDK pin from the installed templates; explicit App SDK declarations take precedence.
|
|
93
93
|
Every App method must be declared in the permissions table. Dynamic names and
|
|
94
94
|
custom HTTP dispatchers are rejected. With SDK 0.33.0, use fixed
|
|
@@ -99,7 +99,7 @@ unimported development commands are excluded. Use
|
|
|
99
99
|
authentication. See [App entry and registration](docs/app-entry.md).
|
|
100
100
|
|
|
101
101
|
`init` and `add` read their templates from the locally installed
|
|
102
|
-
`@synopackageland/templates`. CLI 0.41.
|
|
102
|
+
`@synopackageland/templates`. CLI 0.41.4 depends on `~0.35.2`: npm installation or
|
|
103
103
|
update can select the latest templates patch in the 0.35 minor line. Templates
|
|
104
104
|
patches need only a templates release; update the npm installation to receive them.
|
|
105
105
|
The CLI never fetches templates at runtime, so offline use works after installation;
|
|
@@ -8,7 +8,7 @@ export function validWebAPIProfiles(value) {
|
|
|
8
8
|
for (const [name, p] of Object.entries(value)) {
|
|
9
9
|
if (!/^[a-z][a-z0-9_-]{0,63}$/.test(name) || name === 'home' || !record(p) || Object.keys(p).some(k => !['purpose', 'apis', 'raw_max_bytes'].includes(k)) || typeof p.purpose !== 'string' || !p.purpose.trim() || Buffer.byteLength(p.purpose) > 1024 || /[\x00-\x1f\x7f]/.test(p.purpose) || !record(p.apis) || !Object.keys(p.apis).length)
|
|
10
10
|
return false;
|
|
11
|
-
if (p.raw_max_bytes !== undefined && (!Number.isSafeInteger(p.raw_max_bytes) || Number(p.raw_max_bytes) < 0 || Number(p.raw_max_bytes) >
|
|
11
|
+
if (p.raw_max_bytes !== undefined && (!Number.isSafeInteger(p.raw_max_bytes) || Number(p.raw_max_bytes) < 0 || Number(p.raw_max_bytes) > 2147483648))
|
|
12
12
|
return false;
|
|
13
13
|
for (const [api, methods] of Object.entries(p.apis)) {
|
|
14
14
|
if (!/^SYNO\.[A-Za-z][A-Za-z0-9]*(\.[A-Za-z][A-Za-z0-9]*)*$/.test(api) || api.toLowerCase().split('.').slice(1).some(x => blocked.has(x)) || !record(methods) || !Object.keys(methods).length)
|
package/package.json
CHANGED
package/skills/SKILL.md
CHANGED
|
@@ -24,7 +24,7 @@ Use this guide to initialize, build and inspect own applications or upstream OSS
|
|
|
24
24
|
|
|
25
25
|
For an existing open-source App, first read [reference/upstream-fork.md](reference/upstream-fork.md): upstream fork/history + untouched upstream files + all packaging in `synology/`, official container images pinned by tag/index digest, native official release binaries pinned by SHA-256 or a source build hook, and a single tag-merge upgrade command. Use `init --upstream-fork`; never rewrite the App as a component. Integrated upstream Apps require direct DSM administrator entry without a separate App password or an OIDC/SSO server: supported trusted headers first, disabling native login second; the shipped OpenList pattern uses the existing SDK 0.17.3 token adapter (`mode: token`, `access: dsm-admins`, `entry: admin-only`) with server-side Authorization injection. All DSM admins share one upstream admin; token reset requires package restart; WebDAV retains its native credentials.
|
|
26
26
|
|
|
27
|
-
Use SDK/App 0.38.
|
|
27
|
+
Use SDK/App 0.38.2 and CLI 0.41.4 for App entry enforcement. Declare every App method
|
|
28
28
|
in the permissions table; dynamic names and unregistered HTTP dispatchers are rejected.
|
|
29
29
|
Use fixed SDK routes and `identity_gateway.upstream_auth_paths` for client API
|
|
30
30
|
paths that rely on upstream authentication. Read
|