@helyx/cli 0.1.4 → 0.2.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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 7b25ea0: Add the opt-in Helyx Cloud Connect configuration, local persistence, connector runtime, support-redaction contract and generated self-host environment guidance. Cloud Connect remains disabled until a deployment owner explicitly configures and enrols it.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [7b25ea0]
12
+ - @helyx/config@0.2.0
13
+ - @helyx/database@0.2.0
14
+ - @helyx/bot@0.2.0
15
+
3
16
  ## 0.1.4 - 2026-07-23
4
17
 
5
18
  - Generate self-hosted projects with the interaction-timeout fix and refreshed
@@ -20,6 +20,16 @@ export declare const selfHostModuleSchema: z.ZodObject<{
20
20
  unpublished: "unpublished";
21
21
  published: "published";
22
22
  }>;
23
+ releaseStatus: z.ZodOptional<z.ZodEnum<{
24
+ planned: "planned";
25
+ testing: "testing";
26
+ beta: "beta";
27
+ live: "live";
28
+ }>>;
29
+ tier: z.ZodOptional<z.ZodEnum<{
30
+ free: "free";
31
+ premium: "premium";
32
+ }>>;
23
33
  }, z.core.$strict>;
24
34
  export declare const selfHostCatalogueSchema: z.ZodObject<{
25
35
  schemaVersion: z.ZodLiteral<1>;
@@ -61,6 +71,16 @@ export declare const selfHostCatalogueSchema: z.ZodObject<{
61
71
  unpublished: "unpublished";
62
72
  published: "published";
63
73
  }>;
74
+ releaseStatus: z.ZodOptional<z.ZodEnum<{
75
+ planned: "planned";
76
+ testing: "testing";
77
+ beta: "beta";
78
+ live: "live";
79
+ }>>;
80
+ tier: z.ZodOptional<z.ZodEnum<{
81
+ free: "free";
82
+ premium: "premium";
83
+ }>>;
64
84
  }, z.core.$strict>>;
65
85
  }, z.core.$strict>;
66
86
  export type SelfHostModule = z.infer<typeof selfHostModuleSchema>;
@@ -23,6 +23,8 @@ const moduleId = z
23
23
  .string()
24
24
  .regex(/^helyx\.[a-z0-9][a-z0-9-]*$/u, "must be a Helyx module ID");
25
25
  const availability = z.enum(["planned", "unpublished", "published"]);
26
+ const releaseStatus = z.enum(["planned", "testing", "beta", "live"]);
27
+ const moduleTier = z.enum(["free", "premium"]);
26
28
  const componentSchema = z
27
29
  .object({
28
30
  package: helyxPackage,
@@ -47,6 +49,8 @@ export const selfHostModuleSchema = z
47
49
  description: z.string().trim().min(1).max(300),
48
50
  category: z.enum(selfHostCategories),
49
51
  availability,
52
+ releaseStatus: releaseStatus.optional(),
53
+ tier: moduleTier.optional(),
50
54
  })
51
55
  .strict()
52
56
  .superRefine((module, context) => {
@@ -238,6 +238,39 @@ export const selfHostEnvironmentContract = {
238
238
  optional: true,
239
239
  },
240
240
  HELYX_BOT_CONTROL_PORT: { value: "3001", optional: true },
241
+ HELYX_CLOUD_CONNECT_ENABLED: { value: "false", optional: false },
242
+ HELYX_CLOUD_ENROLMENT_TOKEN: {
243
+ value: "replace-with-a-short-lived-enrolment-code",
244
+ optional: true,
245
+ },
246
+ HELYX_CLOUD_ENROLMENT_FILE: {
247
+ value: "./helyx.cloud-enrolment.json",
248
+ optional: true,
249
+ },
250
+ HELYX_DATA_ENCRYPTION_KEY: {
251
+ value: "replace-with-a-base64-encoded-32-byte-key",
252
+ optional: true,
253
+ },
254
+ HELYX_CLOUD_API_URL: {
255
+ value: "https://api.helyx.gg",
256
+ optional: true,
257
+ },
258
+ HELYX_CLOUD_ENDPOINT: {
259
+ value: "wss://connect.helyx.gg/v1/connect",
260
+ optional: true,
261
+ },
262
+ HELYX_OWNER_USER_IDS: {
263
+ value: "12345678901234567",
264
+ optional: true,
265
+ },
266
+ HELYX_CLOUD_AUDIT_RETENTION_DAYS: {
267
+ value: "90",
268
+ optional: true,
269
+ },
270
+ HELYX_CLOUD_CREDENTIAL_AUDIT_RETENTION_DAYS: {
271
+ value: "365",
272
+ optional: true,
273
+ },
241
274
  LOG_LEVEL: { value: "info", optional: false },
242
275
  NODE_ENV: { value: "production", optional: false },
243
276
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helyx/cli",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "Command-line tools for running and generating self-hosted Helyx deployments.",
5
5
  "keywords": [
6
6
  "helyx",
@@ -52,9 +52,9 @@
52
52
  "build": "tsc -b"
53
53
  },
54
54
  "dependencies": {
55
- "@helyx/bot": "0.1.3",
56
- "@helyx/config": "0.1.2",
57
- "@helyx/database": "0.1.1",
55
+ "@helyx/bot": "0.2.0",
56
+ "@helyx/config": "0.2.0",
57
+ "@helyx/database": "0.2.0",
58
58
  "semver": "7.8.5",
59
59
  "zod": "4.4.3"
60
60
  },
@@ -92,7 +92,9 @@
92
92
  "name": "Verification",
93
93
  "description": "Add a deliberate member verification step.",
94
94
  "category": "Safety",
95
- "availability": "planned"
95
+ "availability": "planned",
96
+ "releaseStatus": "testing",
97
+ "tier": "premium"
96
98
  },
97
99
  {
98
100
  "id": "helyx.antiraid",
@@ -21,6 +21,17 @@ HELYX_MODULE_CATALOGUE_PATH=./helyx.modules.json
21
21
  # HELYX_BOT_CONTROL_SECRET=replace-with-a-base64-encoded-32-byte-key
22
22
  # HELYX_BOT_CONTROL_PORT=3001
23
23
 
24
+ # Optional Helyx Cloud Connect. It remains fully disabled unless set to true.
25
+ HELYX_CLOUD_CONNECT_ENABLED=false
26
+ # HELYX_CLOUD_ENROLMENT_TOKEN=replace-with-a-short-lived-enrolment-code
27
+ # HELYX_CLOUD_ENROLMENT_FILE=./helyx.cloud-enrolment.json
28
+ # HELYX_DATA_ENCRYPTION_KEY=replace-with-a-base64-encoded-32-byte-key
29
+ # HELYX_CLOUD_API_URL=https://api.helyx.gg
30
+ # HELYX_CLOUD_ENDPOINT=wss://connect.helyx.gg/v1/connect
31
+ # HELYX_OWNER_USER_IDS=12345678901234567
32
+ # HELYX_CLOUD_AUDIT_RETENTION_DAYS=90
33
+ # HELYX_CLOUD_CREDENTIAL_AUDIT_RETENTION_DAYS=365
34
+
24
35
  LOG_LEVEL=info
25
36
  NODE_ENV=production
26
37
 
@@ -1,3 +1,4 @@
1
1
  .env
2
+ helyx.cloud-enrolment.json
2
3
  node_modules/
3
4
  npm-debug.log*