@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.
- package/apps/cloudly/app.json +2 -2
- package/apps/cloudly/versions/1.2.1/config.json +173 -0
- package/apps/cloudly/versions/1.3.0/config.json +173 -0
- package/appstore.json +2 -2
- package/changelog.md +29 -0
- package/dist_ts_client/data.generated.js +353 -5
- package/package.json +4 -4
- package/readme.md +2 -2
- package/ts_client/data.generated.ts +352 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@serve.zone/appstore",
|
|
3
|
-
"version": "32.
|
|
3
|
+
"version": "32.3.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "serve.zone App Store metadata, parser, and resolver client.",
|
|
6
6
|
"type": "module",
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"@serve.zone/interfaces": "32.3.0"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@git.zone/tsbuild": "^
|
|
17
|
+
"@git.zone/tsbuild": "^5.0.0",
|
|
18
18
|
"@git.zone/tsdoc": "2.2.2",
|
|
19
|
-
"@git.zone/tstest": "6.
|
|
20
|
-
"@types/node": "26.6.
|
|
19
|
+
"@git.zone/tstest": "6.3.0",
|
|
20
|
+
"@types/node": "26.6.2"
|
|
21
21
|
},
|
|
22
22
|
"files": [
|
|
23
23
|
"apps/**/*",
|
package/readme.md
CHANGED
|
@@ -33,7 +33,7 @@ The App Store currently lists 21 app templates.
|
|
|
33
33
|
| App ID | Name | App Store category | Image | Port |
|
|
34
34
|
| --- | --- | --- | --- | --- |
|
|
35
35
|
| `adminer` | Adminer | Dev Tools | `adminer:latest` | `8080` |
|
|
36
|
-
| `cloudly` | Cloudly | Dev Tools | `code.foss.global/serve.zone/cloudly@sha256:
|
|
36
|
+
| `cloudly` | Cloudly | Dev Tools | `code.foss.global/serve.zone/cloudly@sha256:26a7469181059aca2a5505d2f86e8f6286ebc0b1e0dee0df2262bfe3df2d1f06` | `3000` |
|
|
37
37
|
| `ghost` | Ghost | CMS | `ghost:latest` | `2368` |
|
|
38
38
|
| `gitea` | Gitea | Dev Tools | `gitea/gitea:latest` | `3000` |
|
|
39
39
|
| `gitops` | GitOps | Dev Tools | `code.foss.global/serve.zone/gitops:2.13.0` | `3000` |
|
|
@@ -64,7 +64,7 @@ Some templates ask Onebox to provision local platform services and inject connec
|
|
|
64
64
|
|
|
65
65
|
| App ID | Requirements | Notes |
|
|
66
66
|
| --- | --- | --- |
|
|
67
|
-
| `cloudly` | MongoDB, S3 | Version `1.
|
|
67
|
+
| `cloudly` | MongoDB, S3 | Version `1.3.0` pins Cloudly `33.0.0` and requires Onebox `32.4.0`. It keeps the `1.2.1` runtime contract and is breaking: startup migrates the data from `0.20.0` to `0.21.0`, dropping the relay certificate and DNS collections of Cloudly's retired Cloudflare and Let's Encrypt integration and logging every relay name whose A record Cloudly had written at Cloudflare, which the operator removes at the provider. dcrouter holds every cluster relay name's A record and certificate from then on, `SERVEZONE_SSLMODE=letsencrypt` is refused, and the typed API changes as the Cloudly 33.0.0 changelog lists. Stop Cloudly and take a verified backup before upgrading; rollback is full-restore-only. From `1.1.10` or earlier, startup first runs the `1.2.0` steps from `0.10.0` and needs completed Secrets v2 cutover retirement. Both the existing Secrets v2 keyring and operator-approved WorkloadInit authority are required encrypted inputs delivered as separate root-owned `0400` files; the public environment contains only their fixed paths. |
|
|
68
68
|
| `ghost` | MariaDB | Uses MySQL-style `database__connection__*` environment variables. |
|
|
69
69
|
| `gitea` | MariaDB | Uses Gitea database environment variables with `${MARIADB_*}` placeholders. |
|
|
70
70
|
| `nextcloud` | MariaDB, Valkey | Uses MySQL-compatible database variables. Valkey is declared as a platform requirement. |
|
|
@@ -34,7 +34,7 @@ export const appStorePackageData: IAppStorePackageData = {
|
|
|
34
34
|
"description": "Multi-node serve.zone control plane for clusters, workload services, domains, and deployments.",
|
|
35
35
|
"category": "Dev Tools",
|
|
36
36
|
"iconName": "server",
|
|
37
|
-
"latestVersion": "1.
|
|
37
|
+
"latestVersion": "1.3.0",
|
|
38
38
|
"versions": [
|
|
39
39
|
"1.0.0",
|
|
40
40
|
"1.1.0",
|
|
@@ -48,7 +48,9 @@ export const appStorePackageData: IAppStorePackageData = {
|
|
|
48
48
|
"1.1.8",
|
|
49
49
|
"1.1.9",
|
|
50
50
|
"1.1.10",
|
|
51
|
-
"1.2.0"
|
|
51
|
+
"1.2.0",
|
|
52
|
+
"1.2.1",
|
|
53
|
+
"1.3.0"
|
|
52
54
|
],
|
|
53
55
|
"maintainer": "serve.zone",
|
|
54
56
|
"links": {
|
|
@@ -1990,6 +1992,352 @@ export const appStorePackageData: IAppStorePackageData = {
|
|
|
1990
1992
|
"expectedStatus": 200
|
|
1991
1993
|
}
|
|
1992
1994
|
},
|
|
1995
|
+
"apps/cloudly/versions/1.2.1/config.json": {
|
|
1996
|
+
"image": "code.foss.global/serve.zone/cloudly@sha256:f0da8c0ef826d2e044aa49ec1b59533f7be16c372357dbf818fe488ccdc5b0c9",
|
|
1997
|
+
"targetPorts": [
|
|
1998
|
+
{
|
|
1999
|
+
"name": "web",
|
|
2000
|
+
"port": 3000,
|
|
2001
|
+
"protocol": "http",
|
|
2002
|
+
"default": true
|
|
2003
|
+
}
|
|
2004
|
+
],
|
|
2005
|
+
"envVars": [
|
|
2006
|
+
{
|
|
2007
|
+
"key": "SERVEZONE_ENVIRONMENT",
|
|
2008
|
+
"value": "production",
|
|
2009
|
+
"description": "Cloudly runtime environment.",
|
|
2010
|
+
"required": true
|
|
2011
|
+
},
|
|
2012
|
+
{
|
|
2013
|
+
"key": "SERVEZONE_PUBLIC_ORIGIN",
|
|
2014
|
+
"value": "https://${SERVICE_DOMAIN}",
|
|
2015
|
+
"description": "Canonical public Cloudly origin including protocol and optional public port.",
|
|
2016
|
+
"required": true
|
|
2017
|
+
},
|
|
2018
|
+
{
|
|
2019
|
+
"key": "SERVEZONE_LISTENPORT",
|
|
2020
|
+
"value": "3000",
|
|
2021
|
+
"description": "Internal Cloudly HTTP port inside the container.",
|
|
2022
|
+
"required": true
|
|
2023
|
+
},
|
|
2024
|
+
{
|
|
2025
|
+
"key": "SERVEZONE_SSLMODE",
|
|
2026
|
+
"value": "external",
|
|
2027
|
+
"description": "Use external TLS termination through Onebox or dcrouter.",
|
|
2028
|
+
"required": true
|
|
2029
|
+
},
|
|
2030
|
+
{
|
|
2031
|
+
"key": "SERVEZONE_SECRET_KEYRING_PATH",
|
|
2032
|
+
"value": "/run/secrets/cloudly-secrets-v2-keyring.json",
|
|
2033
|
+
"description": "Path to the Cloudly Secrets v2 keyring mounted by Onebox; the keyring value is never placed in the public environment.",
|
|
2034
|
+
"required": true
|
|
2035
|
+
},
|
|
2036
|
+
{
|
|
2037
|
+
"key": "SERVEZONE_SECRET_KEYRING_FILE",
|
|
2038
|
+
"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.",
|
|
2039
|
+
"required": true,
|
|
2040
|
+
"secret": true,
|
|
2041
|
+
"delivery": {
|
|
2042
|
+
"type": "file",
|
|
2043
|
+
"targetPath": "/run/secrets/cloudly-secrets-v2-keyring.json",
|
|
2044
|
+
"uid": 0,
|
|
2045
|
+
"gid": 0,
|
|
2046
|
+
"mode": 256
|
|
2047
|
+
}
|
|
2048
|
+
},
|
|
2049
|
+
{
|
|
2050
|
+
"key": "SERVEZONE_WORKLOADINIT_APPROVAL_PATH",
|
|
2051
|
+
"value": "/run/secrets/cloudly-workloadinit-approval.json",
|
|
2052
|
+
"description": "Private WorkloadInit release-approval artifact mounted by Onebox for Coreflow secret-runtime registration.",
|
|
2053
|
+
"required": true
|
|
2054
|
+
},
|
|
2055
|
+
{
|
|
2056
|
+
"key": "SERVEZONE_WORKLOADINIT_APPROVAL_FILE",
|
|
2057
|
+
"description": "Operator-approved WorkloadInit release authority. Onebox stores it encrypted and mounts it only as a root-readable file.",
|
|
2058
|
+
"required": true,
|
|
2059
|
+
"secret": true,
|
|
2060
|
+
"delivery": {
|
|
2061
|
+
"type": "file",
|
|
2062
|
+
"targetPath": "/run/secrets/cloudly-workloadinit-approval.json",
|
|
2063
|
+
"uid": 0,
|
|
2064
|
+
"gid": 0,
|
|
2065
|
+
"mode": 256
|
|
2066
|
+
}
|
|
2067
|
+
},
|
|
2068
|
+
{
|
|
2069
|
+
"key": "MONGODB_URL",
|
|
2070
|
+
"value": "${MONGODB_URI}",
|
|
2071
|
+
"description": "Authenticated MongoDB wire-protocol URL provisioned by Onebox Corestore.",
|
|
2072
|
+
"required": true
|
|
2073
|
+
},
|
|
2074
|
+
{
|
|
2075
|
+
"key": "MONGODB_NAME",
|
|
2076
|
+
"value": "${MONGODB_DATABASE}",
|
|
2077
|
+
"description": "MongoDB wire-protocol database name provisioned by Onebox Corestore.",
|
|
2078
|
+
"required": true
|
|
2079
|
+
},
|
|
2080
|
+
{
|
|
2081
|
+
"key": "MONGODB_USER",
|
|
2082
|
+
"value": "${MONGODB_USERNAME}",
|
|
2083
|
+
"description": "MongoDB wire-protocol username provisioned by Onebox Corestore.",
|
|
2084
|
+
"required": true
|
|
2085
|
+
},
|
|
2086
|
+
{
|
|
2087
|
+
"key": "MONGODB_PASS",
|
|
2088
|
+
"value": "${MONGODB_PASSWORD}",
|
|
2089
|
+
"description": "MongoDB wire-protocol password provisioned by Onebox Corestore.",
|
|
2090
|
+
"required": true
|
|
2091
|
+
},
|
|
2092
|
+
{
|
|
2093
|
+
"key": "S3_ENDPOINT",
|
|
2094
|
+
"value": "onebox-corestore",
|
|
2095
|
+
"description": "S3 endpoint host provisioned by Onebox Corestore.",
|
|
2096
|
+
"required": true
|
|
2097
|
+
},
|
|
2098
|
+
{
|
|
2099
|
+
"key": "S3_PORT",
|
|
2100
|
+
"value": "9000",
|
|
2101
|
+
"description": "S3 endpoint port provisioned by Onebox Corestore.",
|
|
2102
|
+
"required": true
|
|
2103
|
+
},
|
|
2104
|
+
{
|
|
2105
|
+
"key": "S3_USESSL",
|
|
2106
|
+
"value": "false",
|
|
2107
|
+
"description": "Use plain HTTP for internal Corestore S3 traffic on the Onebox network.",
|
|
2108
|
+
"required": true
|
|
2109
|
+
},
|
|
2110
|
+
{
|
|
2111
|
+
"key": "S3_BUCKET",
|
|
2112
|
+
"value": "${S3_BUCKET}",
|
|
2113
|
+
"description": "S3 bucket provisioned by Onebox Corestore for Cloudly's registry.",
|
|
2114
|
+
"required": true
|
|
2115
|
+
},
|
|
2116
|
+
{
|
|
2117
|
+
"key": "S3_ACCESSKEY",
|
|
2118
|
+
"value": "${S3_ACCESS_KEY}",
|
|
2119
|
+
"description": "S3 access key provisioned by Onebox Corestore.",
|
|
2120
|
+
"required": true
|
|
2121
|
+
},
|
|
2122
|
+
{
|
|
2123
|
+
"key": "S3_SECRETKEY",
|
|
2124
|
+
"value": "${S3_SECRET_KEY}",
|
|
2125
|
+
"description": "S3 secret key provisioned by Onebox Corestore.",
|
|
2126
|
+
"required": true
|
|
2127
|
+
}
|
|
2128
|
+
],
|
|
2129
|
+
"platformRequirements": {
|
|
2130
|
+
"mongodb": true,
|
|
2131
|
+
"s3": true
|
|
2132
|
+
},
|
|
2133
|
+
"platformOidc": {
|
|
2134
|
+
"redirectPath": "/auth/oidc/callback",
|
|
2135
|
+
"roles": [
|
|
2136
|
+
{
|
|
2137
|
+
"id": "admin",
|
|
2138
|
+
"label": "Administrator",
|
|
2139
|
+
"description": "Full Cloudly administration for this hosted instance."
|
|
2140
|
+
},
|
|
2141
|
+
{
|
|
2142
|
+
"id": "user",
|
|
2143
|
+
"label": "User",
|
|
2144
|
+
"description": "Standard authenticated Cloudly access for this hosted instance."
|
|
2145
|
+
}
|
|
2146
|
+
],
|
|
2147
|
+
"environmentVariables": {
|
|
2148
|
+
"issuerUrl": "SERVEZONE_PLATFORM_OIDC_ISSUER",
|
|
2149
|
+
"clientId": "SERVEZONE_PLATFORM_OIDC_CLIENT_ID",
|
|
2150
|
+
"clientSecret": "SERVEZONE_PLATFORM_OIDC_CLIENT_SECRET",
|
|
2151
|
+
"redirectUri": "SERVEZONE_PLATFORM_OIDC_REDIRECT_URI",
|
|
2152
|
+
"audience": "SERVEZONE_PLATFORM_OIDC_AUDIENCE"
|
|
2153
|
+
},
|
|
2154
|
+
"clientAuthenticationMethod": "client_secret_basic"
|
|
2155
|
+
},
|
|
2156
|
+
"minOneboxVersion": "32.4.0",
|
|
2157
|
+
"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.",
|
|
2158
|
+
"breaking": false,
|
|
2159
|
+
"requiresManualReview": false,
|
|
2160
|
+
"migrationRequired": false,
|
|
2161
|
+
"backupBeforeUpgrade": false,
|
|
2162
|
+
"healthCheck": {
|
|
2163
|
+
"path": "/status",
|
|
2164
|
+
"port": 3000,
|
|
2165
|
+
"expectedStatus": 200
|
|
2166
|
+
}
|
|
2167
|
+
},
|
|
2168
|
+
"apps/cloudly/versions/1.3.0/config.json": {
|
|
2169
|
+
"image": "code.foss.global/serve.zone/cloudly@sha256:26a7469181059aca2a5505d2f86e8f6286ebc0b1e0dee0df2262bfe3df2d1f06",
|
|
2170
|
+
"targetPorts": [
|
|
2171
|
+
{
|
|
2172
|
+
"name": "web",
|
|
2173
|
+
"port": 3000,
|
|
2174
|
+
"protocol": "http",
|
|
2175
|
+
"default": true
|
|
2176
|
+
}
|
|
2177
|
+
],
|
|
2178
|
+
"envVars": [
|
|
2179
|
+
{
|
|
2180
|
+
"key": "SERVEZONE_ENVIRONMENT",
|
|
2181
|
+
"value": "production",
|
|
2182
|
+
"description": "Cloudly runtime environment.",
|
|
2183
|
+
"required": true
|
|
2184
|
+
},
|
|
2185
|
+
{
|
|
2186
|
+
"key": "SERVEZONE_PUBLIC_ORIGIN",
|
|
2187
|
+
"value": "https://${SERVICE_DOMAIN}",
|
|
2188
|
+
"description": "Canonical public Cloudly origin including protocol and optional public port.",
|
|
2189
|
+
"required": true
|
|
2190
|
+
},
|
|
2191
|
+
{
|
|
2192
|
+
"key": "SERVEZONE_LISTENPORT",
|
|
2193
|
+
"value": "3000",
|
|
2194
|
+
"description": "Internal Cloudly HTTP port inside the container.",
|
|
2195
|
+
"required": true
|
|
2196
|
+
},
|
|
2197
|
+
{
|
|
2198
|
+
"key": "SERVEZONE_SSLMODE",
|
|
2199
|
+
"value": "external",
|
|
2200
|
+
"description": "Use external TLS termination through Onebox or dcrouter.",
|
|
2201
|
+
"required": true
|
|
2202
|
+
},
|
|
2203
|
+
{
|
|
2204
|
+
"key": "SERVEZONE_SECRET_KEYRING_PATH",
|
|
2205
|
+
"value": "/run/secrets/cloudly-secrets-v2-keyring.json",
|
|
2206
|
+
"description": "Path to the Cloudly Secrets v2 keyring mounted by Onebox; the keyring value is never placed in the public environment.",
|
|
2207
|
+
"required": true
|
|
2208
|
+
},
|
|
2209
|
+
{
|
|
2210
|
+
"key": "SERVEZONE_SECRET_KEYRING_FILE",
|
|
2211
|
+
"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.",
|
|
2212
|
+
"required": true,
|
|
2213
|
+
"secret": true,
|
|
2214
|
+
"delivery": {
|
|
2215
|
+
"type": "file",
|
|
2216
|
+
"targetPath": "/run/secrets/cloudly-secrets-v2-keyring.json",
|
|
2217
|
+
"uid": 0,
|
|
2218
|
+
"gid": 0,
|
|
2219
|
+
"mode": 256
|
|
2220
|
+
}
|
|
2221
|
+
},
|
|
2222
|
+
{
|
|
2223
|
+
"key": "SERVEZONE_WORKLOADINIT_APPROVAL_PATH",
|
|
2224
|
+
"value": "/run/secrets/cloudly-workloadinit-approval.json",
|
|
2225
|
+
"description": "Private WorkloadInit release-approval artifact mounted by Onebox for Coreflow secret-runtime registration.",
|
|
2226
|
+
"required": true
|
|
2227
|
+
},
|
|
2228
|
+
{
|
|
2229
|
+
"key": "SERVEZONE_WORKLOADINIT_APPROVAL_FILE",
|
|
2230
|
+
"description": "Operator-approved WorkloadInit release authority. Onebox stores it encrypted and mounts it only as a root-readable file.",
|
|
2231
|
+
"required": true,
|
|
2232
|
+
"secret": true,
|
|
2233
|
+
"delivery": {
|
|
2234
|
+
"type": "file",
|
|
2235
|
+
"targetPath": "/run/secrets/cloudly-workloadinit-approval.json",
|
|
2236
|
+
"uid": 0,
|
|
2237
|
+
"gid": 0,
|
|
2238
|
+
"mode": 256
|
|
2239
|
+
}
|
|
2240
|
+
},
|
|
2241
|
+
{
|
|
2242
|
+
"key": "MONGODB_URL",
|
|
2243
|
+
"value": "${MONGODB_URI}",
|
|
2244
|
+
"description": "Authenticated MongoDB wire-protocol URL provisioned by Onebox Corestore.",
|
|
2245
|
+
"required": true
|
|
2246
|
+
},
|
|
2247
|
+
{
|
|
2248
|
+
"key": "MONGODB_NAME",
|
|
2249
|
+
"value": "${MONGODB_DATABASE}",
|
|
2250
|
+
"description": "MongoDB wire-protocol database name provisioned by Onebox Corestore.",
|
|
2251
|
+
"required": true
|
|
2252
|
+
},
|
|
2253
|
+
{
|
|
2254
|
+
"key": "MONGODB_USER",
|
|
2255
|
+
"value": "${MONGODB_USERNAME}",
|
|
2256
|
+
"description": "MongoDB wire-protocol username provisioned by Onebox Corestore.",
|
|
2257
|
+
"required": true
|
|
2258
|
+
},
|
|
2259
|
+
{
|
|
2260
|
+
"key": "MONGODB_PASS",
|
|
2261
|
+
"value": "${MONGODB_PASSWORD}",
|
|
2262
|
+
"description": "MongoDB wire-protocol password provisioned by Onebox Corestore.",
|
|
2263
|
+
"required": true
|
|
2264
|
+
},
|
|
2265
|
+
{
|
|
2266
|
+
"key": "S3_ENDPOINT",
|
|
2267
|
+
"value": "onebox-corestore",
|
|
2268
|
+
"description": "S3 endpoint host provisioned by Onebox Corestore.",
|
|
2269
|
+
"required": true
|
|
2270
|
+
},
|
|
2271
|
+
{
|
|
2272
|
+
"key": "S3_PORT",
|
|
2273
|
+
"value": "9000",
|
|
2274
|
+
"description": "S3 endpoint port provisioned by Onebox Corestore.",
|
|
2275
|
+
"required": true
|
|
2276
|
+
},
|
|
2277
|
+
{
|
|
2278
|
+
"key": "S3_USESSL",
|
|
2279
|
+
"value": "false",
|
|
2280
|
+
"description": "Use plain HTTP for internal Corestore S3 traffic on the Onebox network.",
|
|
2281
|
+
"required": true
|
|
2282
|
+
},
|
|
2283
|
+
{
|
|
2284
|
+
"key": "S3_BUCKET",
|
|
2285
|
+
"value": "${S3_BUCKET}",
|
|
2286
|
+
"description": "S3 bucket provisioned by Onebox Corestore for Cloudly's registry.",
|
|
2287
|
+
"required": true
|
|
2288
|
+
},
|
|
2289
|
+
{
|
|
2290
|
+
"key": "S3_ACCESSKEY",
|
|
2291
|
+
"value": "${S3_ACCESS_KEY}",
|
|
2292
|
+
"description": "S3 access key provisioned by Onebox Corestore.",
|
|
2293
|
+
"required": true
|
|
2294
|
+
},
|
|
2295
|
+
{
|
|
2296
|
+
"key": "S3_SECRETKEY",
|
|
2297
|
+
"value": "${S3_SECRET_KEY}",
|
|
2298
|
+
"description": "S3 secret key provisioned by Onebox Corestore.",
|
|
2299
|
+
"required": true
|
|
2300
|
+
}
|
|
2301
|
+
],
|
|
2302
|
+
"platformRequirements": {
|
|
2303
|
+
"mongodb": true,
|
|
2304
|
+
"s3": true
|
|
2305
|
+
},
|
|
2306
|
+
"platformOidc": {
|
|
2307
|
+
"redirectPath": "/auth/oidc/callback",
|
|
2308
|
+
"roles": [
|
|
2309
|
+
{
|
|
2310
|
+
"id": "admin",
|
|
2311
|
+
"label": "Administrator",
|
|
2312
|
+
"description": "Full Cloudly administration for this hosted instance."
|
|
2313
|
+
},
|
|
2314
|
+
{
|
|
2315
|
+
"id": "user",
|
|
2316
|
+
"label": "User",
|
|
2317
|
+
"description": "Standard authenticated Cloudly access for this hosted instance."
|
|
2318
|
+
}
|
|
2319
|
+
],
|
|
2320
|
+
"environmentVariables": {
|
|
2321
|
+
"issuerUrl": "SERVEZONE_PLATFORM_OIDC_ISSUER",
|
|
2322
|
+
"clientId": "SERVEZONE_PLATFORM_OIDC_CLIENT_ID",
|
|
2323
|
+
"clientSecret": "SERVEZONE_PLATFORM_OIDC_CLIENT_SECRET",
|
|
2324
|
+
"redirectUri": "SERVEZONE_PLATFORM_OIDC_REDIRECT_URI",
|
|
2325
|
+
"audience": "SERVEZONE_PLATFORM_OIDC_AUDIENCE"
|
|
2326
|
+
},
|
|
2327
|
+
"clientAuthenticationMethod": "client_secret_basic"
|
|
2328
|
+
},
|
|
2329
|
+
"minOneboxVersion": "32.4.0",
|
|
2330
|
+
"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.",
|
|
2331
|
+
"breaking": true,
|
|
2332
|
+
"requiresManualReview": true,
|
|
2333
|
+
"migrationRequired": true,
|
|
2334
|
+
"backupBeforeUpgrade": true,
|
|
2335
|
+
"healthCheck": {
|
|
2336
|
+
"path": "/status",
|
|
2337
|
+
"port": 3000,
|
|
2338
|
+
"expectedStatus": 200
|
|
2339
|
+
}
|
|
2340
|
+
},
|
|
1993
2341
|
"apps/ghost/app.json": {
|
|
1994
2342
|
"id": "ghost",
|
|
1995
2343
|
"name": "Ghost",
|
|
@@ -2810,7 +3158,7 @@ export const appStorePackageData: IAppStorePackageData = {
|
|
|
2810
3158
|
}
|
|
2811
3159
|
},
|
|
2812
3160
|
"appstore.json": {
|
|
2813
|
-
"updatedAt": "2026-09-
|
|
3161
|
+
"updatedAt": "2026-09-23T23:40:57Z",
|
|
2814
3162
|
"apps": [
|
|
2815
3163
|
{
|
|
2816
3164
|
"id": "nginx",
|
|
@@ -3018,7 +3366,7 @@ export const appStorePackageData: IAppStorePackageData = {
|
|
|
3018
3366
|
"description": "Multi-node serve.zone control plane for clusters, workload services, domains, and deployments.",
|
|
3019
3367
|
"category": "Dev Tools",
|
|
3020
3368
|
"iconName": "server",
|
|
3021
|
-
"latestVersion": "1.
|
|
3369
|
+
"latestVersion": "1.3.0",
|
|
3022
3370
|
"tags": [
|
|
3023
3371
|
"serve.zone",
|
|
3024
3372
|
"control-plane",
|