@serve.zone/appstore 32.1.1 → 32.3.0

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.
@@ -4,8 +4,8 @@
4
4
  "description": "Multi-node serve.zone control plane for clusters, workload services, domains, and deployments.",
5
5
  "category": "Dev Tools",
6
6
  "iconName": "server",
7
- "latestVersion": "1.2.0",
8
- "versions": ["1.0.0", "1.1.0", "1.1.1", "1.1.2", "1.1.3", "1.1.4", "1.1.5", "1.1.6", "1.1.7", "1.1.8", "1.1.9", "1.1.10", "1.2.0"],
7
+ "latestVersion": "1.3.0",
8
+ "versions": ["1.0.0", "1.1.0", "1.1.1", "1.1.2", "1.1.3", "1.1.4", "1.1.5", "1.1.6", "1.1.7", "1.1.8", "1.1.9", "1.1.10", "1.2.0", "1.2.1", "1.3.0"],
9
9
  "maintainer": "serve.zone",
10
10
  "links": {
11
11
  "Source": "https://code.foss.global/serve.zone/cloudly",
@@ -0,0 +1,173 @@
1
+ {
2
+ "image": "code.foss.global/serve.zone/cloudly@sha256:f0da8c0ef826d2e044aa49ec1b59533f7be16c372357dbf818fe488ccdc5b0c9",
3
+ "targetPorts": [
4
+ {
5
+ "name": "web",
6
+ "port": 3000,
7
+ "protocol": "http",
8
+ "default": true
9
+ }
10
+ ],
11
+ "envVars": [
12
+ {
13
+ "key": "SERVEZONE_ENVIRONMENT",
14
+ "value": "production",
15
+ "description": "Cloudly runtime environment.",
16
+ "required": true
17
+ },
18
+ {
19
+ "key": "SERVEZONE_PUBLIC_ORIGIN",
20
+ "value": "https://${SERVICE_DOMAIN}",
21
+ "description": "Canonical public Cloudly origin including protocol and optional public port.",
22
+ "required": true
23
+ },
24
+ {
25
+ "key": "SERVEZONE_LISTENPORT",
26
+ "value": "3000",
27
+ "description": "Internal Cloudly HTTP port inside the container.",
28
+ "required": true
29
+ },
30
+ {
31
+ "key": "SERVEZONE_SSLMODE",
32
+ "value": "external",
33
+ "description": "Use external TLS termination through Onebox or dcrouter.",
34
+ "required": true
35
+ },
36
+ {
37
+ "key": "SERVEZONE_SECRET_KEYRING_PATH",
38
+ "value": "/run/secrets/cloudly-secrets-v2-keyring.json",
39
+ "description": "Path to the Cloudly Secrets v2 keyring mounted by Onebox; the keyring value is never placed in the public environment.",
40
+ "required": true
41
+ },
42
+ {
43
+ "key": "SERVEZONE_SECRET_KEYRING_FILE",
44
+ "description": "Existing Cloudly Secrets v2 keyring. Onebox stores it encrypted and mounts it only as a root-readable file; retain the existing keyring when upgrading.",
45
+ "required": true,
46
+ "secret": true,
47
+ "delivery": {
48
+ "type": "file",
49
+ "targetPath": "/run/secrets/cloudly-secrets-v2-keyring.json",
50
+ "uid": 0,
51
+ "gid": 0,
52
+ "mode": 256
53
+ }
54
+ },
55
+ {
56
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_PATH",
57
+ "value": "/run/secrets/cloudly-workloadinit-approval.json",
58
+ "description": "Private WorkloadInit release-approval artifact mounted by Onebox for Coreflow secret-runtime registration.",
59
+ "required": true
60
+ },
61
+ {
62
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_FILE",
63
+ "description": "Operator-approved WorkloadInit release authority. Onebox stores it encrypted and mounts it only as a root-readable file.",
64
+ "required": true,
65
+ "secret": true,
66
+ "delivery": {
67
+ "type": "file",
68
+ "targetPath": "/run/secrets/cloudly-workloadinit-approval.json",
69
+ "uid": 0,
70
+ "gid": 0,
71
+ "mode": 256
72
+ }
73
+ },
74
+ {
75
+ "key": "MONGODB_URL",
76
+ "value": "${MONGODB_URI}",
77
+ "description": "Authenticated MongoDB wire-protocol URL provisioned by Onebox Corestore.",
78
+ "required": true
79
+ },
80
+ {
81
+ "key": "MONGODB_NAME",
82
+ "value": "${MONGODB_DATABASE}",
83
+ "description": "MongoDB wire-protocol database name provisioned by Onebox Corestore.",
84
+ "required": true
85
+ },
86
+ {
87
+ "key": "MONGODB_USER",
88
+ "value": "${MONGODB_USERNAME}",
89
+ "description": "MongoDB wire-protocol username provisioned by Onebox Corestore.",
90
+ "required": true
91
+ },
92
+ {
93
+ "key": "MONGODB_PASS",
94
+ "value": "${MONGODB_PASSWORD}",
95
+ "description": "MongoDB wire-protocol password provisioned by Onebox Corestore.",
96
+ "required": true
97
+ },
98
+ {
99
+ "key": "S3_ENDPOINT",
100
+ "value": "onebox-corestore",
101
+ "description": "S3 endpoint host provisioned by Onebox Corestore.",
102
+ "required": true
103
+ },
104
+ {
105
+ "key": "S3_PORT",
106
+ "value": "9000",
107
+ "description": "S3 endpoint port provisioned by Onebox Corestore.",
108
+ "required": true
109
+ },
110
+ {
111
+ "key": "S3_USESSL",
112
+ "value": "false",
113
+ "description": "Use plain HTTP for internal Corestore S3 traffic on the Onebox network.",
114
+ "required": true
115
+ },
116
+ {
117
+ "key": "S3_BUCKET",
118
+ "value": "${S3_BUCKET}",
119
+ "description": "S3 bucket provisioned by Onebox Corestore for Cloudly's registry.",
120
+ "required": true
121
+ },
122
+ {
123
+ "key": "S3_ACCESSKEY",
124
+ "value": "${S3_ACCESS_KEY}",
125
+ "description": "S3 access key provisioned by Onebox Corestore.",
126
+ "required": true
127
+ },
128
+ {
129
+ "key": "S3_SECRETKEY",
130
+ "value": "${S3_SECRET_KEY}",
131
+ "description": "S3 secret key provisioned by Onebox Corestore.",
132
+ "required": true
133
+ }
134
+ ],
135
+ "platformRequirements": {
136
+ "mongodb": true,
137
+ "s3": true
138
+ },
139
+ "platformOidc": {
140
+ "redirectPath": "/auth/oidc/callback",
141
+ "roles": [
142
+ {
143
+ "id": "admin",
144
+ "label": "Administrator",
145
+ "description": "Full Cloudly administration for this hosted instance."
146
+ },
147
+ {
148
+ "id": "user",
149
+ "label": "User",
150
+ "description": "Standard authenticated Cloudly access for this hosted instance."
151
+ }
152
+ ],
153
+ "environmentVariables": {
154
+ "issuerUrl": "SERVEZONE_PLATFORM_OIDC_ISSUER",
155
+ "clientId": "SERVEZONE_PLATFORM_OIDC_CLIENT_ID",
156
+ "clientSecret": "SERVEZONE_PLATFORM_OIDC_CLIENT_SECRET",
157
+ "redirectUri": "SERVEZONE_PLATFORM_OIDC_REDIRECT_URI",
158
+ "audience": "SERVEZONE_PLATFORM_OIDC_AUDIENCE"
159
+ },
160
+ "clientAuthenticationMethod": "client_secret_basic"
161
+ },
162
+ "minOneboxVersion": "32.4.0",
163
+ "changelog": "Move Cloudly to 32.9.1, a fixes-only patch over 32.9.0: a certificate request for a relay-namespace name whose relay is not enabled is refused, a route whose certificate Cloudly cannot obtain or whose hostname or service conflicts is left out of its cluster's ingress route table instead of freezing or withdrawing the whole table, and service admission refuses relay-namespace hostnames and hostnames another service's deployment route claim owns. 32.9.1 adds no data migration step and keeps the 1.2.0 runtime contract, so upgrading from 1.2.0 needs no manual review, data migration or backup. An installation on 1.1.10 or earlier still runs the 1.2.0 startup migration to 0.20.0 on this image: it requires completed Secrets v2 cutover retirement and a fresh verified restorable checkpoint, and rolling it back requires a full restore. Requires Onebox 32.4.0. Preserve existing user and storage identities, OIDC bindings, the encrypted keyring and WorkloadInit approval as dedicated root-readable files.",
164
+ "breaking": false,
165
+ "requiresManualReview": false,
166
+ "migrationRequired": false,
167
+ "backupBeforeUpgrade": false,
168
+ "healthCheck": {
169
+ "path": "/status",
170
+ "port": 3000,
171
+ "expectedStatus": 200
172
+ }
173
+ }
@@ -0,0 +1,173 @@
1
+ {
2
+ "image": "code.foss.global/serve.zone/cloudly@sha256:26a7469181059aca2a5505d2f86e8f6286ebc0b1e0dee0df2262bfe3df2d1f06",
3
+ "targetPorts": [
4
+ {
5
+ "name": "web",
6
+ "port": 3000,
7
+ "protocol": "http",
8
+ "default": true
9
+ }
10
+ ],
11
+ "envVars": [
12
+ {
13
+ "key": "SERVEZONE_ENVIRONMENT",
14
+ "value": "production",
15
+ "description": "Cloudly runtime environment.",
16
+ "required": true
17
+ },
18
+ {
19
+ "key": "SERVEZONE_PUBLIC_ORIGIN",
20
+ "value": "https://${SERVICE_DOMAIN}",
21
+ "description": "Canonical public Cloudly origin including protocol and optional public port.",
22
+ "required": true
23
+ },
24
+ {
25
+ "key": "SERVEZONE_LISTENPORT",
26
+ "value": "3000",
27
+ "description": "Internal Cloudly HTTP port inside the container.",
28
+ "required": true
29
+ },
30
+ {
31
+ "key": "SERVEZONE_SSLMODE",
32
+ "value": "external",
33
+ "description": "Use external TLS termination through Onebox or dcrouter.",
34
+ "required": true
35
+ },
36
+ {
37
+ "key": "SERVEZONE_SECRET_KEYRING_PATH",
38
+ "value": "/run/secrets/cloudly-secrets-v2-keyring.json",
39
+ "description": "Path to the Cloudly Secrets v2 keyring mounted by Onebox; the keyring value is never placed in the public environment.",
40
+ "required": true
41
+ },
42
+ {
43
+ "key": "SERVEZONE_SECRET_KEYRING_FILE",
44
+ "description": "Existing Cloudly Secrets v2 keyring. Onebox stores it encrypted and mounts it only as a root-readable file; retain the existing keyring when upgrading.",
45
+ "required": true,
46
+ "secret": true,
47
+ "delivery": {
48
+ "type": "file",
49
+ "targetPath": "/run/secrets/cloudly-secrets-v2-keyring.json",
50
+ "uid": 0,
51
+ "gid": 0,
52
+ "mode": 256
53
+ }
54
+ },
55
+ {
56
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_PATH",
57
+ "value": "/run/secrets/cloudly-workloadinit-approval.json",
58
+ "description": "Private WorkloadInit release-approval artifact mounted by Onebox for Coreflow secret-runtime registration.",
59
+ "required": true
60
+ },
61
+ {
62
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_FILE",
63
+ "description": "Operator-approved WorkloadInit release authority. Onebox stores it encrypted and mounts it only as a root-readable file.",
64
+ "required": true,
65
+ "secret": true,
66
+ "delivery": {
67
+ "type": "file",
68
+ "targetPath": "/run/secrets/cloudly-workloadinit-approval.json",
69
+ "uid": 0,
70
+ "gid": 0,
71
+ "mode": 256
72
+ }
73
+ },
74
+ {
75
+ "key": "MONGODB_URL",
76
+ "value": "${MONGODB_URI}",
77
+ "description": "Authenticated MongoDB wire-protocol URL provisioned by Onebox Corestore.",
78
+ "required": true
79
+ },
80
+ {
81
+ "key": "MONGODB_NAME",
82
+ "value": "${MONGODB_DATABASE}",
83
+ "description": "MongoDB wire-protocol database name provisioned by Onebox Corestore.",
84
+ "required": true
85
+ },
86
+ {
87
+ "key": "MONGODB_USER",
88
+ "value": "${MONGODB_USERNAME}",
89
+ "description": "MongoDB wire-protocol username provisioned by Onebox Corestore.",
90
+ "required": true
91
+ },
92
+ {
93
+ "key": "MONGODB_PASS",
94
+ "value": "${MONGODB_PASSWORD}",
95
+ "description": "MongoDB wire-protocol password provisioned by Onebox Corestore.",
96
+ "required": true
97
+ },
98
+ {
99
+ "key": "S3_ENDPOINT",
100
+ "value": "onebox-corestore",
101
+ "description": "S3 endpoint host provisioned by Onebox Corestore.",
102
+ "required": true
103
+ },
104
+ {
105
+ "key": "S3_PORT",
106
+ "value": "9000",
107
+ "description": "S3 endpoint port provisioned by Onebox Corestore.",
108
+ "required": true
109
+ },
110
+ {
111
+ "key": "S3_USESSL",
112
+ "value": "false",
113
+ "description": "Use plain HTTP for internal Corestore S3 traffic on the Onebox network.",
114
+ "required": true
115
+ },
116
+ {
117
+ "key": "S3_BUCKET",
118
+ "value": "${S3_BUCKET}",
119
+ "description": "S3 bucket provisioned by Onebox Corestore for Cloudly's registry.",
120
+ "required": true
121
+ },
122
+ {
123
+ "key": "S3_ACCESSKEY",
124
+ "value": "${S3_ACCESS_KEY}",
125
+ "description": "S3 access key provisioned by Onebox Corestore.",
126
+ "required": true
127
+ },
128
+ {
129
+ "key": "S3_SECRETKEY",
130
+ "value": "${S3_SECRET_KEY}",
131
+ "description": "S3 secret key provisioned by Onebox Corestore.",
132
+ "required": true
133
+ }
134
+ ],
135
+ "platformRequirements": {
136
+ "mongodb": true,
137
+ "s3": true
138
+ },
139
+ "platformOidc": {
140
+ "redirectPath": "/auth/oidc/callback",
141
+ "roles": [
142
+ {
143
+ "id": "admin",
144
+ "label": "Administrator",
145
+ "description": "Full Cloudly administration for this hosted instance."
146
+ },
147
+ {
148
+ "id": "user",
149
+ "label": "User",
150
+ "description": "Standard authenticated Cloudly access for this hosted instance."
151
+ }
152
+ ],
153
+ "environmentVariables": {
154
+ "issuerUrl": "SERVEZONE_PLATFORM_OIDC_ISSUER",
155
+ "clientId": "SERVEZONE_PLATFORM_OIDC_CLIENT_ID",
156
+ "clientSecret": "SERVEZONE_PLATFORM_OIDC_CLIENT_SECRET",
157
+ "redirectUri": "SERVEZONE_PLATFORM_OIDC_REDIRECT_URI",
158
+ "audience": "SERVEZONE_PLATFORM_OIDC_AUDIENCE"
159
+ },
160
+ "clientAuthenticationMethod": "client_secret_basic"
161
+ },
162
+ "minOneboxVersion": "32.4.0",
163
+ "changelog": "Move Cloudly to 33.0.0, a breaking release. Startup migrates the data from 0.20.0 to 0.21.0 through the step retire-cluster-relay-acme, which drops the relay certificate and DNS collections Cloudly kept while it issued relay certificates and wrote relay A records through its own Cloudflare credential, and logs a warning for every relay name whose A record Cloudly had written at Cloudflare: remove each such record at the provider, because dcrouter refuses a relay name another writer holds. dcrouter now holds every cluster relay name's A record and certificate, so enabling a cluster relay requires a dcrouter that advertises dns.clientRecords and certificates.exactIssuance; Cloudly reads no Cloudflare token, the Cloudflare domain sync is gone, and SERVEZONE_SSLMODE=letsencrypt is refused at start (this template keeps external). The typed API also changes for Corestore binding placement and credential material, Pallet-owned runtime specs, server-managed volume initialization and object-storage environment conflicts; review the Breaking Changes of the Cloudly 33.0.0 changelog before upgrading. The runtime contract is unchanged from 1.2.1 and requires Onebox 32.4.0. Stop Cloudly and take a verified backup before upgrading; the migration is forward-only, the 32.9 image refuses the migrated data, and rollback requires a full restore. An installation on 1.1.10 or earlier runs the 1.2.0 steps first, from 0.10.0, and also requires completed Secrets v2 cutover retirement. Preserve existing user and storage identities, OIDC bindings, the encrypted keyring and WorkloadInit approval as dedicated root-readable files.",
164
+ "breaking": true,
165
+ "requiresManualReview": true,
166
+ "migrationRequired": true,
167
+ "backupBeforeUpgrade": true,
168
+ "healthCheck": {
169
+ "path": "/status",
170
+ "port": 3000,
171
+ "expectedStatus": 200
172
+ }
173
+ }
package/appstore.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "updatedAt": "2026-09-23T15:44:52Z",
2
+ "updatedAt": "2026-09-23T23:40:57Z",
3
3
  "apps": [
4
4
  {
5
5
  "id": "nginx",
@@ -151,7 +151,7 @@
151
151
  "description": "Multi-node serve.zone control plane for clusters, workload services, domains, and deployments.",
152
152
  "category": "Dev Tools",
153
153
  "iconName": "server",
154
- "latestVersion": "1.2.0",
154
+ "latestVersion": "1.3.0",
155
155
  "tags": ["serve.zone", "control-plane", "clusters", "deployments"]
156
156
  },
157
157
  {
package/changelog.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-09-26 - 32.3.0
4
+
5
+ ### Features
6
+
7
+ - publish the Cloudly 1.3.0 template for Cloudly 33.0.0 (cloudly)
8
+ - Add Cloudly app version 1.3.0, pinned to the Cloudly 33.0.0 multi-platform image index `code.foss.global/serve.zone/cloudly@sha256:26a7469181059aca2a5505d2f86e8f6286ebc0b1e0dee0df2262bfe3df2d1f06` (linux/amd64 and linux/arm64), and mark it as the latest catalog version.
9
+ - Keep the 1.2.1 runtime contract and `minOneboxVersion` 32.4.0. Cloudly 33.0.0 reads no environment variable the template lacks and requires none it does not supply: every name in its `qenv.yml` `required:` list is a required template variable, and `SERVEZONE_SSLMODE` stays `external`, which 33.0.0 still accepts while it refuses `letsencrypt`. The template never carried a Cloudflare or Let's Encrypt variable, so none is removed.
10
+ - Mark the upgrade breaking, migration-required, backup-before-upgrade and manual-review. Startup migrates the data from 0.20.0 to 0.21.0 through `retire-cluster-relay-acme`, which drops Cloudly's relay certificate and DNS collections and logs every relay name whose A record Cloudly wrote at Cloudflare for the operator to remove there; the template changelog names that step, the dcrouter capabilities a cluster relay now needs, the typed API breaks, and the full-restore-only rollback.
11
+ - Update the bundled client data, the README guidance and the resolver regression coverage, which now also holds the latest template to the start-required variables of Cloudly 33.0.0.
12
+
13
+ ### Maintenance
14
+
15
+ - Bring the release tooling current: `packageManager` pnpm 12.4.2 → 12.5.1, `@git.zone/tstest` 6.2.0 → 6.3.0 and `@types/node` 26.6.1 → 26.6.2; pnpm 12.6.0 and `@types/node` 26.6.3 are still inside the seven-day window. `@git.zone/tsbuild` ^5.0.0 and `@git.zone/tsdoc` 2.2.2 are current. tstest 6.3.0 needs no migration here. `pnpm dedupe` leaves one `@types/node` 26 in the tree.
16
+
17
+ ## 2026-09-23 - 32.2.0
18
+
19
+ ### Features
20
+
21
+ - publish the Cloudly 1.2.1 template for Cloudly 32.9.1 (cloudly)
22
+ - Add Cloudly app version 1.2.1, pinned to the Cloudly 32.9.1 multi-platform image digest and requiring Onebox 32.4.0, and mark it as the latest catalog version.
23
+ - Keep the 1.2.0 runtime contract unchanged. Cloudly 32.9.1 is a fixes-only patch with no data migration step, so the breaking, manual-review, migration and backup-before-upgrade flags are false for the upgrade from 1.2.0; the template changelog states that an installation on 1.1.10 or earlier still runs the 1.2.0 migration to 0.20.0 with its full-restore-only rollback.
24
+ - Update the bundled client data, the README guidance and the resolver regression coverage for the new target.
25
+
26
+ ### Maintenance
27
+
28
+ - Raise the release tooling to `@git.zone/tsbuild` ^5.0.0. Its per-folder `tsconfig.json` migration does
29
+ not apply: no `ts*` folder carries its own `tsconfig.json` and `ts_client/tspublish.json` sets no compiler
30
+ options.
31
+
3
32
  ## 2026-09-23 - 32.1.1
4
33
 
5
34
  ### Fixes