Update deps, fix Docker build errors
This commit is contained in:
parent
162390008b
commit
c62bfd2a4c
31 changed files with 832 additions and 1227 deletions
37
README.md
37
README.md
|
|
@ -1,36 +1 @@
|
||||||
# Dev Setup
|
# TK
|
||||||
|
|
||||||
> NOTE: When using Gitpod/Codespaces, use at least 16GB RAM
|
|
||||||
|
|
||||||
Local dev with docker-compose
|
|
||||||
|
|
||||||
- Create `link-stack/.env` from Bitwarden `.env for root of link-stack`
|
|
||||||
- Run local dev with docker-compose:
|
|
||||||
```
|
|
||||||
git clone ...
|
|
||||||
cd link-stack
|
|
||||||
make start-dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Or for local dev of a single app
|
|
||||||
|
|
||||||
- Create `link-stack/apps/link/.env.local` from Bitwarden `.env.local for link-stack/apps/link`
|
|
||||||
- Create `link-stack/apps/bridge-frontend/.bridge.local.json` from Bitwarden `.bridge.local.json for link-stack/apps/bridge/frontend`
|
|
||||||
- Build locally for development:
|
|
||||||
```
|
|
||||||
npm install
|
|
||||||
make dev-bridge # this starts the containers
|
|
||||||
npm run migrate # this migrates the db
|
|
||||||
npm run dev:bridge # this runs bridge frontend and api
|
|
||||||
```
|
|
||||||
|
|
||||||
# TODO
|
|
||||||
|
|
||||||
- [ ] Delete old JWT config stuff
|
|
||||||
- [ ] Consolidate config
|
|
||||||
- [ ] Complete react-admin upgrade.. make all the bridge-frontend stuff work
|
|
||||||
- https://marmelab.com/react-admin/Upgrade.html#no-more-prop-injection-in-page-components
|
|
||||||
- [ ] Get bridge-worker working
|
|
||||||
- [ ] Migrate off mui/styles
|
|
||||||
- https://mui.com/material-ui/migration/v5-style-changes/
|
|
||||||
- the codemods might help us?
|
|
||||||
|
|
|
||||||
50
apps/bridge-frontend/Dockerfile
Normal file
50
apps/bridge-frontend/Dockerfile
Normal file
|
|
@ -0,0 +1,50 @@
|
||||||
|
FROM node:20-bookworm AS base
|
||||||
|
|
||||||
|
FROM base AS builder
|
||||||
|
ARG APP_DIR=/opt/bridge-frontend
|
||||||
|
RUN mkdir -p ${APP_DIR}/
|
||||||
|
RUN npm i -g turbo
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
COPY . .
|
||||||
|
RUN turbo prune --scope=bridge-frontend --docker
|
||||||
|
|
||||||
|
FROM base AS installer
|
||||||
|
ARG APP_DIR=/opt/bridge-frontend
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
COPY --from=builder ${APP_DIR}/.gitignore .gitignore
|
||||||
|
COPY --from=builder ${APP_DIR}/out/json/ .
|
||||||
|
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
||||||
|
RUN npm ci
|
||||||
|
|
||||||
|
COPY --from=builder ${APP_DIR}/out/full/ .
|
||||||
|
RUN npm i -g turbo
|
||||||
|
RUN turbo run build --filter=bridge-frontend
|
||||||
|
|
||||||
|
FROM base AS runner
|
||||||
|
ARG APP_DIR=/opt/bridge-frontend
|
||||||
|
WORKDIR ${APP_DIR}/
|
||||||
|
ARG BUILD_DATE
|
||||||
|
ARG VERSION
|
||||||
|
LABEL maintainer="Darren Clarke <darren@redaranj.com>"
|
||||||
|
LABEL org.label-schema.build-date=$BUILD_DATE
|
||||||
|
LABEL org.label-schema.version=$VERSION
|
||||||
|
ENV APP_DIR ${APP_DIR}
|
||||||
|
RUN DEBIAN_FRONTEND=noninteractive apt-get update && \
|
||||||
|
apt-get install -y --no-install-recommends \
|
||||||
|
dumb-init
|
||||||
|
RUN mkdir -p ${APP_DIR}
|
||||||
|
RUN chown -R node ${APP_DIR}/
|
||||||
|
|
||||||
|
USER node
|
||||||
|
WORKDIR ${APP_DIR}
|
||||||
|
COPY --from=installer ${APP_DIR}/node_modules/ ./node_modules/
|
||||||
|
COPY --from=installer ${APP_DIR}/apps/bridge-frontend/ ./apps/bridge-frontend/
|
||||||
|
COPY --from=installer ${APP_DIR}/package.json ./package.json
|
||||||
|
USER root
|
||||||
|
WORKDIR ${APP_DIR}/apps/bridge-frontend/
|
||||||
|
RUN chmod +x docker-entrypoint.sh
|
||||||
|
USER node
|
||||||
|
EXPOSE 3000
|
||||||
|
ENV PORT 3000
|
||||||
|
ENV NODE_ENV production
|
||||||
|
ENTRYPOINT ["/opt/link/apps/bridge-frontend/docker-entrypoint.sh"]
|
||||||
5
apps/bridge-frontend/docker-entrypoint.sh
Normal file
5
apps/bridge-frontend/docker-entrypoint.sh
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
echo "starting bridge-frontend"
|
||||||
|
exec dumb-init npm run start
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
"lint": "next lint"
|
"lint": "next lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@auth/kysely-adapter": "^1.0.0",
|
"@auth/kysely-adapter": "^1.1.0",
|
||||||
"@emotion/cache": "^11.11.0",
|
"@emotion/cache": "^11.11.0",
|
||||||
"@emotion/react": "^11.11.4",
|
"@emotion/react": "^11.11.4",
|
||||||
"@emotion/styled": "^11.11.5",
|
"@emotion/styled": "^11.11.5",
|
||||||
|
|
@ -17,9 +17,11 @@
|
||||||
"@mui/lab": "^5.0.0-alpha.170",
|
"@mui/lab": "^5.0.0-alpha.170",
|
||||||
"@mui/material": "^5",
|
"@mui/material": "^5",
|
||||||
"@mui/material-nextjs": "^5.15.11",
|
"@mui/material-nextjs": "^5.15.11",
|
||||||
"@mui/x-data-grid-pro": "^7.3.2",
|
"@mui/x-data-grid-pro": "^7.4.0",
|
||||||
"@mui/x-date-pickers-pro": "^7.3.2",
|
"@mui/x-date-pickers-pro": "^7.4.0",
|
||||||
"@mui/x-license": "^7.2.0",
|
"@mui/x-license": "^7.2.0",
|
||||||
|
"bridge-common": "*",
|
||||||
|
"bridge-ui": "*",
|
||||||
"date-fns": "^3.6.0",
|
"date-fns": "^3.6.0",
|
||||||
"dotenv": "^16.4.5",
|
"dotenv": "^16.4.5",
|
||||||
"graphile-worker": "^0.16.6",
|
"graphile-worker": "^0.16.6",
|
||||||
|
|
@ -33,13 +35,12 @@
|
||||||
"react-cookie": "^7.1.4",
|
"react-cookie": "^7.1.4",
|
||||||
"react-digit-input": "^2.1.0",
|
"react-digit-input": "^2.1.0",
|
||||||
"react-dom": "18.3.1",
|
"react-dom": "18.3.1",
|
||||||
"react-qr-code": "^2.0.12",
|
"react-qr-code": "^2.0.13",
|
||||||
"react-timer-hook": "^3.0.7",
|
"react-timer-hook": "^3.0.7",
|
||||||
|
"sharp": "^0.33.3",
|
||||||
"tss-react": "^4.9.10",
|
"tss-react": "^4.9.10",
|
||||||
"tsx": "^4.9.3",
|
"tsx": "^4.10.2",
|
||||||
"ui": "*",
|
"ui": "*"
|
||||||
"bridge-common": "*",
|
|
||||||
"bridge-ui": "*"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20",
|
"@types/node": "^20",
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "bundler",
|
"moduleResolution": "bundler",
|
||||||
|
|
@ -12,14 +13,14 @@
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"jsx": "preserve",
|
"jsx": "preserve",
|
||||||
"incremental": true,
|
"incremental": true,
|
||||||
|
"paths": {
|
||||||
|
"@/*": ["./*"]
|
||||||
|
},
|
||||||
"plugins": [
|
"plugins": [
|
||||||
{
|
{
|
||||||
"name": "next"
|
"name": "next"
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"paths": {
|
|
||||||
"@/*": ["./*"]
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||||
"exclude": ["node_modules"]
|
"exclude": ["node_modules"]
|
||||||
|
|
|
||||||
|
|
@ -16,14 +16,14 @@
|
||||||
"bridge-common": "*",
|
"bridge-common": "*",
|
||||||
"hapi-auth-bearer-token": "^8.0.0",
|
"hapi-auth-bearer-token": "^8.0.0",
|
||||||
"hapi-pino": "^12.1.0",
|
"hapi-pino": "^12.1.0",
|
||||||
"kysely": "^0.27.3"
|
"kysely": "^0.26.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"eslint-config": "*",
|
"eslint-config": "*",
|
||||||
"jest-config": "*",
|
"jest-config": "*",
|
||||||
"ts-config": "*",
|
"ts-config": "*",
|
||||||
"tsx": "^4.9.3",
|
"tsx": "^4.10.2",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.4.5"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
FROM node:18-alpine as base
|
FROM node:18-alpine as base
|
||||||
|
|
||||||
FROM base AS builder
|
FROM base AS builder
|
||||||
ARG APP_DIR=/opt/bridge
|
ARG APP_DIR=/opt/bridge-worker
|
||||||
RUN mkdir -p ${APP_DIR}/
|
RUN mkdir -p ${APP_DIR}/
|
||||||
RUN npm i -g turbo
|
RUN npm i -g turbo
|
||||||
WORKDIR ${APP_DIR}
|
WORKDIR ${APP_DIR}
|
||||||
|
|
@ -9,9 +9,9 @@ COPY . .
|
||||||
RUN turbo prune --scope=bridge-worker --docker
|
RUN turbo prune --scope=bridge-worker --docker
|
||||||
|
|
||||||
FROM base AS installer
|
FROM base AS installer
|
||||||
ARG APP_DIR=/opt/bridge
|
ARG APP_DIR=/opt/bridge-worker
|
||||||
WORKDIR ${APP_DIR}
|
WORKDIR ${APP_DIR}
|
||||||
COPY .gitignore .gitignore
|
COPY --from=builder ${APP_DIR}/.gitignore .gitignore
|
||||||
COPY --from=builder ${APP_DIR}/out/json/ .
|
COPY --from=builder ${APP_DIR}/out/json/ .
|
||||||
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
||||||
COPY --from=builder ${APP_DIR}/out/full/ .
|
COPY --from=builder ${APP_DIR}/out/full/ .
|
||||||
|
|
@ -20,7 +20,7 @@ RUN npm i -g turbo
|
||||||
RUN turbo run build --filter=bridge-worker
|
RUN turbo run build --filter=bridge-worker
|
||||||
|
|
||||||
FROM graphile/worker:0.16.5 as runner
|
FROM graphile/worker:0.16.5 as runner
|
||||||
ARG APP_DIR=/opt/bridge
|
ARG APP_DIR=/opt/bridge-worker
|
||||||
RUN mkdir -p ${APP_DIR}/
|
RUN mkdir -p ${APP_DIR}/
|
||||||
ARG BUILD_DIR=${APP_DIR}/apps/bridge-worker/build/main
|
ARG BUILD_DIR=${APP_DIR}/apps/bridge-worker/build/main
|
||||||
RUN mkdir -p ${APP_DIR}/
|
RUN mkdir -p ${APP_DIR}/
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ RUN turbo prune --scope=leafcutter --docker
|
||||||
FROM base AS installer
|
FROM base AS installer
|
||||||
ARG APP_DIR=/opt/leafcutter
|
ARG APP_DIR=/opt/leafcutter
|
||||||
WORKDIR ${APP_DIR}
|
WORKDIR ${APP_DIR}
|
||||||
COPY .gitignore .gitignore
|
COPY --from=builder ${APP_DIR}/.gitignore .gitignore
|
||||||
COPY --from=builder ${APP_DIR}/out/json/ .
|
COPY --from=builder ${APP_DIR}/out/json/ .
|
||||||
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,9 @@
|
||||||
"@mui/icons-material": "^5",
|
"@mui/icons-material": "^5",
|
||||||
"@mui/lab": "^5.0.0-alpha.170",
|
"@mui/lab": "^5.0.0-alpha.170",
|
||||||
"@mui/material": "^5",
|
"@mui/material": "^5",
|
||||||
"@mui/x-data-grid-pro": "^7.3.2",
|
"@mui/x-data-grid-pro": "^7.4.0",
|
||||||
"@mui/x-date-pickers-pro": "^7.3.2",
|
"@mui/x-date-pickers-pro": "^7.4.0",
|
||||||
"@opensearch-project/opensearch": "^2.7.0",
|
"@opensearch-project/opensearch": "^2.8.0",
|
||||||
"cryptr": "^6.3.0",
|
"cryptr": "^6.3.0",
|
||||||
"date-fns": "^3.6.0",
|
"date-fns": "^3.6.0",
|
||||||
"http-proxy-middleware": "^3.0.0",
|
"http-proxy-middleware": "^3.0.0",
|
||||||
|
|
@ -47,8 +47,8 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.24.5",
|
"@babel/core": "^7.24.5",
|
||||||
"@types/node": "^20.12.10",
|
"@types/node": "^20.12.11",
|
||||||
"@types/react": "18.3.1",
|
"@types/react": "18.3.2",
|
||||||
"@types/uuid": "^9.0.8",
|
"@types/uuid": "^9.0.8",
|
||||||
"babel-loader": "^9.1.3",
|
"babel-loader": "^9.1.3",
|
||||||
"eslint": "^8.0.0",
|
"eslint": "^8.0.0",
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ RUN turbo prune --scope=link --docker
|
||||||
FROM base AS installer
|
FROM base AS installer
|
||||||
ARG APP_DIR=/opt/link
|
ARG APP_DIR=/opt/link
|
||||||
WORKDIR ${APP_DIR}
|
WORKDIR ${APP_DIR}
|
||||||
COPY .gitignore .gitignore
|
COPY --from=builder ${APP_DIR}/.gitignore .gitignore
|
||||||
COPY --from=builder ${APP_DIR}/out/json/ .
|
COPY --from=builder ${APP_DIR}/out/json/ .
|
||||||
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
COPY --from=builder ${APP_DIR}/out/package-lock.json ./package-lock.json
|
||||||
RUN npm ci
|
RUN npm ci
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ export const createTicketAction = async (
|
||||||
setBody("");
|
setBody("");
|
||||||
};
|
};
|
||||||
|
|
||||||
*/
|
|
||||||
try {
|
try {
|
||||||
const ticket = {
|
const ticket = {
|
||||||
title: formData.get("title"),
|
title: formData.get("title"),
|
||||||
|
|
@ -50,12 +50,14 @@ export const createTicketAction = async (
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
return { success: false, message: e?.message ?? "Unknown error" };
|
return { success: false, message: e?.message ?? "Unknown error" };
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
export const updateTicketAction = async (
|
export const updateTicketAction = async (
|
||||||
currentState: any,
|
currentState: any,
|
||||||
formData: FormData,
|
formData: FormData,
|
||||||
) => {
|
) => {
|
||||||
|
/*
|
||||||
try {
|
try {
|
||||||
const { id, project } = currentState.values;
|
const { id, project } = currentState.values;
|
||||||
const updatedTicket = {
|
const updatedTicket = {
|
||||||
|
|
@ -80,12 +82,14 @@ export const updateTicketAction = async (
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
return { success: false, message: e?.message ?? "Unknown error" };
|
return { success: false, message: e?.message ?? "Unknown error" };
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
export const updateTicketTagsAction = async (
|
export const updateTicketTagsAction = async (
|
||||||
currentState: any,
|
currentState: any,
|
||||||
formData: FormData,
|
formData: FormData,
|
||||||
) => {
|
) => {
|
||||||
|
/*
|
||||||
try {
|
try {
|
||||||
const { id, project } = currentState.values;
|
const { id, project } = currentState.values;
|
||||||
const updatedTicket = {
|
const updatedTicket = {
|
||||||
|
|
@ -110,4 +114,5 @@ export const updateTicketTagsAction = async (
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
return { success: false, message: e?.message ?? "Unknown error" };
|
return { success: false, message: e?.message ?? "Unknown error" };
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,15 @@
|
||||||
/** @type {import('next').NextConfig} */
|
/** @type {import('next').NextConfig} */
|
||||||
const nextConfig = {
|
const nextConfig = {
|
||||||
reactStrictMode: true,
|
|
||||||
experimental: {
|
experimental: {
|
||||||
missingSuspenseWithCSRBailout: false,
|
missingSuspenseWithCSRBailout: false,
|
||||||
},
|
},
|
||||||
transpilePackages: ["leafcutter-ui", "bridge-ui", "opensearch-common", "ui"],
|
transpilePackages: [
|
||||||
|
"leafcutter-ui",
|
||||||
|
"opensearch-common",
|
||||||
|
"ui",
|
||||||
|
"bridge-common",
|
||||||
|
"bridge-ui",
|
||||||
|
],
|
||||||
publicRuntimeConfig: {
|
publicRuntimeConfig: {
|
||||||
linkURL: process.env.LINK_URL ?? "http://localhost:3000",
|
linkURL: process.env.LINK_URL ?? "http://localhost:3000",
|
||||||
bridgeURL: process.env.BRIDGE_URL ?? "http://localhost:8002",
|
bridgeURL: process.env.BRIDGE_URL ?? "http://localhost:8002",
|
||||||
|
|
@ -13,4 +18,4 @@ const nextConfig = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports = nextConfig;
|
export default nextConfig;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "link",
|
"name": "link",
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
"build": "next build",
|
"build": "next build",
|
||||||
|
|
@ -18,12 +19,13 @@
|
||||||
"@mui/icons-material": "^5",
|
"@mui/icons-material": "^5",
|
||||||
"@mui/lab": "^5.0.0-alpha.170",
|
"@mui/lab": "^5.0.0-alpha.170",
|
||||||
"@mui/material": "^5",
|
"@mui/material": "^5",
|
||||||
"@mui/x-data-grid-pro": "^7.3.2",
|
"@mui/x-data-grid-pro": "^7.4.0",
|
||||||
"@mui/x-date-pickers-pro": "^7.3.2",
|
"@mui/x-date-pickers-pro": "^7.4.0",
|
||||||
"bridge-common": "*",
|
"bridge-common": "*",
|
||||||
"bridge-ui": "*",
|
"bridge-ui": "*",
|
||||||
"date-fns": "^3.6.0",
|
"date-fns": "^3.6.0",
|
||||||
"graphql-request": "^6.1.0",
|
"graphql": "^16.8.1",
|
||||||
|
"graphql-request": "^7.0.1",
|
||||||
"leafcutter-ui": "*",
|
"leafcutter-ui": "*",
|
||||||
"material-ui-popup-state": "^5.1.0",
|
"material-ui-popup-state": "^5.1.0",
|
||||||
"mui-chips-input": "^2.1.4",
|
"mui-chips-input": "^2.1.4",
|
||||||
|
|
@ -43,8 +45,8 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.24.5",
|
"@babel/core": "^7.24.5",
|
||||||
"@types/node": "^20.12.10",
|
"@types/node": "^20.12.11",
|
||||||
"@types/react": "18.3.1",
|
"@types/react": "18.3.2",
|
||||||
"@types/uuid": "^9.0.8",
|
"@types/uuid": "^9.0.8",
|
||||||
"babel-loader": "^9.1.3",
|
"babel-loader": "^9.1.3",
|
||||||
"eslint": "^8.0.0",
|
"eslint": "^8.0.0",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es5",
|
|
||||||
"lib": ["dom", "dom.iterable", "esnext"],
|
"lib": ["dom", "dom.iterable", "esnext"],
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
|
|
@ -9,7 +8,7 @@
|
||||||
"noEmit": true,
|
"noEmit": true,
|
||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"module": "esnext",
|
"module": "esnext",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "bundler",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"jsx": "preserve",
|
"jsx": "preserve",
|
||||||
|
|
@ -24,12 +23,6 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"include": [
|
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
||||||
"next-env.d.ts",
|
|
||||||
"**/*.ts",
|
|
||||||
"**/*.tsx",
|
|
||||||
".next/types/**/*.ts",
|
|
||||||
"../leafcutter/app/(login)/login/link/_components/AutoLogin.tsx"
|
|
||||||
],
|
|
||||||
"exclude": ["node_modules"]
|
"exclude": ["node_modules"]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,9 @@ x-bridge-vars: &common-bridge-variables
|
||||||
|
|
||||||
services:
|
services:
|
||||||
bridge-frontend:
|
bridge-frontend:
|
||||||
build: ../../apps/bridge-frontend
|
build:
|
||||||
|
context: ../../
|
||||||
|
dockerfile: ./apps/bridge-frontend/Dockerfile
|
||||||
container_name: bridge-frontend
|
container_name: bridge-frontend
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
ports:
|
ports:
|
||||||
|
|
@ -43,7 +45,9 @@ services:
|
||||||
environment: *common-bridge-variables
|
environment: *common-bridge-variables
|
||||||
|
|
||||||
bridge-worker:
|
bridge-worker:
|
||||||
build: ../../apps/bridge-worker
|
build:
|
||||||
|
context: ../../
|
||||||
|
dockerfile: ./apps/bridge-worker/Dockerfile
|
||||||
container_name: bridge-worker
|
container_name: bridge-worker
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
environment: *common-bridge-variables
|
environment: *common-bridge-variables
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ services:
|
||||||
container_name: leafcutter
|
container_name: leafcutter
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
build:
|
build:
|
||||||
context: .
|
context: ../../
|
||||||
dockerfile: ../../apps/leafcutter/Dockerfile
|
dockerfile: ./apps/leafcutter/Dockerfile
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/leafcutter:${LINK_STACK_VERSION}
|
image: registry.gitlab.com/digiresilience/link/link-stack/leafcutter:${LINK_STACK_VERSION}
|
||||||
expose:
|
expose:
|
||||||
- "3000"
|
- "3000"
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,8 @@ services:
|
||||||
container_name: link
|
container_name: link
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
build:
|
build:
|
||||||
context: .
|
context: ../../
|
||||||
dockerfile: ../../apps/link/Dockerfile
|
dockerfile: ./apps/link/Dockerfile
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/link:${LINK_STACK_VERSION}
|
image: registry.gitlab.com/digiresilience/link/link-stack/link:${LINK_STACK_VERSION}
|
||||||
expose:
|
expose:
|
||||||
- "3000"
|
- "3000"
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# need to include changes from https://github.com/zammad/zammad/blob/506c295c1d15f8dc19fc8bb69af1fb721bf10f49/contrib/docker/setup.sh
|
# need to include changes from https://github.com/zammad/zammad/blob/506c295c1d15f8dc19fc8bb69af1fb721bf10f49/contrib/docker/setup.sh
|
||||||
|
|
||||||
ARG ZAMMAD_VERSION=6.3.0
|
ARG ZAMMAD_VERSION=6.2.0
|
||||||
|
|
||||||
FROM node:16.18.0-slim as node
|
FROM node:16.18.0-slim as node
|
||||||
FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} AS builder
|
FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} AS builder
|
||||||
|
|
|
||||||
1801
package-lock.json
generated
1801
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -13,7 +13,8 @@
|
||||||
"migrate:down:one": "tsx database/migrate.ts down:one"
|
"migrate:down:one": "tsx database/migrate.ts down:one"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@auth/kysely-adapter": "^1.0.0",
|
"@auth/kysely-adapter": "^1.1.0",
|
||||||
|
"graphile-worker": "^0.16.6",
|
||||||
"kysely": "0.26.1",
|
"kysely": "0.26.1",
|
||||||
"pg": "^8.11.5"
|
"pg": "^8.11.5"
|
||||||
},
|
},
|
||||||
|
|
@ -24,7 +25,7 @@
|
||||||
"eslint": "^9.0.0",
|
"eslint": "^9.0.0",
|
||||||
"prettier": "^3.2.5",
|
"prettier": "^3.2.5",
|
||||||
"ts-config": "*",
|
"ts-config": "*",
|
||||||
"tsx": "^4.9.3",
|
"tsx": "^4.10.2",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.4.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@
|
||||||
"build": "tsc -p tsconfig.json"
|
"build": "tsc -p tsconfig.json"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@auth/kysely-adapter": "^1.1.0",
|
||||||
"@emotion/cache": "^11.11.0",
|
"@emotion/cache": "^11.11.0",
|
||||||
"@emotion/react": "^11.11.4",
|
"@emotion/react": "^11.11.4",
|
||||||
"@emotion/server": "^11.11.0",
|
"@emotion/server": "^11.11.0",
|
||||||
|
|
@ -12,9 +13,10 @@
|
||||||
"@mui/icons-material": "^5",
|
"@mui/icons-material": "^5",
|
||||||
"@mui/lab": "^5.0.0-alpha.170",
|
"@mui/lab": "^5.0.0-alpha.170",
|
||||||
"@mui/material": "^5",
|
"@mui/material": "^5",
|
||||||
"@mui/x-data-grid-pro": "^7.3.2",
|
"@mui/x-data-grid-pro": "^7.4.0",
|
||||||
"@mui/x-date-pickers-pro": "^7.3.2",
|
"@mui/x-date-pickers-pro": "^7.4.0",
|
||||||
"date-fns": "^3.6.0",
|
"date-fns": "^3.6.0",
|
||||||
|
"kysely": "0.26.1",
|
||||||
"material-ui-popup-state": "^5.1.0",
|
"material-ui-popup-state": "^5.1.0",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
|
|
@ -29,8 +31,9 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.24.5",
|
"@babel/core": "^7.24.5",
|
||||||
"@types/node": "^20.12.10",
|
"@types/node": "^20.12.11",
|
||||||
"@types/react": "18.3.1",
|
"@types/react": "18.3.2",
|
||||||
|
"@types/react-dom": "^18.3.0",
|
||||||
"@types/uuid": "^9.0.8",
|
"@types/uuid": "^9.0.8",
|
||||||
"babel-loader": "^9.1.3",
|
"babel-loader": "^9.1.3",
|
||||||
"eslint": "^8.0.0",
|
"eslint": "^8.0.0",
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -10,8 +10,8 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@rushstack/eslint-patch": "^1.10.2",
|
"@rushstack/eslint-patch": "^1.10.2",
|
||||||
"@typescript-eslint/eslint-plugin": "^7.8.0",
|
"@typescript-eslint/eslint-plugin": "^7.9.0",
|
||||||
"@typescript-eslint/parser": "^7.8.0",
|
"@typescript-eslint/parser": "^7.9.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^9.1.0",
|
||||||
"eslint-config-xo-space": "^0.35.0",
|
"eslint-config-xo-space": "^0.35.0",
|
||||||
"eslint-plugin-cypress": "^3.2.0",
|
"eslint-plugin-cypress": "^3.2.0",
|
||||||
|
|
@ -20,7 +20,7 @@
|
||||||
"eslint-plugin-jest": "^28.5.0",
|
"eslint-plugin-jest": "^28.5.0",
|
||||||
"eslint-plugin-no-use-extend-native": "^0.5.0",
|
"eslint-plugin-no-use-extend-native": "^0.5.0",
|
||||||
"eslint-plugin-promise": "^6.1.1",
|
"eslint-plugin-promise": "^6.1.1",
|
||||||
"eslint-plugin-unicorn": "52.0.0",
|
"eslint-plugin-unicorn": "53.0.0",
|
||||||
"@babel/eslint-parser": "7.24.5"
|
"@babel/eslint-parser": "7.24.5"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
|
|
||||||
|
|
@ -12,8 +12,8 @@
|
||||||
"@mui/icons-material": "^5",
|
"@mui/icons-material": "^5",
|
||||||
"@mui/lab": "^5.0.0-alpha.170",
|
"@mui/lab": "^5.0.0-alpha.170",
|
||||||
"@mui/material": "^5",
|
"@mui/material": "^5",
|
||||||
"@mui/x-data-grid-pro": "^7.3.2",
|
"@mui/x-data-grid-pro": "^7.4.0",
|
||||||
"@mui/x-date-pickers-pro": "^7.3.2",
|
"@mui/x-date-pickers-pro": "^7.4.0",
|
||||||
"opensearch-common": "*",
|
"opensearch-common": "*",
|
||||||
"date-fns": "^3.6.0",
|
"date-fns": "^3.6.0",
|
||||||
"material-ui-popup-state": "^5.1.0",
|
"material-ui-popup-state": "^5.1.0",
|
||||||
|
|
@ -30,8 +30,8 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.24.5",
|
"@babel/core": "^7.24.5",
|
||||||
"@types/node": "^20.12.10",
|
"@types/node": "^20.12.11",
|
||||||
"@types/react": "18.3.1",
|
"@types/react": "18.3.2",
|
||||||
"@types/uuid": "^9.0.8",
|
"@types/uuid": "^9.0.8",
|
||||||
"babel-loader": "^9.1.3",
|
"babel-loader": "^9.1.3",
|
||||||
"eslint": "^8.0.0",
|
"eslint": "^8.0.0",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"target": "es5",
|
|
||||||
"lib": ["dom", "dom.iterable", "esnext"],
|
"lib": ["dom", "dom.iterable", "esnext"],
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"skipLibCheck": true,
|
"skipLibCheck": true,
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -5,13 +5,13 @@
|
||||||
"build": "tsc -p tsconfig.json"
|
"build": "tsc -p tsconfig.json"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@opensearch-project/opensearch": "^2.7.0",
|
"@opensearch-project/opensearch": "^2.8.0",
|
||||||
"uuid": "^9.0.1"
|
"uuid": "^9.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.24.5",
|
"@babel/core": "^7.24.5",
|
||||||
"@types/node": "^20.12.10",
|
"@types/node": "^20.12.11",
|
||||||
"@types/react": "18.3.1",
|
"@types/react": "18.3.2",
|
||||||
"@types/uuid": "^9.0.8",
|
"@types/uuid": "^9.0.8",
|
||||||
"babel-loader": "^9.1.3",
|
"babel-loader": "^9.1.3",
|
||||||
"eslint": "^8.0.0",
|
"eslint": "^8.0.0",
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -19,6 +19,6 @@
|
||||||
"pretty": true,
|
"pretty": true,
|
||||||
"experimentalDecorators": true,
|
"experimentalDecorators": true,
|
||||||
"emitDecoratorMetadata": true,
|
"emitDecoratorMetadata": true,
|
||||||
"types": ["node", "jest"]
|
"types": ["node"]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,15 +11,15 @@
|
||||||
"@mui/icons-material": "^5",
|
"@mui/icons-material": "^5",
|
||||||
"@mui/lab": "^5.0.0-alpha.170",
|
"@mui/lab": "^5.0.0-alpha.170",
|
||||||
"@mui/material": "^5",
|
"@mui/material": "^5",
|
||||||
"@mui/x-data-grid-pro": "^7.3.2",
|
"@mui/x-data-grid-pro": "^7.4.0",
|
||||||
"@mui/x-date-pickers-pro": "^7.3.2",
|
"@mui/x-date-pickers-pro": "^7.4.0",
|
||||||
"next": "14.2.3",
|
"next": "14.2.3",
|
||||||
"react": "18.3.1",
|
"react": "18.3.1",
|
||||||
"react-dom": "18.3.1"
|
"react-dom": "18.3.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^20.12.10",
|
"@types/node": "^20.12.11",
|
||||||
"@types/react": "18.3.1",
|
"@types/react": "18.3.2",
|
||||||
"typescript": "^5.4.5"
|
"typescript": "^5.4.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue