@synopackageland/sdk 0.38.1 → 0.38.3

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.
@@ -560,6 +560,7 @@ export interface StatusParams {
560
560
  /** webapi.call: Call an exact approved WebAPI as the profile grant owner. JSON returns the DSM envelope; raw (since 0.12.1) requires profile raw_max_bytes and returns content_type, size, sha256 and base64 body or private staging handle. Never retried. Since 0.11.0. */
561
561
  export interface WebapiCallParams {
562
562
  response_type?: "json" | "raw";
563
+ expected_size?: number;
563
564
  delegation_id: string;
564
565
  job_id?: string;
565
566
  api: string;
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "formatVersion": 1,
3
- "sdkVersion": "0.38.1",
4
- "executorVersion": "0.32.0",
3
+ "sdkVersion": "0.38.3",
4
+ "executorVersion": "0.38.3",
5
5
  "executorDigests": {
6
- "x86_64": "aa8259f22620c3301ee83b76f6de6fbf06b4df36f49b64a5cc12772a3072abcc",
7
- "aarch64": "97d2b3d8d4a169ba39583a78d5f30428f877d9aac7b38415a69ac024200716bd",
8
- "armv7": "3cb936feabe1252a6fc4d44ac5318ff340bbc5fc89acd53a9afaddeaa94914bf",
6
+ "x86_64": "36c4f39754b946773011a632308ea357c2269585aa8000c7f4989a3b43cc6235",
7
+ "aarch64": "11c81787763007be62839b27e9ebfab734f6a4f1b866e41de1fd143e1af32b8e",
8
+ "armv7": "e2d97ba0d8b47c39f5fbce36118803d17ff0faf31ea686a3225fa0296e3c6f32",
9
9
  "lifecycle": {
10
10
  "x86_64": "c6fbb377ecd5ec7ee5b96439f22091d9fa5965dfd616d510ca9445722f436721",
11
11
  "aarch64": "a9ca1750d4d5cff4727dc29789e6eaf0a365cb0e674f1bb796971d82f2d4fa27",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synopackageland/sdk",
3
- "version": "0.38.1",
3
+ "version": "0.38.3",
4
4
  "description": "Frontend SDK for DSM packages built with synopkgland: headless client and Vue components",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/synopackageland/syno-pkg-land-sdk/tree/main/ts#readme",
@@ -40,8 +40,9 @@ browser waits 2 seconds past the request (`timeouts.json` holds the values).
40
40
  |---|---|---|
41
41
  | Root program (`run.timeout_s`) | its own work | 1–120 s, default 20; the process group is then killed |
42
42
  | Executor, `root.run` | the program, then its reply | answers within 130 s (120 + 10) |
43
- | Executor, every other op | its DSM calls | answers within 30 s |
44
- | Executor client (Go `delegate.Client`, the bridge runtime's `root.*` and `delegate.*`) | the executor | `root.run` 140 s (`delegate.RootRunTimeout`), every other op 40 s (`delegate.ExecutorTimeout`) |
43
+ | Executor, raw `webapi.call` | its streaming DSM call | executes within 1800 s, answers within 1810 s |
44
+ | Executor, other ops | its DSM calls | answers within 30 s |
45
+ | Executor client (Go `delegate.Client`, the bridge runtime's `root.*` and `delegate.*`) | the executor | `root.run` 140 s (`delegate.RootRunTimeout`); Go raw WebAPI 1820 s; other ops 40 s (`delegate.ExecutorTimeout`) |
45
46
  | Request (`api.Timeout`, manifest `timeout_seconds`) | the App's backend | default 300 s (`api.DefaultRequestTimeout`), 1–3600 |
46
47
  | Browser (`clientTimeout`, the CLI window's `call`) | the request | the request's deadline + 2 s |
47
48
 
@@ -490,7 +491,7 @@ MUST be refused. These bounds and semantics also apply to until-revoked grants.
490
491
 
491
492
  The JSON-only restriction above applies to the default response mode. An explicit
492
493
  `response_type:"raw"` MUST require a positive, approved profile `raw_max_bytes`
493
- (1..67108864), pinned by policy and user consent. The executor MUST parse bounded
494
+ (1..10737418240, at most 10 GiB), pinned by policy and user consent. The executor MUST parse bounded
494
495
  CGI headers, refuse redirects, enforce the body limit without truncation, and
495
496
  return `response_type`, `content_type`, `size`, `sha256` and exactly one of
496
497
  base64 `body` (at most 32768 bytes decoded) or a package-private `staging` handle.
@@ -498,6 +499,17 @@ It MUST NOT raise frame limits. Staging MUST be App-owned 0600 under a private
498
499
  0700 package directory. The App MUST verify size/hash and unlink after reading.
499
500
  Header, execution, spool cleanup and error rules are specified in
500
501
  [the raw contract](../../../docs/webapi-raw.md).
502
+ Raw calls allow 18 minutes per started GiB (at least 30 minutes, at most three
503
+ hours), narrowed by the parent deadline and any timed grant's remaining lifetime.
504
+ Optional raw-only `expected_size` asserts the exact pinned source size, bounded
505
+ by the profile. It MUST match Content-Length if present and the final body size.
506
+ Reserve staging from that size or validated Content-Length before body writes;
507
+ only unknown sizes use the profile ceiling. Check available filesystem space
508
+ and refuse insufficient capacity with `NO_SPACE`. Raw socket deadline
509
+ hints may reach 10820000 ms; other operations retain their one-hour ceiling.
510
+ They MUST stream with bounded memory, protect active output from orphan cleanup,
511
+ and cancel/drain when the grant is revoked or the
512
+ integration is disabled. JSON calls retain their 10-second bound.
501
513
 
502
514
  ### Destination permission observations
503
515
 
@@ -12,6 +12,12 @@
12
12
  "enum": ["json", "raw"],
13
13
  "description": "Defaults to json. Raw requires an explicitly approved raw_max_bytes profile."
14
14
  },
15
+ "expected_size": {
16
+ "type": "integer",
17
+ "minimum": 0,
18
+ "maximum": 10737418240,
19
+ "description": "Raw only: exact byte size of the pinned source version from metadata. Narrows staging reservation and execution budget; mismatch is refused."
20
+ },
15
21
  "delegation_id": {
16
22
  "type": "string",
17
23
  "pattern": "^[a-f0-9]{64}$"
@@ -3,6 +3,8 @@
3
3
  "margin_s": 10,
4
4
  "executor": {
5
5
  "op_s": 30,
6
+ "webapi_raw_execution_s": 10800,
7
+ "webapi_raw_answer_s": 10810,
6
8
  "root_run_program_default_s": 20,
7
9
  "root_run_program_max_s": 120,
8
10
  "root_run_answer_s": 130,
@@ -10,6 +12,7 @@
10
12
  },
11
13
  "client": {
12
14
  "op_s": 40,
15
+ "webapi_raw_s": 10820,
13
16
  "root_run_s": 140
14
17
  },
15
18
  "request": {