@synopackageland/templates 0.24.0 → 0.25.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/README.md CHANGED
@@ -9,6 +9,10 @@ shows the Go status-handler registration and a Vue notice for startup checks and
9
9
  storage failures. It targets the next SDK minor release and leaves default
10
10
  scaffold versions unchanged.
11
11
 
12
+ An opt-in [native UI plus DSM console example](examples/dual-entry-console/README.md)
13
+ shows the `console` declaration for an App that wraps a web service behind the
14
+ identity gateway and keeps its own settings in an administrator-only DSM window.
15
+
12
16
  | Template | What it adds |
13
17
  | --- | --- |
14
18
  | `native-go` | Base: `dsm-package.yaml`, Go module (`backend/cmd/{app,background-worker}`, `backend/internal/app`, `backend/internal/api/permissions.json`), plain `ui/`, i18n |
@@ -43,12 +47,12 @@ calls each one from the generated script of the same name (`synopkgland skill sh
43
47
  The placeholders `__PACKAGE__` (also the Go module path), `__DISPLAY_NAME__` and
44
48
  `__BACKGROUND_ENABLED__` are substituted by `init`.
45
49
 
46
- `backend/go.mod` requires `github.com/synopackageland/syno-pkg-land-sdk v0.24.0`; that line is
50
+ `backend/go.mod` requires `github.com/synopackageland/syno-pkg-land-sdk v0.25.0`; that line is
47
51
  the single source of the SDK version and `frontend/package.json` pins
48
52
  `@synopackageland/sdk` to the same version. Python and Node.js name it in
49
53
  `backend.sdk`, Rust in the `syno-pkg-land-app` tag of `backend/Cargo.toml`
50
- (and `Cargo.lock`); all of them pin 0.24.0. The Vue frontend pins
51
- `@synopackageland/ui` 0.14.0. SDK 0.24.0 accepts UI `>=0.10.1 <0.14.0`,
54
+ (and `Cargo.lock`); all of them pin 0.25.0. The Vue frontend pins
55
+ `@synopackageland/ui` 0.14.3. SDK 0.25.0 accepts UI `>=0.10.1 <0.14.3`,
52
56
  so no UI peer override is needed. Tests use jsdom 30 for UI floating-layer styles.
53
57
 
54
58
  ## Notice writer
@@ -68,8 +72,7 @@ and `UI-THIRD_PARTY.md` in the output directory; other files there stay.
68
72
  ## Develop
69
73
 
70
74
  ```sh
71
- export GOPRIVATE='github.com/synopackageland/*' # the SDK repository is private
72
- export SYNOPKGLAND_SDK_DIR=~/Public/synopackageland/sdk # optional sdk checkout: Go module at the root, ts/
75
+ export SYNOPKGLAND_SDK_DIR=/path/to/sdk # optional public SDK checkout: Go module at the root, ts/
73
76
  export SYNOPKGLAND_DOCKER_SSH=my-docker-host # optional: the Docker engine for the Linux tests
74
77
  scripts/assemble.sh /tmp/app vue delegate # one combination, as init lays it out
75
78
  scripts/assemble.sh --language rust /tmp/app-rs plain jobs # python, node or rust
@@ -146,6 +149,13 @@ Both Compose routes share `contract/app-launch.ts` for defaults and launcher typ
146
149
  An explicit `ui.launch` overrides this default. Native SDK Apps without a web
147
150
  service keep `dsm-window` when `ui.launch` is absent.
148
151
 
152
+ A native App that wraps a web service with `identity_gateway` and has its own
153
+ settings may declare `console: {}`. The main menu then shows the service UI
154
+ (`displayname`, a url launcher that opens a new tab) and an administrator-only
155
+ DSM window, "<displayname> for DSM", running the SDK UI; Package Center's Open
156
+ starts the console. Do not declare `ui.launch` or `portal` with it, and do not
157
+ redirect from the console to the service. Simple wrappers keep one icon.
158
+
149
159
  ## Compose identity and file access
150
160
 
151
161
  The CLI preserves upstream bytes and the SDK planner generates an override and one worker model. No dummy backend, UI or wrapper container is needed. Containers use the fixed package identity and do not inherit each signed-in user's File Station ACL. Shared Folder intent is explicit composeMounts, confirmed by an admin after install; activation is unsupported until official protected ACL/project control is verified. Fine egress allowlists are rejected; isolated/internet are the two declared levels. See the SDK Compose support matrix before deployment.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synopackageland/templates",
3
- "version": "0.24.0",
3
+ "version": "0.25.1",
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": {
@@ -348,3 +348,10 @@ service: omitted `ui.launch` resolves to `new-page`, without Application Portal.
348
348
  Both Compose routes share `contract/app-launch.ts` for defaults and launcher types.
349
349
  An explicit `ui.launch` overrides this default. Native SDK Apps without a web
350
350
  service keep `dsm-window` when `ui.launch` is absent.
351
+
352
+ A native App that wraps a web service with `identity_gateway` and has its own
353
+ settings may declare `console: {}`. The main menu then shows the service UI
354
+ (`displayname`, a url launcher that opens a new tab) and an administrator-only
355
+ DSM window, "<displayname> for DSM", running the SDK UI; Package Center's Open
356
+ starts the console. Do not declare `ui.launch` or `portal` with it, and do not
357
+ redirect from the console to the service. Simple wrappers keep one icon.
@@ -14,7 +14,7 @@ compose:
14
14
  web: {service: web, port: 8080, health: {path: /, status: 200}}
15
15
  network: {egress: isolated}
16
16
  identity_gateway:
17
- sdk: 0.24.0
17
+ sdk: 0.25.0
18
18
  mode: none
19
19
  listen: {http: 28000}
20
20
  # Web Apps default to new-page through the shared app-launch resolver.
@@ -1,6 +1,6 @@
1
1
  Native Go package build dependencies
2
2
 
3
- github.com/synopackageland/syno-pkg-land-sdk v0.24.0 (MIT)
3
+ github.com/synopackageland/syno-pkg-land-sdk v0.25.0 (MIT)
4
4
 
5
5
  Copyright (c) 2026 synopkgland
6
6
 
@@ -4,6 +4,6 @@ go 1.25.0
4
4
 
5
5
  toolchain go1.26.10
6
6
 
7
- require github.com/synopackageland/syno-pkg-land-sdk v0.24.0
7
+ require github.com/synopackageland/syno-pkg-land-sdk v0.25.0
8
8
 
9
9
  require golang.org/x/sys v0.44.0 // indirect
@@ -1,4 +1,4 @@
1
- github.com/synopackageland/syno-pkg-land-sdk v0.24.0 h1:q4PuhiEEFGco4asf1xnS5aMcPPnYNzzHtdI/4EJ9w/w=
2
- github.com/synopackageland/syno-pkg-land-sdk v0.24.0/go.mod h1:8GwREGbczc8mAk4Gv8FUHaukXXCUstjzkovQrNV59Cc=
1
+ github.com/synopackageland/syno-pkg-land-sdk v0.25.0 h1:6h3kcxWMl6hsh98j4p9hyekXchnNuwfnRb3D8eZY9rs=
2
+ github.com/synopackageland/syno-pkg-land-sdk v0.25.0/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,8 +7,8 @@
7
7
  "name": "native-dsm-vue-app",
8
8
  "dependencies": {
9
9
  "@lucide/vue": "1.48.0",
10
- "@synopackageland/sdk": "0.24.0",
11
- "@synopackageland/ui": "0.14.0",
10
+ "@synopackageland/sdk": "0.25.0",
11
+ "@synopackageland/ui": "0.14.3",
12
12
  "vue": "3.5.43"
13
13
  },
14
14
  "devDependencies": {
@@ -1152,9 +1152,9 @@
1152
1152
  }
1153
1153
  },
1154
1154
  "node_modules/@synopackageland/sdk": {
1155
- "version": "0.24.0",
1156
- "resolved": "https://registry.npmjs.org/@synopackageland/sdk/-/sdk-0.24.0.tgz",
1157
- "integrity": "sha512-9G2aEPq0my5rS8JEo4AYPwjDztjT0o5ahUD7YnwTOmOoaGaNq7QXUyWfttozkikXmvY8eUCJRt/ffqdteOmu5g==",
1155
+ "version": "0.25.0",
1156
+ "resolved": "https://registry.npmjs.org/@synopackageland/sdk/-/sdk-0.25.0.tgz",
1157
+ "integrity": "sha512-bZC8n3L3NX3dUiO2A64XumvUOdy6GZIzL57pJlZGhSzplMw044gzn3w2tw3DPsy7D+qdguMfx8m+RJh+5qnpQg==",
1158
1158
  "license": "MIT",
1159
1159
  "peerDependencies": {
1160
1160
  "@lucide/vue": "^1.48.0",
@@ -1171,9 +1171,9 @@
1171
1171
  }
1172
1172
  },
1173
1173
  "node_modules/@synopackageland/ui": {
1174
- "version": "0.14.0",
1175
- "resolved": "https://registry.npmjs.org/@synopackageland/ui/-/ui-0.14.0.tgz",
1176
- "integrity": "sha512-vYKMzWYZZM781ccunNji1SooVD76S0AH2g4meWBSJNBbTj6nupiijedsaOAr0tRI6vW51P6n4AjjKO5wF3UD4w==",
1174
+ "version": "0.14.3",
1175
+ "resolved": "https://registry.npmjs.org/@synopackageland/ui/-/ui-0.14.3.tgz",
1176
+ "integrity": "sha512-AB7KWt44zj49HVnqsR8gDOyX0AtF3w35SSGVY4u66BgVqGRldUWu4QnqiYdFTdCGWl0ZDGLUQ7JHt7HrYARUyA==",
1177
1177
  "license": "MIT",
1178
1178
  "dependencies": {
1179
1179
  "@internationalized/date": "3.12.4",
@@ -8,8 +8,8 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@lucide/vue": "1.48.0",
11
- "@synopackageland/sdk": "0.24.0",
12
- "@synopackageland/ui": "0.14.0",
11
+ "@synopackageland/sdk": "0.25.0",
12
+ "@synopackageland/ui": "0.14.3",
13
13
  "vue": "3.5.43"
14
14
  },
15
15
  "devDependencies": {
@@ -49,7 +49,7 @@ backend:
49
49
  runtime: node
50
50
  dir: backend/app
51
51
  entry: main.js
52
- sdk: 0.24.0
52
+ sdk: 0.25.0
53
53
  node: { package: Node.js_v22 }
54
54
 
55
55
  ui:
@@ -47,7 +47,7 @@ backend:
47
47
  runtime: python
48
48
  dir: backend/app
49
49
  entry: main.py
50
- sdk: 0.24.0
50
+ sdk: 0.25.0
51
51
 
52
52
  ui:
53
53
  # Non-UI-SDK frontends open a full page; Portal is a separate opt-in.
@@ -104,8 +104,8 @@ dependencies = [
104
104
 
105
105
  [[package]]
106
106
  name = "syno-pkg-land-app"
107
- version = "0.24.0"
108
- source = "git+https://github.com/synopackageland/syno-pkg-land-sdk?tag=v0.24.0#c5b7818621775078d2ab5076fe223878e1a8c1cc"
107
+ version = "0.25.0"
108
+ source = "git+https://github.com/synopackageland/syno-pkg-land-sdk?tag=v0.25.0#fbfb8febe87a4f593fc5b40b522bd55e2c7b8887"
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.24.0" }
12
+ syno-pkg-land-app = { git = "https://github.com/synopackageland/syno-pkg-land-sdk", tag = "v0.25.0" }
13
13
 
14
14
  [profile.release]
15
15
  # A handler panic becomes an "internal" reply; abort would end the App without one.