@serve.zone/appstore 2.7.0 → 2.9.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.7.0",
3
+ "version": "2.9.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:1ebfebd84d7b8d5a65aba7afda3481fce54d57999d2d9c0ec3716ee969bc47ed` | `3000` |
34
+ | `cloudly` | Cloudly | Dev Tools | `code.foss.global/serve.zone/cloudly@sha256:056553fec412094701764197574b45096cc5c0c81e863d7ee873f4cf10ab45f6` | `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.8` pins Cloudly `25.2.0` and requires Onebox `8.3.3`. 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: startup applies ledger-backed migrations and authenticated legacy tombstone cleanup. Rollback remains full-restore-only. |
61
+ | `cloudly` | MongoDB, S3 | Version `1.1.10` pins Cloudly `26.0.1` and requires Onebox `8.3.3`. It adds human and node credential authority and generation-bound human API and registry sessions while preserving the `1.1.9` runtime contract, existing user and storage identities, and OIDC bindings. Existing human sessions must sign in again. Rotate existing passwords through Cloudly credential administration; updating the bootstrap environment alone does not rotate them. 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.8",
37
+ "latestVersion": "1.1.10",
38
38
  "versions": [
39
39
  "1.0.0",
40
40
  "1.1.0",
@@ -45,7 +45,9 @@ export const appStorePackageData: IAppStorePackageData = {
45
45
  "1.1.5",
46
46
  "1.1.6",
47
47
  "1.1.7",
48
- "1.1.8"
48
+ "1.1.8",
49
+ "1.1.9",
50
+ "1.1.10"
49
51
  ],
50
52
  "maintainer": "serve.zone",
51
53
  "links": {
@@ -428,6 +430,179 @@ export const appStorePackageData: IAppStorePackageData = {
428
430
  },
429
431
  "minOneboxVersion": "2.2.0"
430
432
  },
433
+ "apps/cloudly/versions/1.1.10/config.json": {
434
+ "image": "code.foss.global/serve.zone/cloudly@sha256:056553fec412094701764197574b45096cc5c0c81e863d7ee873f4cf10ab45f6",
435
+ "targetPorts": [
436
+ {
437
+ "name": "web",
438
+ "port": 3000,
439
+ "protocol": "http",
440
+ "default": true
441
+ }
442
+ ],
443
+ "envVars": [
444
+ {
445
+ "key": "SERVEZONE_ENVIRONMENT",
446
+ "value": "production",
447
+ "description": "Cloudly runtime environment.",
448
+ "required": true
449
+ },
450
+ {
451
+ "key": "SERVEZONE_PUBLIC_ORIGIN",
452
+ "value": "https://${SERVICE_DOMAIN}",
453
+ "description": "Canonical public Cloudly origin including protocol and optional public port.",
454
+ "required": true
455
+ },
456
+ {
457
+ "key": "SERVEZONE_LISTENPORT",
458
+ "value": "3000",
459
+ "description": "Internal Cloudly HTTP port inside the container.",
460
+ "required": true
461
+ },
462
+ {
463
+ "key": "SERVEZONE_SSLMODE",
464
+ "value": "external",
465
+ "description": "Use external TLS termination through Onebox or dcrouter.",
466
+ "required": true
467
+ },
468
+ {
469
+ "key": "SERVEZONE_SECRET_KEYRING_PATH",
470
+ "value": "/run/secrets/cloudly-secrets-v2-keyring.json",
471
+ "description": "Path to the Cloudly Secrets v2 keyring mounted by Onebox; the keyring value is never placed in the public environment.",
472
+ "required": true
473
+ },
474
+ {
475
+ "key": "SERVEZONE_SECRET_KEYRING_FILE",
476
+ "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.",
477
+ "required": true,
478
+ "secret": true,
479
+ "delivery": {
480
+ "type": "file",
481
+ "targetPath": "/run/secrets/cloudly-secrets-v2-keyring.json",
482
+ "uid": 0,
483
+ "gid": 0,
484
+ "mode": 256
485
+ }
486
+ },
487
+ {
488
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_PATH",
489
+ "value": "/run/secrets/cloudly-workloadinit-approval.json",
490
+ "description": "Private WorkloadInit release-approval artifact mounted by Onebox for Coreflow secret-runtime registration.",
491
+ "required": true
492
+ },
493
+ {
494
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_FILE",
495
+ "description": "Operator-approved WorkloadInit release authority. Onebox stores it encrypted and mounts it only as a root-readable file.",
496
+ "required": true,
497
+ "secret": true,
498
+ "delivery": {
499
+ "type": "file",
500
+ "targetPath": "/run/secrets/cloudly-workloadinit-approval.json",
501
+ "uid": 0,
502
+ "gid": 0,
503
+ "mode": 256
504
+ }
505
+ },
506
+ {
507
+ "key": "MONGODB_URL",
508
+ "value": "${MONGODB_URI}",
509
+ "description": "Authenticated MongoDB wire-protocol URL provisioned by Onebox Corestore.",
510
+ "required": true
511
+ },
512
+ {
513
+ "key": "MONGODB_NAME",
514
+ "value": "${MONGODB_DATABASE}",
515
+ "description": "MongoDB wire-protocol database name provisioned by Onebox Corestore.",
516
+ "required": true
517
+ },
518
+ {
519
+ "key": "MONGODB_USER",
520
+ "value": "${MONGODB_USERNAME}",
521
+ "description": "MongoDB wire-protocol username provisioned by Onebox Corestore.",
522
+ "required": true
523
+ },
524
+ {
525
+ "key": "MONGODB_PASS",
526
+ "value": "${MONGODB_PASSWORD}",
527
+ "description": "MongoDB wire-protocol password provisioned by Onebox Corestore.",
528
+ "required": true
529
+ },
530
+ {
531
+ "key": "S3_ENDPOINT",
532
+ "value": "onebox-corestore",
533
+ "description": "S3 endpoint host provisioned by Onebox Corestore.",
534
+ "required": true
535
+ },
536
+ {
537
+ "key": "S3_PORT",
538
+ "value": "9000",
539
+ "description": "S3 endpoint port provisioned by Onebox Corestore.",
540
+ "required": true
541
+ },
542
+ {
543
+ "key": "S3_USESSL",
544
+ "value": "false",
545
+ "description": "Use plain HTTP for internal Corestore S3 traffic on the Onebox network.",
546
+ "required": true
547
+ },
548
+ {
549
+ "key": "S3_BUCKET",
550
+ "value": "${S3_BUCKET}",
551
+ "description": "S3 bucket provisioned by Onebox Corestore for Cloudly's registry.",
552
+ "required": true
553
+ },
554
+ {
555
+ "key": "S3_ACCESSKEY",
556
+ "value": "${S3_ACCESS_KEY}",
557
+ "description": "S3 access key provisioned by Onebox Corestore.",
558
+ "required": true
559
+ },
560
+ {
561
+ "key": "S3_SECRETKEY",
562
+ "value": "${S3_SECRET_KEY}",
563
+ "description": "S3 secret key provisioned by Onebox Corestore.",
564
+ "required": true
565
+ }
566
+ ],
567
+ "platformRequirements": {
568
+ "mongodb": true,
569
+ "s3": true
570
+ },
571
+ "platformOidc": {
572
+ "redirectPath": "/auth/oidc/callback",
573
+ "roles": [
574
+ {
575
+ "id": "admin",
576
+ "label": "Administrator",
577
+ "description": "Full Cloudly administration for this hosted instance."
578
+ },
579
+ {
580
+ "id": "user",
581
+ "label": "User",
582
+ "description": "Standard authenticated Cloudly access for this hosted instance."
583
+ }
584
+ ],
585
+ "environmentVariables": {
586
+ "issuerUrl": "SERVEZONE_PLATFORM_OIDC_ISSUER",
587
+ "clientId": "SERVEZONE_PLATFORM_OIDC_CLIENT_ID",
588
+ "clientSecret": "SERVEZONE_PLATFORM_OIDC_CLIENT_SECRET",
589
+ "redirectUri": "SERVEZONE_PLATFORM_OIDC_REDIRECT_URI",
590
+ "audience": "SERVEZONE_PLATFORM_OIDC_AUDIENCE"
591
+ },
592
+ "clientAuthenticationMethod": "client_secret_basic"
593
+ },
594
+ "minOneboxVersion": "8.3.3",
595
+ "changelog": "Move Cloudly to 26.0.1 with human and node credential authority, password rotation, and generation-bound human API and registry sessions. Existing human sessions must sign in again. Requires completed Secrets v2 cutover retirement and a fresh verified restorable checkpoint. Preserve existing user and storage identities, OIDC bindings, the encrypted keyring and WorkloadInit approval as dedicated root-readable files. Changing the bootstrap environment alone does not rotate an existing password; use Cloudly credential administration. Rollback requires a full restore.",
596
+ "breaking": true,
597
+ "requiresManualReview": true,
598
+ "migrationRequired": true,
599
+ "backupBeforeUpgrade": true,
600
+ "healthCheck": {
601
+ "path": "/status",
602
+ "port": 3000,
603
+ "expectedStatus": 200
604
+ }
605
+ },
431
606
  "apps/cloudly/versions/1.1.2/config.json": {
432
607
  "image": "code.foss.global/serve.zone/cloudly@sha256:de503daed88b058d285bf0d7fd3fc21f1a4b8cd93a50aa1ec32fe92a38b43390",
433
608
  "targetPorts": [
@@ -1468,6 +1643,179 @@ export const appStorePackageData: IAppStorePackageData = {
1468
1643
  "expectedStatus": 200
1469
1644
  }
1470
1645
  },
1646
+ "apps/cloudly/versions/1.1.9/config.json": {
1647
+ "image": "code.foss.global/serve.zone/cloudly@sha256:2d5380d82e75e737ecf6701d50c9c4246998fde4252c32fc211af6619ae7b634",
1648
+ "targetPorts": [
1649
+ {
1650
+ "name": "web",
1651
+ "port": 3000,
1652
+ "protocol": "http",
1653
+ "default": true
1654
+ }
1655
+ ],
1656
+ "envVars": [
1657
+ {
1658
+ "key": "SERVEZONE_ENVIRONMENT",
1659
+ "value": "production",
1660
+ "description": "Cloudly runtime environment.",
1661
+ "required": true
1662
+ },
1663
+ {
1664
+ "key": "SERVEZONE_PUBLIC_ORIGIN",
1665
+ "value": "https://${SERVICE_DOMAIN}",
1666
+ "description": "Canonical public Cloudly origin including protocol and optional public port.",
1667
+ "required": true
1668
+ },
1669
+ {
1670
+ "key": "SERVEZONE_LISTENPORT",
1671
+ "value": "3000",
1672
+ "description": "Internal Cloudly HTTP port inside the container.",
1673
+ "required": true
1674
+ },
1675
+ {
1676
+ "key": "SERVEZONE_SSLMODE",
1677
+ "value": "external",
1678
+ "description": "Use external TLS termination through Onebox or dcrouter.",
1679
+ "required": true
1680
+ },
1681
+ {
1682
+ "key": "SERVEZONE_SECRET_KEYRING_PATH",
1683
+ "value": "/run/secrets/cloudly-secrets-v2-keyring.json",
1684
+ "description": "Path to the Cloudly Secrets v2 keyring mounted by Onebox; the keyring value is never placed in the public environment.",
1685
+ "required": true
1686
+ },
1687
+ {
1688
+ "key": "SERVEZONE_SECRET_KEYRING_FILE",
1689
+ "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.",
1690
+ "required": true,
1691
+ "secret": true,
1692
+ "delivery": {
1693
+ "type": "file",
1694
+ "targetPath": "/run/secrets/cloudly-secrets-v2-keyring.json",
1695
+ "uid": 0,
1696
+ "gid": 0,
1697
+ "mode": 256
1698
+ }
1699
+ },
1700
+ {
1701
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_PATH",
1702
+ "value": "/run/secrets/cloudly-workloadinit-approval.json",
1703
+ "description": "Private WorkloadInit release-approval artifact mounted by Onebox for Coreflow secret-runtime registration.",
1704
+ "required": true
1705
+ },
1706
+ {
1707
+ "key": "SERVEZONE_WORKLOADINIT_APPROVAL_FILE",
1708
+ "description": "Operator-approved WorkloadInit release authority. Onebox stores it encrypted and mounts it only as a root-readable file.",
1709
+ "required": true,
1710
+ "secret": true,
1711
+ "delivery": {
1712
+ "type": "file",
1713
+ "targetPath": "/run/secrets/cloudly-workloadinit-approval.json",
1714
+ "uid": 0,
1715
+ "gid": 0,
1716
+ "mode": 256
1717
+ }
1718
+ },
1719
+ {
1720
+ "key": "MONGODB_URL",
1721
+ "value": "${MONGODB_URI}",
1722
+ "description": "Authenticated MongoDB wire-protocol URL provisioned by Onebox Corestore.",
1723
+ "required": true
1724
+ },
1725
+ {
1726
+ "key": "MONGODB_NAME",
1727
+ "value": "${MONGODB_DATABASE}",
1728
+ "description": "MongoDB wire-protocol database name provisioned by Onebox Corestore.",
1729
+ "required": true
1730
+ },
1731
+ {
1732
+ "key": "MONGODB_USER",
1733
+ "value": "${MONGODB_USERNAME}",
1734
+ "description": "MongoDB wire-protocol username provisioned by Onebox Corestore.",
1735
+ "required": true
1736
+ },
1737
+ {
1738
+ "key": "MONGODB_PASS",
1739
+ "value": "${MONGODB_PASSWORD}",
1740
+ "description": "MongoDB wire-protocol password provisioned by Onebox Corestore.",
1741
+ "required": true
1742
+ },
1743
+ {
1744
+ "key": "S3_ENDPOINT",
1745
+ "value": "onebox-corestore",
1746
+ "description": "S3 endpoint host provisioned by Onebox Corestore.",
1747
+ "required": true
1748
+ },
1749
+ {
1750
+ "key": "S3_PORT",
1751
+ "value": "9000",
1752
+ "description": "S3 endpoint port provisioned by Onebox Corestore.",
1753
+ "required": true
1754
+ },
1755
+ {
1756
+ "key": "S3_USESSL",
1757
+ "value": "false",
1758
+ "description": "Use plain HTTP for internal Corestore S3 traffic on the Onebox network.",
1759
+ "required": true
1760
+ },
1761
+ {
1762
+ "key": "S3_BUCKET",
1763
+ "value": "${S3_BUCKET}",
1764
+ "description": "S3 bucket provisioned by Onebox Corestore for Cloudly's registry.",
1765
+ "required": true
1766
+ },
1767
+ {
1768
+ "key": "S3_ACCESSKEY",
1769
+ "value": "${S3_ACCESS_KEY}",
1770
+ "description": "S3 access key provisioned by Onebox Corestore.",
1771
+ "required": true
1772
+ },
1773
+ {
1774
+ "key": "S3_SECRETKEY",
1775
+ "value": "${S3_SECRET_KEY}",
1776
+ "description": "S3 secret key provisioned by Onebox Corestore.",
1777
+ "required": true
1778
+ }
1779
+ ],
1780
+ "platformRequirements": {
1781
+ "mongodb": true,
1782
+ "s3": true
1783
+ },
1784
+ "platformOidc": {
1785
+ "redirectPath": "/auth/oidc/callback",
1786
+ "roles": [
1787
+ {
1788
+ "id": "admin",
1789
+ "label": "Administrator",
1790
+ "description": "Full Cloudly administration for this hosted instance."
1791
+ },
1792
+ {
1793
+ "id": "user",
1794
+ "label": "User",
1795
+ "description": "Standard authenticated Cloudly access for this hosted instance."
1796
+ }
1797
+ ],
1798
+ "environmentVariables": {
1799
+ "issuerUrl": "SERVEZONE_PLATFORM_OIDC_ISSUER",
1800
+ "clientId": "SERVEZONE_PLATFORM_OIDC_CLIENT_ID",
1801
+ "clientSecret": "SERVEZONE_PLATFORM_OIDC_CLIENT_SECRET",
1802
+ "redirectUri": "SERVEZONE_PLATFORM_OIDC_REDIRECT_URI",
1803
+ "audience": "SERVEZONE_PLATFORM_OIDC_AUDIENCE"
1804
+ },
1805
+ "clientAuthenticationMethod": "client_secret_basic"
1806
+ },
1807
+ "minOneboxVersion": "8.3.3",
1808
+ "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.",
1809
+ "breaking": true,
1810
+ "requiresManualReview": true,
1811
+ "migrationRequired": true,
1812
+ "backupBeforeUpgrade": true,
1813
+ "healthCheck": {
1814
+ "path": "/status",
1815
+ "port": 3000,
1816
+ "expectedStatus": 200
1817
+ }
1818
+ },
1471
1819
  "apps/ghost/app.json": {
1472
1820
  "id": "ghost",
1473
1821
  "name": "Ghost",
@@ -2289,7 +2637,7 @@ export const appStorePackageData: IAppStorePackageData = {
2289
2637
  },
2290
2638
  "appstore.json": {
2291
2639
  "schemaVersion": 1,
2292
- "updatedAt": "2026-09-04T00:00:00Z",
2640
+ "updatedAt": "2026-09-08T05:45:43Z",
2293
2641
  "apps": [
2294
2642
  {
2295
2643
  "id": "nginx",
@@ -2497,7 +2845,7 @@ export const appStorePackageData: IAppStorePackageData = {
2497
2845
  "description": "Multi-node serve.zone control plane for clusters, workload services, domains, and deployments.",
2498
2846
  "category": "Dev Tools",
2499
2847
  "iconName": "server",
2500
- "latestVersion": "1.1.8",
2848
+ "latestVersion": "1.1.10",
2501
2849
  "tags": [
2502
2850
  "serve.zone",
2503
2851
  "control-plane",