@synopackageland/templates 0.35.0 → 0.35.2
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/README.md +45 -9
- package/package.json +1 -1
- package/templates/compose/dsm-package.yaml +1 -1
- package/templates/native-go/README.md +14 -0
- package/templates/native-go/backend/THIRD_PARTY_NOTICES.txt +1 -1
- package/templates/native-go/backend/go.mod +1 -1
- package/templates/native-go/backend/go.sum +2 -2
- package/templates/native-go-vue/frontend/package-lock.json +4 -4
- package/templates/native-go-vue/frontend/package.json +1 -1
- package/templates/native-node/README.md +14 -0
- package/templates/native-node/dsm-package.yaml +1 -1
- package/templates/native-python/README.md +14 -0
- package/templates/native-python/dsm-package.yaml +1 -1
- package/templates/native-rust/README.md +14 -0
- package/templates/native-rust/backend/Cargo.lock +2 -2
- package/templates/native-rust/backend/Cargo.toml +1 -1
package/README.md
CHANGED
|
@@ -22,8 +22,8 @@ daemon:
|
|
|
22
22
|
window_seconds: 300
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Templates 0.35.
|
|
26
|
-
Use CLI 0.
|
|
25
|
+
Templates 0.35.2 pin UI 0.16.1 and SDK 0.38.1 in native and Compose projects.
|
|
26
|
+
Use CLI 0.41.2. The Vue `AppShell` shows a
|
|
27
27
|
non-blocking **Reload** notice when an upgrade replaced the UI an open page
|
|
28
28
|
loaded. Go Apps select
|
|
29
29
|
their controller from their Go SDK requirement; an identity gateway selects it
|
|
@@ -81,19 +81,19 @@ calls each one from the generated script of the same name (`synopkgland skill sh
|
|
|
81
81
|
The placeholders `__PACKAGE__` (also the Go module path), `__DISPLAY_NAME__` and
|
|
82
82
|
`__BACKGROUND_ENABLED__` are substituted by `init`.
|
|
83
83
|
|
|
84
|
-
`backend/go.mod` requires `github.com/synopackageland/syno-pkg-land-sdk v0.
|
|
84
|
+
`backend/go.mod` requires `github.com/synopackageland/syno-pkg-land-sdk v0.38.1`; that line is
|
|
85
85
|
the single source of the SDK version and `frontend/package.json` pins
|
|
86
86
|
`@synopackageland/sdk` to the same version. Python and Node.js name it in
|
|
87
87
|
`backend.sdk`, Rust in the `syno-pkg-land-app` tag of `backend/Cargo.toml`
|
|
88
|
-
(and `Cargo.lock`); all of them pin 0.
|
|
89
|
-
`@synopackageland/ui` 0.16.1. SDK 0.
|
|
88
|
+
(and `Cargo.lock`); all of them pin 0.38.1. The Vue frontend pins
|
|
89
|
+
`@synopackageland/ui` 0.16.1. SDK 0.38.1 accepts UI `>=0.10.1 <0.18.0`,
|
|
90
90
|
so no UI peer override is needed. Tests use jsdom 30 for UI floating-layer styles.
|
|
91
91
|
|
|
92
92
|
Interactive NAS file operations use same-origin browser calls.
|
|
93
93
|
Custom file handlers use the SDK's
|
|
94
|
-
[session transport migration](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.
|
|
95
|
-
CLI 0.
|
|
96
|
-
executor/v0.32.0 and its executor digests. Its `~0.35.
|
|
94
|
+
[session transport migration](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.38.1/docs/dsm-session-transport.md).
|
|
95
|
+
CLI 0.41.2 reads SDK 0.38.1's release manifest, which names immutable
|
|
96
|
+
executor/v0.32.0 and its executor digests. Its `~0.35.2` templates
|
|
97
97
|
dependency selects this release.
|
|
98
98
|
|
|
99
99
|
Every App method must appear in the permissions table, including methods whose
|
|
@@ -106,6 +106,42 @@ authentication. Other paths retain DSM entry admission. See the CLI's
|
|
|
106
106
|
UI and i18n text, including the DSM glossary, omit terminal sentence periods.
|
|
107
107
|
Keep punctuation between sentences and intentional loading ellipses.
|
|
108
108
|
|
|
109
|
+
## Request deadlines and background work
|
|
110
|
+
|
|
111
|
+
SDK/App 0.38.1 defaults to 300 seconds for cooperative requests and 302 seconds
|
|
112
|
+
for the TS client and generated DSM window. The CLI reads the selected SDK's
|
|
113
|
+
timeout spec; `backend.timeout_seconds` explicitly overrides it for native
|
|
114
|
+
backends, and an earlier parent deadline still wins. Go assembly should fall
|
|
115
|
+
back to `api.DefaultRequestTimeout`, as the scaffold does. Rebuild with matching
|
|
116
|
+
Go/TS SDK versions: installed Apps and explicit manifest budgets do not change
|
|
117
|
+
automatically. Binary/non-SDK fallbacks keep their own limits.
|
|
118
|
+
|
|
119
|
+
For long NAS work, use the existing jobs capability and independent package-account
|
|
120
|
+
worker or resident daemon. Authenticate a fixed operation and trusted owner,
|
|
121
|
+
admit with `NewRequestStore` / `SubmitSingleton` or `Submit`, and return the
|
|
122
|
+
existing outcome and original job ID promptly. Execute `Runner.Work` separately
|
|
123
|
+
and report phases/progress with `Task.Report`; unknown totals stay unknown.
|
|
124
|
+
Jobs and delegated downloads default to 30 minutes; trusted assembly may select
|
|
125
|
+
a finite allowance suited to the operation.
|
|
126
|
+
|
|
127
|
+
Authenticate every status/result/cancel read and poll with bounded backoff by
|
|
128
|
+
the original ID. Keep the last known state through read failures. Show
|
|
129
|
+
`queued` / `running` as still working; a slow NAS or timed-out status request
|
|
130
|
+
does not fail a job. Only terminal states establish completion. After a lost
|
|
131
|
+
admission reply, reuse the same idempotency key and input, or query the known
|
|
132
|
+
ID; never replay a dispatched mutation with a new key because a reply was lost.
|
|
133
|
+
Cancellation cannot undo remote effects.
|
|
134
|
+
|
|
135
|
+
Direct browser File Station reads also default to 302 seconds, and identity
|
|
136
|
+
gateway response headers to 310 seconds. Match customized proxy/header budgets.
|
|
137
|
+
Other DSM versions and external proxies may impose separate limits; these
|
|
138
|
+
defaults are not a universal five-minute end-to-end guarantee. Executor batch
|
|
139
|
+
caps, approved root policy/program budgets and credential lifetimes retain
|
|
140
|
+
their existing limits; long root work uses `root.start` / `root.jobs.*`.
|
|
141
|
+
The independent ctl transport keeps its 62-second default: use an explicit
|
|
142
|
+
`--timeout` for long synchronous calls, or an existing nonblocking job flow.
|
|
143
|
+
See the SDK's [request deadline contract](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.38.1/docs/request-deadlines.md).
|
|
144
|
+
|
|
109
145
|
## Hyper Backup
|
|
110
146
|
|
|
111
147
|
Native Apps appear in Hyper Backup as applications by default. CLI 0.40.0
|
|
@@ -263,4 +299,4 @@ The bridge examples expose submission, lookup and cancellation through
|
|
|
263
299
|
|
|
264
300
|
## External access
|
|
265
301
|
|
|
266
|
-
With CLI 0.40.0 and SDK 0.
|
|
302
|
+
With CLI 0.40.0 and SDK 0.38.1, a gateway App may declare `identity_gateway.external_access: {connect: optional, origin_change: confirm, single_origin: true}` for an upstream that signs in on one fixed URL. The policy is forwarded to the packaged gateway. A single-origin App's `manual_origin` accepts an explicit HTTPS port; the `external-origin` installation setting remains restricted to port 443. The DSM launcher selects a provider destination, probes `/_spl/ping` for up to eight seconds, and explains failures before offering **Open anyway**. A configured single-origin App always opens its primary external origin.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@synopackageland/templates",
|
|
3
|
-
"version": "0.35.
|
|
3
|
+
"version": "0.35.2",
|
|
4
4
|
"description": "Project templates for synopkgland init: native-go, native-python, native-node and native-rust (plain or Vue, with jobs, delegate and root-ops overlays), binary and compose.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -16,7 +16,7 @@ compose:
|
|
|
16
16
|
web: {service: web, port: 8080, health: {path: /, status: 200}}
|
|
17
17
|
network: {egress: isolated}
|
|
18
18
|
identity_gateway:
|
|
19
|
-
sdk: 0.
|
|
19
|
+
sdk: 0.38.1
|
|
20
20
|
mode: none
|
|
21
21
|
listen: {http: 28000}
|
|
22
22
|
# Web Apps default to new-page through the shared app-launch resolver.
|
|
@@ -15,6 +15,20 @@ DSM main menu → DSM window (ui/app.js)
|
|
|
15
15
|
4. your handler (backend/internal/app)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
## Requests and long work
|
|
19
|
+
|
|
20
|
+
SDK/App 0.38.1 defaults to 300-second requests and a 302-second browser wait.
|
|
21
|
+
Explicit `backend.timeout_seconds` and earlier parent deadlines still apply;
|
|
22
|
+
rebuild the App to use the new SDK. For long NAS work, enable the existing jobs
|
|
23
|
+
capability: return admission and the original job ID promptly, execute in the
|
|
24
|
+
independent package-account worker and report phase/progress. Authenticate
|
|
25
|
+
status/result polling by that ID; a slow NAS or failed status read leaves the
|
|
26
|
+
last queued/running state intact. After a lost admission reply, reuse the same
|
|
27
|
+
idempotency key and input instead of replaying a mutation with a new key.
|
|
28
|
+
Jobs default to 30 minutes; approved executor limits remain separate. ctl keeps
|
|
29
|
+
its 62-second transport default; use an explicit `--timeout` or an existing
|
|
30
|
+
nonblocking job. See the SDK's [request deadline contract](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.38.1/docs/request-deadlines.md).
|
|
31
|
+
|
|
18
32
|
## Quick start
|
|
19
33
|
|
|
20
34
|
Needs Node.js with `synopkgland` installed, and Go 1.25+.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
github.com/synopackageland/syno-pkg-land-sdk v0.
|
|
2
|
-
github.com/synopackageland/syno-pkg-land-sdk v0.
|
|
1
|
+
github.com/synopackageland/syno-pkg-land-sdk v0.38.1 h1:W1+QI88KAnGyPxVI4wK4Q67b63JEwF3KaFigWlsUbYA=
|
|
2
|
+
github.com/synopackageland/syno-pkg-land-sdk v0.38.1/go.mod h1:8GwREGbczc8mAk4Gv8FUHaukXXCUstjzkovQrNV59Cc=
|
|
3
3
|
golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ=
|
|
4
4
|
golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"name": "native-dsm-vue-app",
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@lucide/vue": "1.48.0",
|
|
10
|
-
"@synopackageland/sdk": "0.
|
|
10
|
+
"@synopackageland/sdk": "0.38.1",
|
|
11
11
|
"@synopackageland/ui": "0.16.1",
|
|
12
12
|
"vue": "3.5.43"
|
|
13
13
|
},
|
|
@@ -1152,9 +1152,9 @@
|
|
|
1152
1152
|
}
|
|
1153
1153
|
},
|
|
1154
1154
|
"node_modules/@synopackageland/sdk": {
|
|
1155
|
-
"version": "0.
|
|
1156
|
-
"resolved": "https://registry.npmjs.org/@synopackageland/sdk/-/sdk-0.
|
|
1157
|
-
"integrity": "sha512-
|
|
1155
|
+
"version": "0.38.1",
|
|
1156
|
+
"resolved": "https://registry.npmjs.org/@synopackageland/sdk/-/sdk-0.38.1.tgz",
|
|
1157
|
+
"integrity": "sha512-Z/YxRFekMRwRU31pVudkHgHKgmJFCjRzJqHYkIq9FNCrprxQCFTbTgQTu3eqKXZ+gVJPHXlJccfk2B/ohMQnFA==",
|
|
1158
1158
|
"license": "MIT",
|
|
1159
1159
|
"peerDependencies": {
|
|
1160
1160
|
"@lucide/vue": "^1.48.0",
|
|
@@ -15,6 +15,20 @@ DSM main menu → DSM window (ui/app.js)
|
|
|
15
15
|
4. your method, which may ask the runtime for services (files, jobs, executor)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
## Requests and long work
|
|
19
|
+
|
|
20
|
+
SDK/App 0.38.1 defaults to 300-second requests and a 302-second browser wait.
|
|
21
|
+
Explicit `backend.timeout_seconds` and earlier parent deadlines still apply;
|
|
22
|
+
rebuild the App to use the new SDK. For long NAS work, enable the existing jobs
|
|
23
|
+
capability: return admission and the original job ID promptly, execute in the
|
|
24
|
+
independent package-account worker and report phase/progress. Authenticate
|
|
25
|
+
status/result polling by that ID; a slow NAS or failed status read leaves the
|
|
26
|
+
last queued/running state intact. After a lost admission reply, reuse the same
|
|
27
|
+
idempotency key and input instead of replaying a mutation with a new key.
|
|
28
|
+
Jobs default to 30 minutes; approved executor limits remain separate. ctl keeps
|
|
29
|
+
its 62-second transport default; use an explicit `--timeout` or an existing
|
|
30
|
+
nonblocking job. See the SDK's [request deadline contract](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.38.1/docs/request-deadlines.md).
|
|
31
|
+
|
|
18
32
|
## Quick start
|
|
19
33
|
|
|
20
34
|
Needs Node.js 20 or later with `synopkgland` installed. The SPK depends on DSM's **Node.js v20** package (INFO `install_dep_packages`).
|
|
@@ -15,6 +15,20 @@ DSM main menu → DSM window (ui/app.js)
|
|
|
15
15
|
4. your method, which may ask the runtime for services (files, jobs, executor)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
## Requests and long work
|
|
19
|
+
|
|
20
|
+
SDK/App 0.38.1 defaults to 300-second requests and a 302-second browser wait.
|
|
21
|
+
Explicit `backend.timeout_seconds` and earlier parent deadlines still apply;
|
|
22
|
+
rebuild the App to use the new SDK. For long NAS work, enable the existing jobs
|
|
23
|
+
capability: return admission and the original job ID promptly, execute in the
|
|
24
|
+
independent package-account worker and report phase/progress. Authenticate
|
|
25
|
+
status/result polling by that ID; a slow NAS or failed status read leaves the
|
|
26
|
+
last queued/running state intact. After a lost admission reply, reuse the same
|
|
27
|
+
idempotency key and input instead of replaying a mutation with a new key.
|
|
28
|
+
Jobs default to 30 minutes; approved executor limits remain separate. ctl keeps
|
|
29
|
+
its 62-second transport default; use an explicit `--timeout` or an existing
|
|
30
|
+
nonblocking job. See the SDK's [request deadline contract](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.38.1/docs/request-deadlines.md).
|
|
31
|
+
|
|
18
32
|
## Quick start
|
|
19
33
|
|
|
20
34
|
Needs Node.js with `synopkgland` installed, and Python 3.8 or later.
|
|
@@ -15,6 +15,20 @@ DSM main menu → DSM window (ui/app.js)
|
|
|
15
15
|
4. your method, which may ask the runtime for services (files, jobs, executor)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
## Requests and long work
|
|
19
|
+
|
|
20
|
+
SDK/App 0.38.1 defaults to 300-second requests and a 302-second browser wait.
|
|
21
|
+
Explicit `backend.timeout_seconds` and earlier parent deadlines still apply;
|
|
22
|
+
rebuild the App to use the new SDK. For long NAS work, enable the existing jobs
|
|
23
|
+
capability: return admission and the original job ID promptly, execute in the
|
|
24
|
+
independent package-account worker and report phase/progress. Authenticate
|
|
25
|
+
status/result polling by that ID; a slow NAS or failed status read leaves the
|
|
26
|
+
last queued/running state intact. After a lost admission reply, reuse the same
|
|
27
|
+
idempotency key and input instead of replaying a mutation with a new key.
|
|
28
|
+
Jobs default to 30 minutes; approved executor limits remain separate. ctl keeps
|
|
29
|
+
its 62-second transport default; use an explicit `--timeout` or an existing
|
|
30
|
+
nonblocking job. See the SDK's [request deadline contract](https://github.com/synopackageland/syno-pkg-land-sdk/blob/v0.38.1/docs/request-deadlines.md).
|
|
31
|
+
|
|
18
32
|
## Quick start
|
|
19
33
|
|
|
20
34
|
Needs Node.js with `synopkgland` installed, Rust through rustup, Zig and `cargo-zigbuild`: `backend/rust-toolchain.toml` pins 1.97.1 with the three DSM targets, so the first `cargo` run installs them.
|
|
@@ -104,8 +104,8 @@ dependencies = [
|
|
|
104
104
|
|
|
105
105
|
[[package]]
|
|
106
106
|
name = "syno-pkg-land-app"
|
|
107
|
-
version = "0.
|
|
108
|
-
source = "git+https://github.com/synopackageland/syno-pkg-land-sdk?tag=v0.
|
|
107
|
+
version = "0.38.1"
|
|
108
|
+
source = "git+https://github.com/synopackageland/syno-pkg-land-sdk?tag=v0.38.1#8919aef63aa22d37791190ca8db87525a23796ad"
|
|
109
109
|
dependencies = [
|
|
110
110
|
"libc",
|
|
111
111
|
"serde",
|
|
@@ -9,7 +9,7 @@ libc = "0.2"
|
|
|
9
9
|
serde = { version = "1", features = ["derive"] }
|
|
10
10
|
serde_json = "1"
|
|
11
11
|
# The SDK version is the tag; `synopkgland check` reads it from Cargo.lock.
|
|
12
|
-
syno-pkg-land-app = { git = "https://github.com/synopackageland/syno-pkg-land-sdk", tag = "v0.
|
|
12
|
+
syno-pkg-land-app = { git = "https://github.com/synopackageland/syno-pkg-land-sdk", tag = "v0.38.1" }
|
|
13
13
|
|
|
14
14
|
[profile.release]
|
|
15
15
|
# A handler panic becomes an "internal" reply; abort would end the App without one.
|