Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions packages/core/src/apps/catalog.json
Original file line number Diff line number Diff line change
Expand Up @@ -2046,6 +2046,7 @@
{
"available": true,
"verified": true,
"minEngine": "0.6.6",
"id": "minio",
"name": "MinIO",
"description": "S3-compatible object storage with a web console — point any S3 client (aws-cli, SDKs) at it, or bind a bucket straight into another project's uploads.",
Expand Down Expand Up @@ -2540,6 +2541,7 @@
{
"available": true,
"verified": false,
"minEngine": "0.6.6",
"minResources": {
"memoryMb": 4096,
"cpuCores": 2
Expand Down Expand Up @@ -2719,6 +2721,7 @@
{
"available": true,
"verified": false,
"minEngine": "0.6.6",
"minResources": {
"memoryMb": 16384,
"cpuCores": 4
Expand Down Expand Up @@ -3497,6 +3500,7 @@
{
"available": true,
"verified": false,
"minEngine": "0.6.6",
"id": "redis",
"name": "Valkey (Redis)",
"description": "In-memory data store for caching, sessions, rate limits, and queues — Valkey, the open-source Redis fork. Drop-in Redis-compatible: point any redis client at it. Ships with RedisInsight, a browser UI that arrives already connected to this instance.",
Expand Down Expand Up @@ -3975,6 +3979,7 @@
{
"available": true,
"verified": false,
"minEngine": "0.6.6",
"id": "clickhouse",
"name": "ClickHouse",
"description": "The columnar SQL database for analytics — billions of rows scanned per second. Ships with the CH-UI console, so you get a SQL editor, schema browser and dashboards the moment it installs: sign in with the ClickHouse user and password below, no extra setup.",
Expand Down
24 changes: 24 additions & 0 deletions packages/core/src/apps/catalog.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,30 @@ describe("app catalog (JSON)", () => {
expect(isValidAppTemplate(null)).toBe(false);
expect(isValidAppTemplate({ id: "x", name: "X", description: "d", kind: "template", logo: "x", category: "bogus" })).toBe(false);
});

it("every entry that uses commandArgv/stopGracePeriod declares minEngine >= 0.6.6 (issue #599)", () => {
// `commandArgv` and `stopGracePeriod` were added to the serviceSpec schema
// in commit 550fe22f, released as v0.6.6. Without minEngine >= 0.6.6 on the
// entry, the engine-gate cannot refuse to install the app on a pre-0.6.6
// engine — the install silently drops the field and the container runs the
// wrong role (PostHog worker, MinIO "sh is not a minio sub-command", …).
const MIN_ENGINE = "0.6.6";
for (const app of APP_TEMPLATES) {
for (const service of app.services ?? []) {
const usesPostRelease =
service.commandArgv !== undefined || service.stopGracePeriod !== undefined;
if (!usesPostRelease) continue;
expect(
app.minEngine,
`${app.id}/${service.name} uses a post-0.6.6 serviceSpec field but entry has no minEngine — engine gate cannot refuse pre-0.6.6 installs`,
).toBeDefined();
expect(
templateEngineOk(app.minEngine, MIN_ENGINE),
`${app.id}/${service.name} declares minEngine=${app.minEngine}, must be >= ${MIN_ENGINE}`,
).toBe(true);
}
}
});
});

describe("mail has exactly one entry point in the catalog", () => {
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/apps/catalog/clickhouse.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"available": true,
"verified": false,
"minEngine": "0.6.6",
"id": "clickhouse",
"name": "ClickHouse",
"description": "The columnar SQL database for analytics — billions of rows scanned per second. Ships with the CH-UI console, so you get a SQL editor, schema browser and dashboards the moment it installs: sign in with the ClickHouse user and password below, no extra setup.",
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/apps/catalog/minio.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"available": true,
"verified": true,
"minEngine": "0.6.6",
"id": "minio",
"name": "MinIO",
"description": "S3-compatible object storage with a web console — point any S3 client (aws-cli, SDKs) at it, or bind a bucket straight into another project's uploads.",
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/apps/catalog/neon.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"available": true,
"verified": false,
"minEngine": "0.6.6",
"minResources": {
"memoryMb": 4096,
"cpuCores": 2
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/apps/catalog/posthog.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"available": true,
"verified": false,
"minEngine": "0.6.6",
"minResources": {
"memoryMb": 16384,
"cpuCores": 4
Expand Down
1 change: 1 addition & 0 deletions packages/core/src/apps/catalog/redis.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"available": true,
"verified": false,
"minEngine": "0.6.6",
"id": "redis",
"name": "Valkey (Redis)",
"description": "In-memory data store for caching, sessions, rate limits, and queues — Valkey, the open-source Redis fork. Drop-in Redis-compatible: point any redis client at it. Ships with RedisInsight, a browser UI that arrives already connected to this instance.",
Expand Down