@powerhousedao/switchboard 2.4.12-staging.0 → 2.5.0-dev.1

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,8 +1,58 @@
1
- ## 2.4.12-staging.0 (2025-05-28)
1
+ ## 2.5.0-dev.1 (2025-06-05)
2
2
 
3
- ### 🧱 Updated Dependencies
3
+ This was a version bump only for @powerhousedao/switchboard to align it with other projects, there were no code changes.
4
+
5
+ ## 2.5.0-dev.0 (2025-06-04)
6
+
7
+ ### 🚀 Features
8
+
9
+ - **academy:** centralize husky & auto-update cli docs ([8c92e0bb1](https://github.com/powerhouse-inc/powerhouse/commit/8c92e0bb1))
10
+ - **ph-cli:** added setup-service command ([dfa082aa6](https://github.com/powerhouse-inc/powerhouse/commit/dfa082aa6))
11
+ - **scripts:** updated setup scripts ([9f7fa7644](https://github.com/powerhouse-inc/powerhouse/commit/9f7fa7644))
12
+ - enforce conventional commits ([faa49da40](https://github.com/powerhouse-inc/powerhouse/commit/faa49da40))
13
+ - **switchboard:** deploy with new dockerfile ([54f65af17](https://github.com/powerhouse-inc/powerhouse/commit/54f65af17))
14
+ - **switchboard:** new dockerfile based on ph-cmd ([fafff7143](https://github.com/powerhouse-inc/powerhouse/commit/fafff7143))
15
+ - **switchboard:** added auth params from powerhouse config ([5ad2becdd](https://github.com/powerhouse-inc/powerhouse/commit/5ad2becdd))
16
+ - **switchboard:** added authentication middleware ([7cab35e96](https://github.com/powerhouse-inc/powerhouse/commit/7cab35e96))
17
+ - removed scalars package ([d6f7059a7](https://github.com/powerhouse-inc/powerhouse/commit/d6f7059a7))
18
+ - enabled switchboard command ([5a9c467bf](https://github.com/powerhouse-inc/powerhouse/commit/5a9c467bf))
19
+ - removed scalars dependencies ([596aedbd5](https://github.com/powerhouse-inc/powerhouse/commit/596aedbd5))
20
+ - **builder-tools:** handle recursive objects in initial state generator ([c9eedcc43](https://github.com/powerhouse-inc/powerhouse/commit/c9eedcc43))
21
+ - **monorepo:** bump graphql lib ([ba9d5d338](https://github.com/powerhouse-inc/powerhouse/commit/ba9d5d338))
22
+ - **monorepo:** handle updating monorepo build deps ([db2ac2316](https://github.com/powerhouse-inc/powerhouse/commit/db2ac2316))
23
+ - **monorepo:** regenerate lockfile ([a6c390b4e](https://github.com/powerhouse-inc/powerhouse/commit/a6c390b4e))
24
+ - **builder-tools:** fix wrong value used for field id ([a6c6142e0](https://github.com/powerhouse-inc/powerhouse/commit/a6c6142e0))
25
+ - **reactor-api,reactor-local:** updated analytics dependencies ([cbeace573](https://github.com/powerhouse-inc/powerhouse/commit/cbeace573))
26
+ - **reactor-api,reactor-local,switchboard:** wait initial timeout before start listening to requests ([409f1e316](https://github.com/powerhouse-inc/powerhouse/commit/409f1e316))
27
+
28
+ ### 🩹 Fixes
29
+
30
+ - **academy:** lockfile issue second time' ([6208fe614](https://github.com/powerhouse-inc/powerhouse/commit/6208fe614))
31
+ - **academy:** fix frozen lockfile issue' ([80f18ec73](https://github.com/powerhouse-inc/powerhouse/commit/80f18ec73))
32
+ - **pre-commit:** use bash syntax and shebang ([da00ff581](https://github.com/powerhouse-inc/powerhouse/commit/da00ff581))
33
+ - added missing dep to academy ([4ec6c8278](https://github.com/powerhouse-inc/powerhouse/commit/4ec6c8278))
34
+ - **academy:** clean up husky script ([e18e26cd8](https://github.com/powerhouse-inc/powerhouse/commit/e18e26cd8))
35
+ - **switchboard:** set port in entrypoint ([c09677ec9](https://github.com/powerhouse-inc/powerhouse/commit/c09677ec9))
36
+ - **switchboard:** entrypoint ([472d6fa11](https://github.com/powerhouse-inc/powerhouse/commit/472d6fa11))
37
+ - **switchboard:** damn heroku ([fb95e9adc](https://github.com/powerhouse-inc/powerhouse/commit/fb95e9adc))
38
+ - **switchboard:** improved dockerfile ([130fc5535](https://github.com/powerhouse-inc/powerhouse/commit/130fc5535))
39
+ - **switchboard:** docker build ([7052e39e1](https://github.com/powerhouse-inc/powerhouse/commit/7052e39e1))
40
+ - docker build with PH_PACKAGES ([856ac1187](https://github.com/powerhouse-inc/powerhouse/commit/856ac1187))
41
+ - **auth:** some error handling ([1b3d6a38d](https://github.com/powerhouse-inc/powerhouse/commit/1b3d6a38d))
42
+ - **switchboard:** use config ([28b994a9e](https://github.com/powerhouse-inc/powerhouse/commit/28b994a9e))
43
+ - **document-drive:** fix type issue on browser storage ([240a78b41](https://github.com/powerhouse-inc/powerhouse/commit/240a78b41))
44
+ - **ph-cli:** ph add does not remove installed packages ([aedfbf56e](https://github.com/powerhouse-inc/powerhouse/commit/aedfbf56e))
45
+ - remove .env and add to .gitignore ([0d2d48684](https://github.com/powerhouse-inc/powerhouse/commit/0d2d48684))
46
+ - **switchboard,reactor-local:** latest version of sky atlas was not being installed ([72bf72fd4](https://github.com/powerhouse-inc/powerhouse/commit/72bf72fd4))
4
47
 
5
- - Updated @powerhousedao/reactor-api to 1.29.31-staging.1
48
+ ### ❤️ Thank You
49
+
50
+ - acaldas @acaldas
51
+ - Benjamin Jordan
52
+ - Callme-T
53
+ - Frank
54
+ - Guillermo Puente @gpuente
55
+ - ryanwolhuter @ryanwolhuter
6
56
 
7
57
  ## 2.3.0 (2025-05-06)
8
58
 
package/Dockerfile CHANGED
@@ -1,50 +1,48 @@
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
4
  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}
5
+ RUN chmod +x entrypoint.sh
6
+ ENV PNPM_HOME="/pnpm"
7
+ ENV PATH="$PNPM_HOME:$PATH"
8
+ RUN corepack enable && corepack install --global pnpm@9.8.0
9
+ ENV COREPACK_ENABLE_DOWNLOAD_PROMPT=0
10
+
11
+ ENV HUSKY=false
12
+
13
+ # Packages
14
+ ENV PH_PACKAGES=""
15
+
16
+ # Nx
17
+ ENV NX_SOCKET_DIR="/tmp/nx"
31
18
  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
19
 
37
- # Final production image
38
- FROM node:22-alpine AS runner
20
+ # Auth
21
+ ENV PH_SWITCHBOARD_AUTH_ENABLED=false
22
+ ENV PH_SWITCHBOARD_ADMINS_LIST="0x123,0x456"
23
+ ENV PH_SWITCHBOARD_USERS_LIST="0x123,0x456"
24
+ ENV PH_SWITCHBOARD_GUESTS_LIST="0x123,0x456"
39
25
 
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
26
+ # Database
27
+ ENV PH_SWITCHBOARD_DATABASE_URL="dev.db"
28
+ ENV PH_SWITCHBOARD_REDIS_URL=""
29
+
30
+ # Heroku Workaround
31
+ ENV PORT=4001
32
+
33
+ # Switchboard
34
+ ENV PH_SWITCHBOARD_PORT=$PORT
35
+
36
+ # Other
37
+ ARG PH_TAG=latest
38
+ ENV PH_TAG=$PH_TAG
39
+
40
+ RUN pnpm add -g ph-cmd@$PH_TAG && \
41
+ ph init powerhouse --package-manager pnpm && \
42
+ cd /app/powerhouse && \
43
+ ph use $PH_TAG
44
+
45
+ # Copy and set up entrypoint script
46
+
47
+
48
+ ENTRYPOINT ["/app/entrypoint.sh"]
@@ -1 +1 @@
1
- {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/clients/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,OAAO,CAAC;AAE3D,eAAO,IAAI,WAAW,EAAE,eAAe,GAAG,SAAS,CAAC;AACpD,eAAO,MAAM,SAAS,QACf,MAAM,KACV,OAAO,CAAC,eAAe,GAAG,SAAS,CAiCrC,CAAC;AAeF,eAAO,MAAM,UAAU,iCAItB,CAAC"}
1
+ {"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../../src/clients/redis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,eAAe,EAAE,MAAM,OAAO,CAAC;AAE3D,eAAO,IAAI,WAAW,EAAE,eAAe,GAAG,SAAS,CAAC;AACpD,eAAO,MAAM,SAAS,GACpB,KAAK,MAAM,KACV,OAAO,CAAC,eAAe,GAAG,SAAS,CAiCrC,CAAC;AAeF,eAAO,MAAM,UAAU,iCAItB,CAAC"}
@@ -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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";AAqBA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoB9E,eAAO,MAAM,gBAAgB,aAClB,kBAAkB,KAC1B,OAAO,CAAC,kBAAkB,CAkF5B,CAAC;AAEF,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":";AAqBA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAoB9E,eAAO,MAAM,gBAAgB,GAC3B,UAAS,kBAAuB,KAC/B,OAAO,CAAC,kBAAkB,CAkF5B,CAAC;AAEF,cAAc,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"gen-doc-model-type-defs.d.ts","sourceRoot":"","sources":["../../../src/utils/gen-doc-model-type-defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG9D,eAAO,MAAM,wBAAwB,wBACd,uBAAuB,YAClC,MAAM,mCA2DjB,CAAC"}
1
+ {"version":3,"file":"gen-doc-model-type-defs.d.ts","sourceRoot":"","sources":["../../../src/utils/gen-doc-model-type-defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAG9D,eAAO,MAAM,wBAAwB,GACnC,qBAAqB,uBAAuB,EAC5C,UAAU,MAAM,mCA2DjB,CAAC"}