@powerhousedao/switchboard 2.4.6-dev.1 → 2.4.6-dev.3

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/.env CHANGED
@@ -1,11 +1,15 @@
1
- DATABASE_URL="postgresql://postgres:postgres@localhost:5444/postgres"
2
- REDIS_URL="redis://localhost:6380"
3
- API_ORIGIN=http://localhost:3000
4
- JWT_SECRET="secret"
5
- PORT=4001
6
- ADMIN_USERS=""
7
- ## Optional parameters
8
- # JWT_EXPIRATION_PERIOD="3600"
1
+ # Switchboard Environment Variables
2
+
3
+ ## General Server Options
4
+ PH_SWITCHBOARD_PORT=4001
5
+ PH_SWITCHBOARD_API_ORIGIN=http://localhost:3000
6
+ PH_SWITCHBOARD_JWT_SECRET="secret"
7
+
8
+ ## Cache & Storage Options
9
+ PH_SWITCHBOARD_DATABASE_URL="postgresql://postgres:postgres@localhost:5444/postgres"
10
+ PH_SWITCHBOARD_REDIS_URL="redis://localhost:6380"
11
+
12
+ ## Auth Options
9
13
  SWITCHBOARD_AUTH_ENABLED=true
10
14
  SWITCHBOARD_AUTH_GUESTS=""
11
15
  SWITCHBOARD_AUTH_USERS=""
package/CHANGELOG.md CHANGED
@@ -1,19 +1,19 @@
1
- ## 2.4.6-dev.1 (2025-05-21)
1
+ ## 2.4.6-dev.3 (2025-05-25)
2
2
 
3
- ### 🩹 Fixes
3
+ ### 🚀 Features
4
4
 
5
- - docker build with PH_PACKAGES ([856ac1187](https://github.com/powerhouse-inc/powerhouse/commit/856ac1187))
5
+ - **switchboard:** deploy with new dockerfile ([54f65af17](https://github.com/powerhouse-inc/powerhouse/commit/54f65af17))
6
+ - **switchboard:** new dockerfile based on ph-cmd ([fafff7143](https://github.com/powerhouse-inc/powerhouse/commit/fafff7143))
6
7
 
7
8
  ### 🧱 Updated Dependencies
8
9
 
9
- - Updated document-drive to 1.29.12-dev.12
10
- - Updated document-model to 2.28.1-dev.16
11
- - Updated @powerhousedao/reactor-api to 1.29.27-dev.1
12
- - Updated @powerhousedao/config to 1.27.0-dev.15
10
+ - Updated document-drive to 1.29.14-dev.0
11
+ - Updated @powerhousedao/reactor-api to 1.29.28-dev.0
12
+ - Updated @powerhousedao/config to 1.27.0-dev.17
13
13
 
14
14
  ### ❤️ Thank You
15
15
 
16
- - Guillermo Puente @gpuente
16
+ - Frank
17
17
 
18
18
  ## 2.3.0 (2025-05-06)
19
19
 
package/Dockerfile CHANGED
@@ -1,50 +1,46 @@
1
- # FROM node:22-alpine AS build
2
-
3
- # WORKDIR /app
4
- # RUN [ ! -e /lib/libssl.so.3 ] && ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3 || echo "Link already exists"
5
- # RUN npm install --global pnpm@9
6
- # COPY . .
7
- # RUN pnpm install
8
- # RUN pnpm run build
9
- # ENV API_ORIGIN=http://localhost:3000
10
- # ENV JWT_SECRET="secret"
11
- # ENV PORT=4001
12
- # ENV ADMIN_USERS="0x123,0x456"
13
- # ENV DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres
14
- # ENV REDIS_URL=redis://localhost:6379
15
- # ENV REDIS_TLS_URL=rediss://localhost:6379
16
- # ARG PH_PACKAGES
17
- # ENV PH_PACKAGES=${PH_PACKAGES}
18
- # RUN node dist/src/install-packages.js
19
- # CMD pnpx prisma generate && pnpm start
20
-
21
1
  FROM node:22-alpine AS build
22
2
  RUN apk update && apk add git
23
3
  WORKDIR /app
24
- RUN [ ! -e /lib/libssl.so.3 ] && ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3 || echo "Link already exists"
25
- RUN npm install --global pnpm@10 husky
26
- COPY . .
27
- ARG PH_PACKAGES
28
- ENV PH_PACKAGES=${PH_PACKAGES}
29
- ARG NX_SOCKET_DIR="/tmp/nx"
30
- ENV NX_SOCKET_DIR=${NX_SOCKET_DIR}
4
+ ENV PNPM_HOME="/pnpm"
5
+ ENV PATH="$PNPM_HOME:$PATH"
6
+ RUN corepack enable && corepack install --global pnpm@9.8.0
7
+ ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
8
+
9
+ ENV HUSKY=false
10
+
11
+ # Packages
12
+ ENV PH_PACKAGES=""
13
+
14
+ # Nx
15
+ ENV NX_SOCKET_DIR="/tmp/nx"
31
16
  ENV NX_DAEMON=false
32
- RUN pnpm install --filter @powerhousedao/switchboard...
33
- RUN pnpm nx run @powerhousedao/switchboard:build
34
- RUN pnpm --filter "@powerhousedao/switchboard" deploy --prod pruned --legacy
35
- RUN rm -rf pruned/node_modules/.pnpm/@prisma+client@5.17.0_prisma@5.17.0 && cp -R ./node_modules/.pnpm/@prisma+client@5.17.0_prisma@5.17.0 pruned/node_modules/.pnpm
36
17
 
37
- # Final production image
38
- FROM node:22-alpine AS runner
18
+ # Auth
19
+ ENV PH_SWITCHBOARD_AUTH_ENABLED=false
20
+ ENV PH_SWITCHBOARD_ADMINS_LIST="0x123,0x456"
21
+ ENV PH_SWITCHBOARD_USERS_LIST="0x123,0x456"
22
+ ENV PH_SWITCHBOARD_GUESTS_LIST="0x123,0x456"
39
23
 
40
- WORKDIR /app
41
- COPY --from=build /app/pruned/dist dist
42
- COPY --from=build /app/pruned/node_modules node_modules
43
- COPY --from=build /app/pruned/package.json package.json
44
- COPY --from=build /app/pruned/powerhouse.config.json powerhouse.config.json
45
- # COPY --from=build /app/package.json package.json
46
- RUN [ ! -e /lib/libssl.so.3 ] && ln -s /usr/lib/libssl.so.3 /lib/libssl.so.3 || echo "Link already exists"
47
- ENV DATABASE_URL=postgres://postgres:postgres@localhost:5432/postgres
48
- ARG PH_PACKAGES
49
- ENV PH_PACKAGES=${PH_PACKAGES}
50
- CMD node dist/src/index.js
24
+ # Database
25
+ ENV PH_SWITCHBOARD_DATABASE_URL="dev.db"
26
+ ENV PH_SWITCHBOARD_REDIS_URL=""
27
+
28
+ # Heroku Workaround
29
+ ENV PORT=4001
30
+
31
+ # Switchboard
32
+ ENV PH_SWITCHBOARD_PORT=$PORT
33
+
34
+ # Other
35
+ ARG PH_TAG=latest
36
+ ENV PH_TAG=$PH_TAG
37
+
38
+ RUN pnpm add -g ph-cmd@$PH_TAG && \
39
+ ph setup-globals && \
40
+ ph use $PH_TAG
41
+
42
+ # Copy and set up entrypoint script
43
+ COPY . .
44
+ RUN chmod +x entrypoint.sh
45
+
46
+ ENTRYPOINT ["/app/entrypoint.sh"]
@@ -5,6 +5,10 @@ interface Config {
5
5
  users: string[];
6
6
  admins: string[];
7
7
  };
8
+ database: {
9
+ url: string;
10
+ };
11
+ port: number;
8
12
  }
9
13
  export declare const config: Config;
10
14
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAGA,UAAU,MAAM;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AACD,eAAO,MAAM,MAAM,EAAE,MAOpB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAMA,UAAU,MAAM;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,QAAQ,EAAE;QACR,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,IAAI,EAAE,MAAM,CAAC;CACd;AACD,eAAO,MAAM,MAAM,EAAE,MA4BpB,CAAC"}
@@ -1,11 +1,32 @@
1
1
  import dotenv from "dotenv";
2
2
  dotenv.config();
3
+ import { getConfig } from "@powerhousedao/config/utils";
4
+ const phConfig = getConfig();
5
+ const { switchboard } = phConfig;
3
6
  export const config = {
4
7
  auth: {
5
- enabled: Boolean(process.env.SWITCHBOARD_AUTH_ENABLED) || false,
6
- guests: (process.env.SWITCHBOARD_AUTH_GUESTS || "").split(","),
7
- users: (process.env.SWITCHBOARD_AUTH_USERS || "").split(","),
8
- admins: (process.env.SWITCHBOARD_AUTH_ADMINS || "").split(","),
8
+ enabled: process.env.SWITCHBOARD_AUTH_ENABLED === "true"
9
+ ? true
10
+ : (switchboard?.auth?.enabled ?? false),
11
+ guests: process.env.SWITCHBOARD_AUTH_GUESTS
12
+ ? process.env.SWITCHBOARD_AUTH_GUESTS.split(",")
13
+ : (switchboard?.auth?.guests ?? []),
14
+ users: process.env.SWITCHBOARD_AUTH_USERS
15
+ ? process.env.SWITCHBOARD_AUTH_USERS.split(",")
16
+ : (switchboard?.auth?.users ?? []),
17
+ admins: process.env.SWITCHBOARD_AUTH_ADMINS
18
+ ? process.env.SWITCHBOARD_AUTH_ADMINS.split(",")
19
+ : (switchboard?.auth?.admins ?? []),
9
20
  },
21
+ database: {
22
+ // url: process.env.PH_SWITCHBOARD_DATABASE_URL ?? switchboard?.database?.url ?? "dev.db",
23
+ url: process.env.PH_SWITCHBOARD_DATABASE_URL ??
24
+ switchboard?.database?.url ??
25
+ "dev.db",
26
+ },
27
+ port: process.env.PH_SWITCHBOARD_PORT &&
28
+ !isNaN(Number(process.env.PH_SWITCHBOARD_PORT))
29
+ ? Number(process.env.PH_SWITCHBOARD_PORT)
30
+ : (switchboard?.port ?? 4001),
10
31
  };
11
32
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,EAAE,CAAC;AAUhB,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,KAAK;QAC/D,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAC9D,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;QAC5D,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;KAC/D;CACF,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEhB,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AACxD,MAAM,QAAQ,GAAG,SAAS,EAAE,CAAC;AAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,QAAQ,CAAC;AAajC,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,IAAI,EAAE;QACJ,OAAO,EACL,OAAO,CAAC,GAAG,CAAC,wBAAwB,KAAK,MAAM;YAC7C,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;QAC3C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;YACzC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC;YAChD,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;QACrC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;YACvC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC;YAC/C,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;YACzC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC;YAChD,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC;KACtC;IACD,QAAQ,EAAE;QACR,0FAA0F;QAC1F,GAAG,EACD,OAAO,CAAC,GAAG,CAAC,2BAA2B;YACvC,WAAW,EAAE,QAAQ,EAAE,GAAG;YAC1B,QAAQ;KACX;IACD,IAAI,EACF,OAAO,CAAC,GAAG,CAAC,mBAAmB;QAC/B,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACzC,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,IAAI,IAAI,CAAC;CAClC,CAAC"}