@serve.zone/appstore 2.6.0 → 2.8.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@serve.zone/appstore",
3
- "version": "2.6.0",
3
+ "version": "2.8.0",
4
4
  "private": false,
5
5
  "description": "serve.zone App Store metadata, parser, and resolver client.",
6
6
  "type": "module",
@@ -15,9 +15,9 @@
15
15
  },
16
16
  "devDependencies": {
17
17
  "@git.zone/tsbuild": "^4.4.2",
18
- "@git.zone/tsdoc": "^2.1.1",
18
+ "@git.zone/tsdoc": "2.2.0",
19
19
  "@git.zone/tstest": "^4.0.0",
20
- "@types/node": "^26.4.1"
20
+ "@types/node": "26.4.0"
21
21
  },
22
22
  "files": [
23
23
  "apps/**/*",
package/readme.md CHANGED
@@ -31,7 +31,7 @@ The App Store currently lists 21 app templates.
31
31
  | App ID | Name | App Store category | Image | Port |
32
32
  | --- | --- | --- | --- | --- |
33
33
  | `adminer` | Adminer | Dev Tools | `adminer:latest` | `8080` |
34
- | `cloudly` | Cloudly | Dev Tools | `code.foss.global/serve.zone/cloudly@sha256:948b72927d177b8f73be0596017df78437cbaa0e96b5f2ce246590aebbab05e9` | `3000` |
34
+ | `cloudly` | Cloudly | Dev Tools | `code.foss.global/serve.zone/cloudly@sha256:2d5380d82e75e737ecf6701d50c9c4246998fde4252c32fc211af6619ae7b634` | `3000` |
35
35
  | `ghost` | Ghost | CMS | `ghost:latest` | `2368` |
36
36
  | `gitea` | Gitea | Dev Tools | `gitea/gitea:latest` | `3000` |
37
37
  | `gitops` | GitOps | Dev Tools | `code.foss.global/serve.zone/gitops:2.13.0` | `3000` |
@@ -58,7 +58,7 @@ Some templates ask Onebox to provision local platform services and inject connec
58
58
 
59
59
  | App ID | Requirements | Notes |
60
60
  | --- | --- | --- |
61
- | `cloudly` | MongoDB, S3 | Version `1.1.7` pins Cloudly `25.1.0` and requires Onebox `7.14.0`. The operator-approved WorkloadInit release authority is a required encrypted input delivered only as a root-readable file; the public environment contains its fixed file path, never its value. Onebox must complete its fenced retarget, zero-blocker diagnostics, allocation-fenced scratch rehearsal, receipt-bound production preparation, and mount verification before applying the held target. Rollback remains full-restore-only. |
61
+ | `cloudly` | MongoDB, S3 | Version `1.1.9` pins Cloudly `25.3.0` and requires Onebox `8.3.3`. It adds scoped Corestore grant bootstrap and sealed credential publication while preserving the `1.1.8` runtime contract and existing storage identities. 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. Complete cutover retirement and verify a fresh restorable checkpoint before upgrading. Rollback remains full-restore-only. |
62
62
  | `ghost` | MariaDB | Uses MySQL-style `database__connection__*` environment variables. |
63
63
  | `gitea` | MariaDB | Uses Gitea database environment variables with `${MARIADB_*}` placeholders. |
64
64
  | `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.1.7",
37
+ "latestVersion": "1.1.9",
38
38
  "versions": [
39
39
  "1.0.0",
40
40
  "1.1.0",
@@ -44,7 +44,9 @@ export const appStorePackageData: IAppStorePackageData = {
44
44
  "1.1.4",
45
45
  "1.1.5",
46
46
  "1.1.6",
47
- "1.1.7"
47
+ "1.1.7",
48
+ "1.1.8",
49
+ "1.1.9"
48
50
  ],
49
51
  "maintainer": "serve.zone",
50
52
  "links": {
@@ -1294,6 +1296,352 @@ export const appStorePackageData: IAppStorePackageData = {
1294
1296
  "expectedStatus": 200
1295
1297
  }
1296
1298
  },
1299
+ "apps/cloudly/versions/1.1.8/config.json": {
1300
+ "image": "code.foss.global/serve.zone/cloudly@sha256:1ebfebd84d7b8d5a65aba7afda3481fce54d57999d2d9c0ec3716ee969bc47ed",
1301
+ "targetPorts": [
1302
+ {
1303
+ "name": "web",
1304
+ "port": 3000,
1305
+ "protocol": "http",
1306
+ "default": true
1307
+ }
1308
+ ],
1309
+ "envVars": [
1310
+ {
1311
+ "key": "SERVEZONE_ENVIRONMENT",
1312
+ "value": "production",
1313
+ "description": "Cloudly runtime environment.",
1314
+ "required": true
1315
+ },
1316
+ {
1317
+ "key": "SERVEZONE_PUBLIC_ORIGIN",
1318
+ "value": "https://${SERVICE_DOMAIN}",
1319
+ "description": "Canonical public Cloudly origin including protocol and optional public port.",
1320
+ "required": true
1321
+ },
1322
+ {
1323
+ "key": "SERVEZONE_LISTENPORT",
1324
+ "value": "3000",
1325
+ "description": "Internal Cloudly HTTP port inside the container.",
1326
+ "required": true
1327
+ },
1328
+ {
1329
+ "key": "SERVEZONE_SSLMODE",
1330
+ "value": "external",
1331
+ "description": "Use external TLS termination through Onebox or dcrouter.",
1332
+ "required": true
1333
+ },
1334
+ {
1335
+ "key": "SERVEZONE_SECRET_KEYRING_PATH",
1336
+ "value": "/run/secrets/cloudly-secrets-v2-keyring.json",
1337
+ "description": "Path to the Cloudly Secrets v2 keyring mounted by Onebox; the keyring value is never placed in the public environment.",
1338
+ "required": true
1339
+ },
1340
+ {
1341
+ "key": "SERVEZONE_SECRET_KEYRING_FILE",
1342
+ "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.",
1343
+ "required": true,
1344
+ "secret": true,
1345
+ "delivery": {
1346
+ "type": "file",
1347
+ "targetPath": "/run/secrets/cloudly-secrets-v2-keyring.json",
1348
+ "uid": 0,
1349
+ "gid": 0,
1350
+ "mode": 256
1351
+ }
1352
+ },
1353
+ {
1354
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_PATH",
1355
+ "value": "/run/secrets/cloudly-workloadinit-approval.json",
1356
+ "description": "Private WorkloadInit release-approval artifact mounted by Onebox for Coreflow secret-runtime registration.",
1357
+ "required": true
1358
+ },
1359
+ {
1360
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_FILE",
1361
+ "description": "Operator-approved WorkloadInit release authority. Onebox stores it encrypted and mounts it only as a root-readable file.",
1362
+ "required": true,
1363
+ "secret": true,
1364
+ "delivery": {
1365
+ "type": "file",
1366
+ "targetPath": "/run/secrets/cloudly-workloadinit-approval.json",
1367
+ "uid": 0,
1368
+ "gid": 0,
1369
+ "mode": 256
1370
+ }
1371
+ },
1372
+ {
1373
+ "key": "MONGODB_URL",
1374
+ "value": "${MONGODB_URI}",
1375
+ "description": "Authenticated MongoDB wire-protocol URL provisioned by Onebox Corestore.",
1376
+ "required": true
1377
+ },
1378
+ {
1379
+ "key": "MONGODB_NAME",
1380
+ "value": "${MONGODB_DATABASE}",
1381
+ "description": "MongoDB wire-protocol database name provisioned by Onebox Corestore.",
1382
+ "required": true
1383
+ },
1384
+ {
1385
+ "key": "MONGODB_USER",
1386
+ "value": "${MONGODB_USERNAME}",
1387
+ "description": "MongoDB wire-protocol username provisioned by Onebox Corestore.",
1388
+ "required": true
1389
+ },
1390
+ {
1391
+ "key": "MONGODB_PASS",
1392
+ "value": "${MONGODB_PASSWORD}",
1393
+ "description": "MongoDB wire-protocol password provisioned by Onebox Corestore.",
1394
+ "required": true
1395
+ },
1396
+ {
1397
+ "key": "S3_ENDPOINT",
1398
+ "value": "onebox-corestore",
1399
+ "description": "S3 endpoint host provisioned by Onebox Corestore.",
1400
+ "required": true
1401
+ },
1402
+ {
1403
+ "key": "S3_PORT",
1404
+ "value": "9000",
1405
+ "description": "S3 endpoint port provisioned by Onebox Corestore.",
1406
+ "required": true
1407
+ },
1408
+ {
1409
+ "key": "S3_USESSL",
1410
+ "value": "false",
1411
+ "description": "Use plain HTTP for internal Corestore S3 traffic on the Onebox network.",
1412
+ "required": true
1413
+ },
1414
+ {
1415
+ "key": "S3_BUCKET",
1416
+ "value": "${S3_BUCKET}",
1417
+ "description": "S3 bucket provisioned by Onebox Corestore for Cloudly's registry.",
1418
+ "required": true
1419
+ },
1420
+ {
1421
+ "key": "S3_ACCESSKEY",
1422
+ "value": "${S3_ACCESS_KEY}",
1423
+ "description": "S3 access key provisioned by Onebox Corestore.",
1424
+ "required": true
1425
+ },
1426
+ {
1427
+ "key": "S3_SECRETKEY",
1428
+ "value": "${S3_SECRET_KEY}",
1429
+ "description": "S3 secret key provisioned by Onebox Corestore.",
1430
+ "required": true
1431
+ }
1432
+ ],
1433
+ "platformRequirements": {
1434
+ "mongodb": true,
1435
+ "s3": true
1436
+ },
1437
+ "platformOidc": {
1438
+ "redirectPath": "/auth/oidc/callback",
1439
+ "roles": [
1440
+ {
1441
+ "id": "admin",
1442
+ "label": "Administrator",
1443
+ "description": "Full Cloudly administration for this hosted instance."
1444
+ },
1445
+ {
1446
+ "id": "user",
1447
+ "label": "User",
1448
+ "description": "Standard authenticated Cloudly access for this hosted instance."
1449
+ }
1450
+ ],
1451
+ "environmentVariables": {
1452
+ "issuerUrl": "SERVEZONE_PLATFORM_OIDC_ISSUER",
1453
+ "clientId": "SERVEZONE_PLATFORM_OIDC_CLIENT_ID",
1454
+ "clientSecret": "SERVEZONE_PLATFORM_OIDC_CLIENT_SECRET",
1455
+ "redirectUri": "SERVEZONE_PLATFORM_OIDC_REDIRECT_URI",
1456
+ "audience": "SERVEZONE_PLATFORM_OIDC_AUDIENCE"
1457
+ },
1458
+ "clientAuthenticationMethod": "client_secret_basic"
1459
+ },
1460
+ "minOneboxVersion": "8.3.3",
1461
+ "changelog": "Move Cloudly to 25.2.0 with ledger-backed startup migrations and authenticated legacy tombstone cleanup. Requires completed Secrets v2 cutover retirement and a fresh verified restorable checkpoint. Preserve the encrypted keyring and WorkloadInit approval as dedicated root-readable files. Rollback requires a full restore.",
1462
+ "breaking": true,
1463
+ "requiresManualReview": true,
1464
+ "migrationRequired": true,
1465
+ "backupBeforeUpgrade": true,
1466
+ "healthCheck": {
1467
+ "path": "/status",
1468
+ "port": 3000,
1469
+ "expectedStatus": 200
1470
+ }
1471
+ },
1472
+ "apps/cloudly/versions/1.1.9/config.json": {
1473
+ "image": "code.foss.global/serve.zone/cloudly@sha256:2d5380d82e75e737ecf6701d50c9c4246998fde4252c32fc211af6619ae7b634",
1474
+ "targetPorts": [
1475
+ {
1476
+ "name": "web",
1477
+ "port": 3000,
1478
+ "protocol": "http",
1479
+ "default": true
1480
+ }
1481
+ ],
1482
+ "envVars": [
1483
+ {
1484
+ "key": "SERVEZONE_ENVIRONMENT",
1485
+ "value": "production",
1486
+ "description": "Cloudly runtime environment.",
1487
+ "required": true
1488
+ },
1489
+ {
1490
+ "key": "SERVEZONE_PUBLIC_ORIGIN",
1491
+ "value": "https://${SERVICE_DOMAIN}",
1492
+ "description": "Canonical public Cloudly origin including protocol and optional public port.",
1493
+ "required": true
1494
+ },
1495
+ {
1496
+ "key": "SERVEZONE_LISTENPORT",
1497
+ "value": "3000",
1498
+ "description": "Internal Cloudly HTTP port inside the container.",
1499
+ "required": true
1500
+ },
1501
+ {
1502
+ "key": "SERVEZONE_SSLMODE",
1503
+ "value": "external",
1504
+ "description": "Use external TLS termination through Onebox or dcrouter.",
1505
+ "required": true
1506
+ },
1507
+ {
1508
+ "key": "SERVEZONE_SECRET_KEYRING_PATH",
1509
+ "value": "/run/secrets/cloudly-secrets-v2-keyring.json",
1510
+ "description": "Path to the Cloudly Secrets v2 keyring mounted by Onebox; the keyring value is never placed in the public environment.",
1511
+ "required": true
1512
+ },
1513
+ {
1514
+ "key": "SERVEZONE_SECRET_KEYRING_FILE",
1515
+ "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.",
1516
+ "required": true,
1517
+ "secret": true,
1518
+ "delivery": {
1519
+ "type": "file",
1520
+ "targetPath": "/run/secrets/cloudly-secrets-v2-keyring.json",
1521
+ "uid": 0,
1522
+ "gid": 0,
1523
+ "mode": 256
1524
+ }
1525
+ },
1526
+ {
1527
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_PATH",
1528
+ "value": "/run/secrets/cloudly-workloadinit-approval.json",
1529
+ "description": "Private WorkloadInit release-approval artifact mounted by Onebox for Coreflow secret-runtime registration.",
1530
+ "required": true
1531
+ },
1532
+ {
1533
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_FILE",
1534
+ "description": "Operator-approved WorkloadInit release authority. Onebox stores it encrypted and mounts it only as a root-readable file.",
1535
+ "required": true,
1536
+ "secret": true,
1537
+ "delivery": {
1538
+ "type": "file",
1539
+ "targetPath": "/run/secrets/cloudly-workloadinit-approval.json",
1540
+ "uid": 0,
1541
+ "gid": 0,
1542
+ "mode": 256
1543
+ }
1544
+ },
1545
+ {
1546
+ "key": "MONGODB_URL",
1547
+ "value": "${MONGODB_URI}",
1548
+ "description": "Authenticated MongoDB wire-protocol URL provisioned by Onebox Corestore.",
1549
+ "required": true
1550
+ },
1551
+ {
1552
+ "key": "MONGODB_NAME",
1553
+ "value": "${MONGODB_DATABASE}",
1554
+ "description": "MongoDB wire-protocol database name provisioned by Onebox Corestore.",
1555
+ "required": true
1556
+ },
1557
+ {
1558
+ "key": "MONGODB_USER",
1559
+ "value": "${MONGODB_USERNAME}",
1560
+ "description": "MongoDB wire-protocol username provisioned by Onebox Corestore.",
1561
+ "required": true
1562
+ },
1563
+ {
1564
+ "key": "MONGODB_PASS",
1565
+ "value": "${MONGODB_PASSWORD}",
1566
+ "description": "MongoDB wire-protocol password provisioned by Onebox Corestore.",
1567
+ "required": true
1568
+ },
1569
+ {
1570
+ "key": "S3_ENDPOINT",
1571
+ "value": "onebox-corestore",
1572
+ "description": "S3 endpoint host provisioned by Onebox Corestore.",
1573
+ "required": true
1574
+ },
1575
+ {
1576
+ "key": "S3_PORT",
1577
+ "value": "9000",
1578
+ "description": "S3 endpoint port provisioned by Onebox Corestore.",
1579
+ "required": true
1580
+ },
1581
+ {
1582
+ "key": "S3_USESSL",
1583
+ "value": "false",
1584
+ "description": "Use plain HTTP for internal Corestore S3 traffic on the Onebox network.",
1585
+ "required": true
1586
+ },
1587
+ {
1588
+ "key": "S3_BUCKET",
1589
+ "value": "${S3_BUCKET}",
1590
+ "description": "S3 bucket provisioned by Onebox Corestore for Cloudly's registry.",
1591
+ "required": true
1592
+ },
1593
+ {
1594
+ "key": "S3_ACCESSKEY",
1595
+ "value": "${S3_ACCESS_KEY}",
1596
+ "description": "S3 access key provisioned by Onebox Corestore.",
1597
+ "required": true
1598
+ },
1599
+ {
1600
+ "key": "S3_SECRETKEY",
1601
+ "value": "${S3_SECRET_KEY}",
1602
+ "description": "S3 secret key provisioned by Onebox Corestore.",
1603
+ "required": true
1604
+ }
1605
+ ],
1606
+ "platformRequirements": {
1607
+ "mongodb": true,
1608
+ "s3": true
1609
+ },
1610
+ "platformOidc": {
1611
+ "redirectPath": "/auth/oidc/callback",
1612
+ "roles": [
1613
+ {
1614
+ "id": "admin",
1615
+ "label": "Administrator",
1616
+ "description": "Full Cloudly administration for this hosted instance."
1617
+ },
1618
+ {
1619
+ "id": "user",
1620
+ "label": "User",
1621
+ "description": "Standard authenticated Cloudly access for this hosted instance."
1622
+ }
1623
+ ],
1624
+ "environmentVariables": {
1625
+ "issuerUrl": "SERVEZONE_PLATFORM_OIDC_ISSUER",
1626
+ "clientId": "SERVEZONE_PLATFORM_OIDC_CLIENT_ID",
1627
+ "clientSecret": "SERVEZONE_PLATFORM_OIDC_CLIENT_SECRET",
1628
+ "redirectUri": "SERVEZONE_PLATFORM_OIDC_REDIRECT_URI",
1629
+ "audience": "SERVEZONE_PLATFORM_OIDC_AUDIENCE"
1630
+ },
1631
+ "clientAuthenticationMethod": "client_secret_basic"
1632
+ },
1633
+ "minOneboxVersion": "8.3.3",
1634
+ "changelog": "Move Cloudly to 25.3.0 with scoped Corestore grant bootstrap and sealed credential publication. Requires completed Secrets v2 cutover retirement and a fresh verified restorable checkpoint. Preserve existing storage identities, the encrypted keyring and WorkloadInit approval as dedicated root-readable files. Rollback requires a full restore.",
1635
+ "breaking": true,
1636
+ "requiresManualReview": true,
1637
+ "migrationRequired": true,
1638
+ "backupBeforeUpgrade": true,
1639
+ "healthCheck": {
1640
+ "path": "/status",
1641
+ "port": 3000,
1642
+ "expectedStatus": 200
1643
+ }
1644
+ },
1297
1645
  "apps/ghost/app.json": {
1298
1646
  "id": "ghost",
1299
1647
  "name": "Ghost",
@@ -2115,7 +2463,7 @@ export const appStorePackageData: IAppStorePackageData = {
2115
2463
  },
2116
2464
  "appstore.json": {
2117
2465
  "schemaVersion": 1,
2118
- "updatedAt": "2026-09-02T00:00:00Z",
2466
+ "updatedAt": "2026-09-07T00:00:00Z",
2119
2467
  "apps": [
2120
2468
  {
2121
2469
  "id": "nginx",
@@ -2323,7 +2671,7 @@ export const appStorePackageData: IAppStorePackageData = {
2323
2671
  "description": "Multi-node serve.zone control plane for clusters, workload services, domains, and deployments.",
2324
2672
  "category": "Dev Tools",
2325
2673
  "iconName": "server",
2326
- "latestVersion": "1.1.7",
2674
+ "latestVersion": "1.1.9",
2327
2675
  "tags": [
2328
2676
  "serve.zone",
2329
2677
  "control-plane",