Update deps and Zammad version (6.4.1)
This commit is contained in:
parent
07ee819520
commit
9e5ea2fc41
40 changed files with 973 additions and 849 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/bridge-frontend",
|
"name": "@link-stack/bridge-frontend",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|
@ -17,10 +17,10 @@
|
||||||
"@mui/icons-material": "^6",
|
"@mui/icons-material": "^6",
|
||||||
"@mui/material": "^6",
|
"@mui/material": "^6",
|
||||||
"@mui/material-nextjs": "^6",
|
"@mui/material-nextjs": "^6",
|
||||||
"@mui/x-license": "^7.23.2",
|
"@mui/x-license": "^7.23.6",
|
||||||
"@link-stack/bridge-common": "*",
|
"@link-stack/bridge-common": "*",
|
||||||
"@link-stack/bridge-ui": "*",
|
"@link-stack/bridge-ui": "*",
|
||||||
"next": "15.1.0",
|
"next": "15.1.4",
|
||||||
"next-auth": "^4.24.11",
|
"next-auth": "^4.24.11",
|
||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"react-dom": "19.0.0",
|
"react-dom": "19.0.0",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/bridge-migrations",
|
"name": "@link-stack/bridge-migrations",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"migrate:up:all": "tsx migrate.ts up:all",
|
"migrate:up:all": "tsx migrate.ts up:all",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/bridge-whatsapp",
|
"name": "@link-stack/bridge-whatsapp",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"main": "build/main/index.js",
|
"main": "build/main/index.js",
|
||||||
"author": "Darren Clarke <darren@redaranj.com>",
|
"author": "Darren Clarke <darren@redaranj.com>",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
|
|
@ -11,16 +11,16 @@
|
||||||
"@hapipal/toys": "^4.0.0",
|
"@hapipal/toys": "^4.0.0",
|
||||||
"@whiskeysockets/baileys": "^6.7.9",
|
"@whiskeysockets/baileys": "^6.7.9",
|
||||||
"hapi-pino": "^12.1.0",
|
"hapi-pino": "^12.1.0",
|
||||||
"link-preview-js": "^3.0.12"
|
"link-preview-js": "^3.0.13"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@link-stack/eslint-config": "*",
|
"@link-stack/eslint-config": "*",
|
||||||
"@link-stack/jest-config": "*",
|
"@link-stack/jest-config": "*",
|
||||||
"@link-stack/typescript-config": "*",
|
"@link-stack/typescript-config": "*",
|
||||||
"@types/node": "*",
|
"@types/node": "*",
|
||||||
"dotenv-cli": "^7.4.4",
|
"dotenv-cli": "^8.0.0",
|
||||||
"tsx": "^4.19.2",
|
"tsx": "^4.19.2",
|
||||||
"typescript": "^5.7.2"
|
"typescript": "^5.7.3"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p tsconfig.json",
|
"build": "tsc -p tsconfig.json",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/bridge-worker",
|
"name": "@link-stack/bridge-worker",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "build/main/index.js",
|
"main": "build/main/index.js",
|
||||||
"author": "Darren Clarke <darren@redaranj.com>",
|
"author": "Darren Clarke <darren@redaranj.com>",
|
||||||
|
|
@ -16,14 +16,14 @@
|
||||||
"@link-stack/signal-api": "*",
|
"@link-stack/signal-api": "*",
|
||||||
"fluent-ffmpeg": "^2.1.3",
|
"fluent-ffmpeg": "^2.1.3",
|
||||||
"graphile-worker": "^0.16.6",
|
"graphile-worker": "^0.16.6",
|
||||||
"remeda": "^2.17.4",
|
"remeda": "^2.19.1",
|
||||||
"twilio": "^5.4.0"
|
"twilio": "^5.4.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/fluent-ffmpeg": "^2.1.27",
|
"@types/fluent-ffmpeg": "^2.1.27",
|
||||||
"dotenv-cli": "^7.4.4",
|
"dotenv-cli": "^8.0.0",
|
||||||
"@link-stack/eslint-config": "*",
|
"@link-stack/eslint-config": "*",
|
||||||
"@link-stack/typescript-config": "*",
|
"@link-stack/typescript-config": "*",
|
||||||
"typescript": "^5.7.2"
|
"typescript": "^5.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,9 +22,9 @@ const getVisualization = async (visualizationID: string) => {
|
||||||
);
|
);
|
||||||
const hit = hits[0];
|
const hit = hits[0];
|
||||||
const visualization = {
|
const visualization = {
|
||||||
id: hit._id.split(":")[1],
|
id: hit?._id.split(":")[1],
|
||||||
title: hit._source.visualization.title,
|
title: hit?._source?.visualization.title,
|
||||||
description: hit._source.visualization.description,
|
description: hit?._source?.visualization.description,
|
||||||
url: `/app/visualize?security_tenant=global#/edit/${
|
url: `/app/visualize?security_tenant=global#/edit/${
|
||||||
hit._id.split(":")[1]
|
hit._id.split(":")[1]
|
||||||
}?embed=true`,
|
}?embed=true`,
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,8 @@ const userMetadataIndexName = "user_metadata";
|
||||||
|
|
||||||
const baseURL = `https://${process.env.OPENSEARCH_USERNAME}:${process.env.OPENSEARCH_PASSWORD}@${process.env.OPENSEARCH_URL}`;
|
const baseURL = `https://${process.env.OPENSEARCH_USERNAME}:${process.env.OPENSEARCH_PASSWORD}@${process.env.OPENSEARCH_URL}`;
|
||||||
|
|
||||||
const createClient = () => new Client({
|
const createClient = () =>
|
||||||
|
new Client({
|
||||||
node: baseURL,
|
node: baseURL,
|
||||||
auth: {
|
auth: {
|
||||||
username: process.env.OPENSEARCH_USERNAME!,
|
username: process.env.OPENSEARCH_USERNAME!,
|
||||||
|
|
@ -21,7 +22,8 @@ const createClient = () => new Client({
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const createUserClient = (username: string, password: string) => new Client({
|
const createUserClient = (username: string, password: string) =>
|
||||||
|
new Client({
|
||||||
node: baseURL,
|
node: baseURL,
|
||||||
auth: {
|
auth: {
|
||||||
username,
|
username,
|
||||||
|
|
@ -115,7 +117,7 @@ export const getUserMetadata = async (username: string) => {
|
||||||
await client.create({
|
await client.create({
|
||||||
id: username,
|
id: username,
|
||||||
index: userMetadataIndexName,
|
index: userMetadataIndexName,
|
||||||
body: { username, savedSearches: [] }
|
body: { username, savedSearches: [] },
|
||||||
});
|
});
|
||||||
|
|
||||||
res = await client.get({
|
res = await client.get({
|
||||||
|
|
@ -132,7 +134,7 @@ export const saveUserMetadata = async (username: string, metadata: any) => {
|
||||||
await client.update({
|
await client.update({
|
||||||
id: username,
|
id: username,
|
||||||
index: userMetadataIndexName,
|
index: userMetadataIndexName,
|
||||||
body: { doc: { username, ...metadata } }
|
body: { doc: { username, ...metadata } },
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -181,7 +183,7 @@ const getIndexPattern: any = async (index: string) => {
|
||||||
sort: ["updated_at:desc"],
|
sort: ["updated_at:desc"],
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res.body.hits.total.value === 0) {
|
if (res?.body?.hits?.total?.valueOf() === 0) {
|
||||||
// eslint-disable-next-line no-use-before-define
|
// eslint-disable-next-line no-use-before-define
|
||||||
return createCurrentUserIndexPattern(index);
|
return createCurrentUserIndexPattern(index);
|
||||||
}
|
}
|
||||||
|
|
@ -226,7 +228,7 @@ interface createUserVisualizationProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const createUserVisualization = async (
|
export const createUserVisualization = async (
|
||||||
props: createUserVisualizationProps
|
props: createUserVisualizationProps,
|
||||||
) => {
|
) => {
|
||||||
const { email, query, visualizationID, title, description } = props;
|
const { email, query, visualizationID, title, description } = props;
|
||||||
const userIndex = await getCurrentUserIndex(email);
|
const userIndex = await getCurrentUserIndex(email);
|
||||||
|
|
@ -279,7 +281,7 @@ interface updateVisualizationProps {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const updateUserVisualization = async (
|
export const updateUserVisualization = async (
|
||||||
props: updateVisualizationProps
|
props: updateVisualizationProps,
|
||||||
) => {
|
) => {
|
||||||
const { email, id, query, title, description } = props;
|
const { email, id, query, title, description } = props;
|
||||||
const userIndex = await getCurrentUserIndex(email);
|
const userIndex = await getCurrentUserIndex(email);
|
||||||
|
|
@ -469,10 +471,18 @@ export const performQuery = async (searchQuery: any, limit: number) => {
|
||||||
const results = hits.map((hit: any) => ({
|
const results = hits.map((hit: any) => ({
|
||||||
...hit._source,
|
...hit._source,
|
||||||
id: hit._id,
|
id: hit._id,
|
||||||
incident: Array.isArray(hit._source.incident) ? hit._source.incident.join(", ") : hit._source.incident,
|
incident: Array.isArray(hit._source.incident)
|
||||||
technology: Array.isArray(hit._source.technology) ? hit._source.technology.join(", ") : hit._source.technology,
|
? hit._source.incident.join(", ")
|
||||||
targeted_group: Array.isArray(hit._source.targeted_group) ? hit._source.targeted_group.join(", ") : hit._source.targeted_group,
|
: hit._source.incident,
|
||||||
country: Array.isArray(hit._source.country) ? hit._source.country.join(", ") : hit._source.country,
|
technology: Array.isArray(hit._source.technology)
|
||||||
|
? hit._source.technology.join(", ")
|
||||||
|
: hit._source.technology,
|
||||||
|
targeted_group: Array.isArray(hit._source.targeted_group)
|
||||||
|
? hit._source.targeted_group.join(", ")
|
||||||
|
: hit._source.targeted_group,
|
||||||
|
country: Array.isArray(hit._source.country)
|
||||||
|
? hit._source.country.join(", ")
|
||||||
|
: hit._source.country,
|
||||||
}));
|
}));
|
||||||
|
|
||||||
return results;
|
return results;
|
||||||
|
|
@ -570,7 +580,6 @@ export const getTemplates = async (limit: number) => {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const rawResponse = await client.search({
|
const rawResponse = await client.search({
|
||||||
index: globalIndex,
|
index: globalIndex,
|
||||||
size: limit,
|
size: limit,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/leafcutter",
|
"name": "@link-stack/leafcutter",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev -p 3001",
|
"dev": "next dev -p 3001",
|
||||||
"login": "aws sso login --sso-session cdr",
|
"login": "aws sso login --sso-session cdr",
|
||||||
|
|
@ -22,12 +22,12 @@
|
||||||
"@mui/icons-material": "^6",
|
"@mui/icons-material": "^6",
|
||||||
"@mui/material": "^6",
|
"@mui/material": "^6",
|
||||||
"@mui/material-nextjs": "^6",
|
"@mui/material-nextjs": "^6",
|
||||||
"@mui/x-date-pickers-pro": "^7.23.2",
|
"@mui/x-date-pickers-pro": "^7.23.6",
|
||||||
"@opensearch-project/opensearch": "^2.13.0",
|
"@opensearch-project/opensearch": "^3.1.0",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"http-proxy-middleware": "^3.0.3",
|
"http-proxy-middleware": "^3.0.3",
|
||||||
"material-ui-popup-state": "^5.3.1",
|
"material-ui-popup-state": "^5.3.3",
|
||||||
"next": "15.1.0",
|
"next": "15.1.4",
|
||||||
"next-auth": "^4.24.11",
|
"next-auth": "^4.24.11",
|
||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"react-cookie": "^7.2.2",
|
"react-cookie": "^7.2.2",
|
||||||
|
|
@ -36,14 +36,14 @@
|
||||||
"react-iframe": "^1.8.5",
|
"react-iframe": "^1.8.5",
|
||||||
"react-polyglot": "^0.7.2",
|
"react-polyglot": "^0.7.2",
|
||||||
"sharp": "^0.33.5",
|
"sharp": "^0.33.5",
|
||||||
"uuid": "^11.0.3"
|
"uuid": "^11.0.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.10.2",
|
"@types/node": "^22.10.6",
|
||||||
"@types/react": "19.0.1",
|
"@types/react": "19.0.7",
|
||||||
"@types/uuid": "^10.0.0",
|
"@types/uuid": "^10.0.0",
|
||||||
"@link-stack/eslint-config": "*",
|
"@link-stack/eslint-config": "*",
|
||||||
"@link-stack/typescript-config": "*",
|
"@link-stack/typescript-config": "*",
|
||||||
"typescript": "5.7.2"
|
"typescript": "5.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,9 @@ const fetchUser = async (email: string) => {
|
||||||
const getUserRoles = async (email: string) => {
|
const getUserRoles = async (email: string) => {
|
||||||
try {
|
try {
|
||||||
const user = await fetchUser(email);
|
const user = await fetchUser(email);
|
||||||
|
if (!user) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
const allRoles = await fetchRoles();
|
const allRoles = await fetchRoles();
|
||||||
const roles = user.role_ids.map((roleID: number) => {
|
const roles = user.role_ids.map((roleID: number) => {
|
||||||
const role = allRoles[roleID];
|
const role = allRoles[roleID];
|
||||||
|
|
|
||||||
|
|
@ -14,9 +14,6 @@ const rewriteURL = (
|
||||||
const destinationURL = `${destinationBaseURL}/${path}`;
|
const destinationURL = `${destinationBaseURL}/${path}`;
|
||||||
console.log(`Rewriting ${request.url} to ${destinationURL}`);
|
console.log(`Rewriting ${request.url} to ${destinationURL}`);
|
||||||
const requestHeaders = new Headers(request.headers);
|
const requestHeaders = new Headers(request.headers);
|
||||||
for (const [key, value] of requestHeaders.entries()) {
|
|
||||||
console.log(`${key}: ${value}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
requestHeaders.delete("x-forwarded-user");
|
requestHeaders.delete("x-forwarded-user");
|
||||||
requestHeaders.delete("x-forwarded-roles");
|
requestHeaders.delete("x-forwarded-roles");
|
||||||
|
|
@ -46,6 +43,7 @@ const checkRewrites = async (request: NextRequestWithAuth) => {
|
||||||
"/graphql",
|
"/graphql",
|
||||||
"/cable",
|
"/cable",
|
||||||
];
|
];
|
||||||
|
const isSetupMode = process.env.SETUP_MODE === "true";
|
||||||
const { token } = request.nextauth;
|
const { token } = request.nextauth;
|
||||||
const email = token?.email?.toLowerCase() ?? "unknown";
|
const email = token?.email?.toLowerCase() ?? "unknown";
|
||||||
const roles = (token?.roles as string[]) ?? [];
|
const roles = (token?.roles as string[]) ?? [];
|
||||||
|
|
@ -66,7 +64,7 @@ const checkRewrites = async (request: NextRequestWithAuth) => {
|
||||||
} else if (zammadPaths.some((p) => request.nextUrl.pathname.startsWith(p))) {
|
} else if (zammadPaths.some((p) => request.nextUrl.pathname.startsWith(p))) {
|
||||||
return rewriteURL(request, linkBaseURL, zammadURL, headers);
|
return rewriteURL(request, linkBaseURL, zammadURL, headers);
|
||||||
} else if (request.nextUrl.pathname.startsWith("/api/v1")) {
|
} else if (request.nextUrl.pathname.startsWith("/api/v1")) {
|
||||||
if (email && email !== "unknown") {
|
if ((email && email !== "unknown") || isSetupMode) {
|
||||||
return NextResponse.next();
|
return NextResponse.next();
|
||||||
} else {
|
} else {
|
||||||
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
|
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/link",
|
"name": "@link-stack/link",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "next dev",
|
"dev": "next dev",
|
||||||
|
|
@ -24,14 +24,14 @@
|
||||||
"@mui/icons-material": "^6",
|
"@mui/icons-material": "^6",
|
||||||
"@mui/material": "^6",
|
"@mui/material": "^6",
|
||||||
"@mui/material-nextjs": "^6",
|
"@mui/material-nextjs": "^6",
|
||||||
"@mui/x-data-grid-pro": "^7.23.2",
|
"@mui/x-data-grid-pro": "^7.23.6",
|
||||||
"@mui/x-date-pickers": "^7.23.2",
|
"@mui/x-date-pickers": "^7.23.6",
|
||||||
"@mui/x-date-pickers-pro": "^7.23.2",
|
"@mui/x-date-pickers-pro": "^7.23.6",
|
||||||
"@mui/x-license": "^7.23.2",
|
"@mui/x-license": "^7.23.6",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"graphql-request": "^7.1.2",
|
"graphql-request": "^7.1.2",
|
||||||
"mui-chips-input": "^4.0.1",
|
"mui-chips-input": "^4.0.1",
|
||||||
"next": "15.1.0",
|
"next": "15.1.4",
|
||||||
"next-auth": "^4.24.11",
|
"next-auth": "^4.24.11",
|
||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"react-cookie": "^7.2.2",
|
"react-cookie": "^7.2.2",
|
||||||
|
|
@ -42,8 +42,8 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@link-stack/eslint-config": "*",
|
"@link-stack/eslint-config": "*",
|
||||||
"@types/node": "^22.10.2",
|
"@types/node": "^22.10.6",
|
||||||
"@types/react": "19.0.1",
|
"@types/react": "19.0.7",
|
||||||
"@types/uuid": "^10.0.0"
|
"@types/uuid": "^10.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,7 @@ services:
|
||||||
context: ../../
|
context: ../../
|
||||||
dockerfile: ./apps/bridge-frontend/Dockerfile
|
dockerfile: ./apps/bridge-frontend/Dockerfile
|
||||||
container_name: bridge-frontend
|
container_name: bridge-frontend
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/bridge-frontend:${LINK_STACK_VERSION}
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
ports:
|
ports:
|
||||||
- 8006:3000
|
- 8006:3000
|
||||||
|
|
@ -35,5 +36,6 @@ services:
|
||||||
context: ../../
|
context: ../../
|
||||||
dockerfile: ./apps/bridge-worker/Dockerfile
|
dockerfile: ./apps/bridge-worker/Dockerfile
|
||||||
container_name: bridge-worker
|
container_name: bridge-worker
|
||||||
|
image: registry.gitlab.com/digiresilience/link/link-stack/bridge-worker:${LINK_STACK_VERSION}
|
||||||
restart: ${RESTART}
|
restart: ${RESTART}
|
||||||
environment: *common-bridge-variables
|
environment: *common-bridge-variables
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
services:
|
services:
|
||||||
signal-cli-rest-api:
|
signal-cli-rest-api:
|
||||||
|
container_name: signal-cli-rest-api
|
||||||
|
build: ../signal-cli-rest-api
|
||||||
image: registry.gitlab.com/digiresilience/link/link-stack/signal-cli-rest-api:develop
|
image: registry.gitlab.com/digiresilience/link/link-stack/signal-cli-rest-api:develop
|
||||||
platform: linux/amd64
|
|
||||||
environment:
|
environment:
|
||||||
- MODE=json-rpc
|
- MODE=json-rpc
|
||||||
volumes:
|
volumes:
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ x-zammad-vars: &common-zammad-variables
|
||||||
|
|
||||||
services:
|
services:
|
||||||
zammad-init:
|
zammad-init:
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-init
|
container_name: zammad-init
|
||||||
command: ["zammad-init"]
|
command: ["zammad-init"]
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
@ -47,7 +46,6 @@ services:
|
||||||
<<: *common-global-variables
|
<<: *common-global-variables
|
||||||
|
|
||||||
zammad-nginx:
|
zammad-nginx:
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-nginx
|
container_name: zammad-nginx
|
||||||
command: ["zammad-nginx"]
|
command: ["zammad-nginx"]
|
||||||
expose:
|
expose:
|
||||||
|
|
@ -72,7 +70,6 @@ services:
|
||||||
- zammad-var:/opt/zammad/var:ro
|
- zammad-var:/opt/zammad/var:ro
|
||||||
|
|
||||||
zammad-railsserver:
|
zammad-railsserver:
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-railsserver
|
container_name: zammad-railsserver
|
||||||
command: ["zammad-railsserver"]
|
command: ["zammad-railsserver"]
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
@ -103,7 +100,6 @@ services:
|
||||||
- redis-data:/data
|
- redis-data:/data
|
||||||
|
|
||||||
zammad-scheduler:
|
zammad-scheduler:
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-scheduler
|
container_name: zammad-scheduler
|
||||||
command: ["zammad-scheduler"]
|
command: ["zammad-scheduler"]
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
@ -123,7 +119,6 @@ services:
|
||||||
- zammad-storage:/opt/zammad/storage
|
- zammad-storage:/opt/zammad/storage
|
||||||
|
|
||||||
zammad-websocket:
|
zammad-websocket:
|
||||||
platform: linux/x86_64
|
|
||||||
container_name: zammad-websocket
|
container_name: zammad-websocket
|
||||||
command: ["zammad-websocket"]
|
command: ["zammad-websocket"]
|
||||||
depends_on:
|
depends_on:
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
FROM memcached:1.6.31-bookworm
|
FROM memcached:1.6.34-bookworm
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
FROM nginxproxy/nginx-proxy:1.6.1
|
FROM nginxproxy/nginx-proxy:1.6.4
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
FROM opensearchproject/opensearch-dashboards:2.17.0
|
FROM opensearchproject/opensearch-dashboards:2.18.0
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,2 @@
|
||||||
FROM opensearchproject/opensearch:2.17.0
|
FROM opensearchproject/opensearch:2.18.0
|
||||||
RUN /usr/share/opensearch/bin/opensearch-plugin install ingest-attachment -b
|
RUN /usr/share/opensearch/bin/opensearch-plugin install ingest-attachment -b
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
FROM redis:7.4.0-bookworm
|
FROM redis:7.4.2-bookworm
|
||||||
|
|
|
||||||
|
|
@ -17,8 +17,7 @@ const files = {
|
||||||
|
|
||||||
const finalFiles = files[app]
|
const finalFiles = files[app]
|
||||||
.map((file) => ['-f', `docker/compose/${file}.yml`]).flat();
|
.map((file) => ['-f', `docker/compose/${file}.yml`]).flat();
|
||||||
const finalCommand = command === "up" ? ["up", "-d"] : [command];
|
const finalCommand = command === "up" ? ["up", "-d", "--remove-orphans"] : [command];
|
||||||
|
|
||||||
const dockerCompose = spawn('docker', ['compose', '--env-file', '.env', ...finalFiles, ...finalCommand]);
|
const dockerCompose = spawn('docker', ['compose', '--env-file', '.env', ...finalFiles, ...finalCommand]);
|
||||||
|
|
||||||
dockerCompose.stdout.on('data', (data) => {
|
dockerCompose.stdout.on('data', (data) => {
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
FROM bbernhard/signal-cli-rest-api:0.89
|
FROM bbernhard/signal-cli-rest-api:0.90
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,25 @@
|
||||||
ARG ZAMMAD_VERSION=6.3.1
|
ARG ZAMMAD_VERSION=6.4.1
|
||||||
|
|
||||||
FROM node:22-slim as node
|
FROM node:22-slim AS node
|
||||||
|
|
||||||
FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} AS builder
|
FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} AS builder
|
||||||
|
USER root
|
||||||
COPY --from=node /opt /opt
|
COPY --from=node /opt /opt
|
||||||
COPY --from=node /usr/local/bin /usr/local/bin
|
COPY --from=node /usr/local/bin /usr/local/bin
|
||||||
|
COPY --from=node /usr/local/lib /usr/local/lib
|
||||||
|
COPY --from=node /usr/lib /usr/lib
|
||||||
SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"]
|
SHELL ["/bin/bash", "-e", "-o", "pipefail", "-c"]
|
||||||
|
RUN npm install -g pnpm
|
||||||
|
RUN pnpm --version
|
||||||
WORKDIR ${ZAMMAD_DIR}
|
WORKDIR ${ZAMMAD_DIR}
|
||||||
RUN mkdir -p /opt/zammad/contrib/link/addons
|
RUN mkdir -p /opt/zammad/contrib/link/addons
|
||||||
COPY addons contrib/link/addons
|
COPY addons contrib/link/addons
|
||||||
COPY setup.rb contrib/link/setup.rb
|
COPY setup.rb contrib/link/setup.rb
|
||||||
COPY install.rb contrib/link/install.rb
|
COPY install.rb contrib/link/install.rb
|
||||||
|
|
||||||
USER root
|
|
||||||
RUN sed -i '/script\/build\/cleanup\.sh/d' contrib/docker/setup.sh
|
RUN sed -i '/script\/build\/cleanup\.sh/d' contrib/docker/setup.sh
|
||||||
|
RUN sed -i '/touch db\/schema.rb/a ZAMMAD_SAFE_MODE=1 DATABASE_URL=postgresql:\/\/zammad:\/zammad bundle exec rails runner \/opt\/zammad\/contrib\/link\/install.rb' contrib/docker/setup.sh
|
||||||
|
RUN cat contrib/docker/setup.sh
|
||||||
RUN contrib/docker/setup.sh builder
|
RUN contrib/docker/setup.sh builder
|
||||||
ARG EMBEDDED=false
|
ARG EMBEDDED=false
|
||||||
RUN if [ "$EMBEDDED" = "true" ] ; then sed -i '/proxy_set_header X-Forwarded-User "";/d' ${ZAMMAD_DIR}/contrib/nginx/zammad.conf; fi
|
RUN if [ "$EMBEDDED" = "true" ] ; then sed -i '/proxy_set_header X-Forwarded-User "";/d' ${ZAMMAD_DIR}/contrib/nginx/zammad.conf; fi
|
||||||
|
|
@ -22,11 +28,9 @@ RUN sed -i '/^[[:space:]]*# es config/a\
|
||||||
bundle exec rails runner /opt/zammad/contrib/link/setup.rb\n\
|
bundle exec rails runner /opt/zammad/contrib/link/setup.rb\n\
|
||||||
bundle exec rake zammad:package:migrate\n\
|
bundle exec rake zammad:package:migrate\n\
|
||||||
' /docker-entrypoint.sh
|
' /docker-entrypoint.sh
|
||||||
RUN ZAMMAD_SAFE_MODE=1 DATABASE_URL=postgresql://zammad:/zammad bundle exec rails runner /opt/zammad/contrib/link/install.rb
|
|
||||||
RUN ZAMMAD_SAFE_MODE=1 DATABASE_URL=postgresql://zammad:/zammad bundle exec rake assets:precompile
|
|
||||||
|
|
||||||
FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} as runner
|
FROM zammad/zammad-docker-compose:${ZAMMAD_VERSION} AS runner
|
||||||
USER ${ZAMMAD_USER}
|
USER zammad
|
||||||
COPY --from=builder --chown=zammad:zammad ${ZAMMAD_DIR} ${ZAMMAD_DIR}
|
COPY --from=builder --chown=zammad:zammad ${ZAMMAD_DIR} ${ZAMMAD_DIR}
|
||||||
COPY --from=builder /usr/local/bundle /usr/local/bundle
|
COPY --from=builder /usr/local/bundle /usr/local/bundle
|
||||||
COPY --from=builder /docker-entrypoint.sh /docker-entrypoint.sh
|
COPY --from=builder /docker-entrypoint.sh /docker-entrypoint.sh
|
||||||
|
|
|
||||||
1521
package-lock.json
generated
1521
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
|
@ -1,13 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack",
|
"name": "@link-stack",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "Link from the Center for Digital Resilience",
|
"description": "Link from the Center for Digital Resilience",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "dotenv -- turbo dev",
|
"dev": "dotenv -- turbo dev",
|
||||||
"build": "dotenv -- turbo build",
|
"build": "dotenv -- turbo build",
|
||||||
"migrate": "dotenv -- npm run migrate --workspace=database",
|
"migrate": "dotenv -- npm run migrate --workspace=database",
|
||||||
"lint": "dotenv turbo lint",
|
"lint": "dotenv turbo lint",
|
||||||
"update-version": "find . -name 'package.json' -exec sed -i -E 's/\"version\": \"[^\"]+\"/\"version\": \"2.3.4\"/' {} +",
|
"update-version": "find . -name 'package.json' -exec sed -i -E 's/\"version\": \"[^\"]+\"/\"version\": \"2.4.0b1\"/' {} +",
|
||||||
"upgrade:setup": "npm i -g npm-check-updates",
|
"upgrade:setup": "npm i -g npm-check-updates",
|
||||||
"upgrade:check": "ncu && ncu -ws",
|
"upgrade:check": "ncu && ncu -ws",
|
||||||
"upgrade": "ncu -u -x eslint -x kysely && ncu -ws -u -x eslint -x kysely && npm i",
|
"upgrade": "ncu -u -x eslint -x kysely && ncu -ws -u -x eslint -x kysely && npm i",
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://gitlab.com/digiresilience/link/link-stack.git"
|
"url": "git+https://gitlab.com/digiresilience/link/link-stack.git"
|
||||||
},
|
},
|
||||||
"packageManager": "npm@10.9.2",
|
"packageManager": "npm@11.0.0",
|
||||||
"author": "Darren Clarke",
|
"author": "Darren Clarke",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
"typescript": "latest",
|
"typescript": "latest",
|
||||||
"react": "^19.0.0",
|
"react": "^19.0.0",
|
||||||
"react-dom": "^19.0.0",
|
"react-dom": "^19.0.0",
|
||||||
"@types/react": "^19.0.0"
|
"@types/react": "^19.0.7"
|
||||||
},
|
},
|
||||||
"overrides": {
|
"overrides": {
|
||||||
"material-ui-popup-state": {
|
"material-ui-popup-state": {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/bridge-common",
|
"name": "@link-stack/bridge-common",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"main": "build/main/index.js",
|
"main": "build/main/index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"author": "Darren Clarke <darren@redaranj.com>",
|
"author": "Darren Clarke <darren@redaranj.com>",
|
||||||
|
|
@ -17,6 +17,6 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@link-stack/eslint-config": "*",
|
"@link-stack/eslint-config": "*",
|
||||||
"@link-stack/typescript-config": "*",
|
"@link-stack/typescript-config": "*",
|
||||||
"typescript": "^5.7.2"
|
"typescript": "^5.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,25 +1,25 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/bridge-ui",
|
"name": "@link-stack/bridge-ui",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p tsconfig.json"
|
"build": "tsc -p tsconfig.json"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@link-stack/bridge-common": "^2.2.0",
|
"@link-stack/bridge-common": "*",
|
||||||
"@link-stack/signal-api": "*",
|
"@link-stack/signal-api": "*",
|
||||||
"@link-stack/ui": "^2.2.0",
|
"@link-stack/ui": "*",
|
||||||
"@mui/material": "^6",
|
"@mui/material": "^6",
|
||||||
"@mui/x-data-grid-pro": "^7.23.2",
|
"@mui/x-data-grid-pro": "^7.23.6",
|
||||||
"kysely": "0.26.1",
|
"kysely": "0.26.1",
|
||||||
"next": "15.1.0",
|
"next": "15.1.4",
|
||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"react-dom": "19.0.0",
|
"react-dom": "19.0.0",
|
||||||
"react-qr-code": "^2.0.15"
|
"react-qr-code": "^2.0.15"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.10.2",
|
"@types/node": "^22.10.6",
|
||||||
"@types/react": "19.0.1",
|
"@types/react": "19.0.7",
|
||||||
"@types/react-dom": "^19.0.2",
|
"@types/react-dom": "^19.0.3",
|
||||||
"typescript": "5.7.2"
|
"typescript": "5.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/eslint-config",
|
"name": "@link-stack/eslint-config",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "amigo's eslint config",
|
"description": "amigo's eslint config",
|
||||||
"author": "Abel Luck <abel@guardianproject.info>",
|
"author": "Abel Luck <abel@guardianproject.info>",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
|
|
@ -9,17 +9,17 @@
|
||||||
"fmt": "prettier \"profile/**/*.js\" --write"
|
"fmt": "prettier \"profile/**/*.js\" --write"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@rushstack/eslint-patch": "^1.10.4",
|
"@rushstack/eslint-patch": "^1.10.5",
|
||||||
"@typescript-eslint/eslint-plugin": "^8.18.0",
|
"@typescript-eslint/eslint-plugin": "^8.20.0",
|
||||||
"@typescript-eslint/parser": "^8.18.0",
|
"@typescript-eslint/parser": "^8.20.0",
|
||||||
"eslint-config-prettier": "^9.1.0",
|
"eslint-config-prettier": "^10.0.1",
|
||||||
"eslint-config-xo-space": "^0.35.0",
|
"eslint-config-xo-space": "^0.35.0",
|
||||||
"eslint-plugin-eslint-comments": "^3.2.0",
|
"eslint-plugin-eslint-comments": "^3.2.0",
|
||||||
"eslint-plugin-import": "^2.31.0",
|
"eslint-plugin-import": "^2.31.0",
|
||||||
"eslint-plugin-jest": "^28.9.0",
|
"eslint-plugin-jest": "^28.11.0",
|
||||||
"eslint-plugin-promise": "^7.2.1",
|
"eslint-plugin-promise": "^7.2.1",
|
||||||
"eslint-plugin-unicorn": "56.0.1",
|
"eslint-plugin-unicorn": "56.0.1",
|
||||||
"@babel/eslint-parser": "7.25.9"
|
"@babel/eslint-parser": "7.26.5"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"typescript": "^4.9.5"
|
"typescript": "^4.9.5"
|
||||||
|
|
@ -27,6 +27,6 @@
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"eslint": "^8",
|
"eslint": "^8",
|
||||||
"jest": "^29.7.0",
|
"jest": "^29.7.0",
|
||||||
"typescript": "^5.7.2"
|
"typescript": "^5.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/jest-config",
|
"name": "@link-stack/jest-config",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "Abel Luck <abel@guardianproject.info>",
|
"author": "Abel Luck <abel@guardianproject.info>",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/leafcutter-ui",
|
"name": "@link-stack/leafcutter-ui",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p tsconfig.json"
|
"build": "tsc -p tsconfig.json"
|
||||||
},
|
},
|
||||||
|
|
@ -10,23 +10,23 @@
|
||||||
"@link-stack/opensearch-common": "*",
|
"@link-stack/opensearch-common": "*",
|
||||||
"@mui/icons-material": "^6",
|
"@mui/icons-material": "^6",
|
||||||
"@mui/material": "^6",
|
"@mui/material": "^6",
|
||||||
"@mui/x-data-grid-pro": "^7.23.2",
|
"@mui/x-data-grid-pro": "^7.23.6",
|
||||||
"@mui/x-date-pickers-pro": "^7.23.2",
|
"@mui/x-date-pickers-pro": "^7.23.6",
|
||||||
"date-fns": "^4.1.0",
|
"date-fns": "^4.1.0",
|
||||||
"next": "15.1.0",
|
"next": "15.1.4",
|
||||||
"next-auth": "^4.24.11",
|
"next-auth": "^4.24.11",
|
||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"react-cookie": "^7.2.2",
|
"react-cookie": "^7.2.2",
|
||||||
"react-dom": "19.0.0",
|
"react-dom": "19.0.0",
|
||||||
"react-iframe": "^1.8.5",
|
"react-iframe": "^1.8.5",
|
||||||
"react-markdown": "^9.0.1",
|
"react-markdown": "^9.0.3",
|
||||||
"react-polyglot": "^0.7.2"
|
"react-polyglot": "^0.7.2"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@link-stack/eslint-config": "*",
|
"@link-stack/eslint-config": "*",
|
||||||
"@link-stack/typescript-config": "*",
|
"@link-stack/typescript-config": "*",
|
||||||
"@types/node": "^22.10.2",
|
"@types/node": "^22.10.6",
|
||||||
"@types/react": "19.0.1",
|
"@types/react": "19.0.7",
|
||||||
"typescript": "5.7.2"
|
"typescript": "5.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -164,7 +164,7 @@ const getIndexPattern: any = async (index: string) => {
|
||||||
sort: ["updated_at:desc"],
|
sort: ["updated_at:desc"],
|
||||||
});
|
});
|
||||||
|
|
||||||
if (res.body.hits.total.value === 0) {
|
if (res?.body?.hits?.total?.valueOf() === 0) {
|
||||||
// eslint-disable-next-line no-use-before-define
|
// eslint-disable-next-line no-use-before-define
|
||||||
return createCurrentUserIndexPattern(index);
|
return createCurrentUserIndexPattern(index);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,18 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/opensearch-common",
|
"name": "@link-stack/opensearch-common",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p tsconfig.json"
|
"build": "tsc -p tsconfig.json"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@opensearch-project/opensearch": "^2.13.0",
|
"@opensearch-project/opensearch": "^3.1.0",
|
||||||
"uuid": "^11.0.3"
|
"uuid": "^11.0.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.10.2",
|
"@types/node": "^22.10.6",
|
||||||
"@types/uuid": "^10.0.0",
|
"@types/uuid": "^10.0.0",
|
||||||
"@link-stack/typescript-config": "*",
|
"@link-stack/typescript-config": "*",
|
||||||
"@link-stack/eslint-config": "*",
|
"@link-stack/eslint-config": "*",
|
||||||
"typescript": "5.7.2"
|
"typescript": "5.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/signal-api",
|
"name": "@link-stack/signal-api",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "build/index.js",
|
"main": "build/index.js",
|
||||||
"exports": {
|
"exports": {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/typescript-config",
|
"name": "@link-stack/typescript-config",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "Shared TypeScript config",
|
"description": "Shared TypeScript config",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"author": "Abel Luck <abel@guardianproject.info>",
|
"author": "Abel Luck <abel@guardianproject.info>",
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/ui",
|
"name": "@link-stack/ui",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "",
|
"description": "",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p tsconfig.json"
|
"build": "tsc -p tsconfig.json"
|
||||||
|
|
@ -9,15 +9,15 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mui/icons-material": "^6",
|
"@mui/icons-material": "^6",
|
||||||
"@mui/material": "^6",
|
"@mui/material": "^6",
|
||||||
"@mui/x-data-grid-pro": "^7.23.2",
|
"@mui/x-data-grid-pro": "^7.23.6",
|
||||||
"@mui/x-license": "^7.23.2",
|
"@mui/x-license": "^7.23.6",
|
||||||
"next": "15.1.0",
|
"next": "15.1.4",
|
||||||
"react": "19.0.0",
|
"react": "19.0.0",
|
||||||
"react-dom": "19.0.0"
|
"react-dom": "19.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.10.2",
|
"@types/node": "^22.10.6",
|
||||||
"@types/react": "19.0.1",
|
"@types/react": "19.0.7",
|
||||||
"typescript": "^5.7.2"
|
"typescript": "^5.7.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/zammad-addon-bridge",
|
"name": "@link-stack/zammad-addon-bridge",
|
||||||
"displayName": "Bridge",
|
"displayName": "Bridge",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "An addon that adds CDR Bridge channels to Zammad.",
|
"description": "An addon that adds CDR Bridge channels to Zammad.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node '../../node_modules/@link-stack/zammad-addon-common/dist/build.js'",
|
"build": "node '../../node_modules/@link-stack/zammad-addon-common/dist/build.js'",
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ class CdrSignalChannel < ActiveRecord::Migration[5.2]
|
||||||
)
|
)
|
||||||
Permission.create_if_not_exists(
|
Permission.create_if_not_exists(
|
||||||
name: 'admin.channel_cdr_signal',
|
name: 'admin.channel_cdr_signal',
|
||||||
note: 'Manage %s',
|
description: 'Manage %s',
|
||||||
preferences: {
|
preferences: {
|
||||||
translations: ['Channel - Signal']
|
translations: ['Channel - Signal']
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ class CdrVoiceChannel < ActiveRecord::Migration[5.2]
|
||||||
)
|
)
|
||||||
Permission.create_if_not_exists(
|
Permission.create_if_not_exists(
|
||||||
name: 'admin.channel_cdr_voice',
|
name: 'admin.channel_cdr_voice',
|
||||||
note: 'Manage %s',
|
description: 'Manage %s',
|
||||||
preferences: {
|
preferences: {
|
||||||
translations: ['Channel - Voice']
|
translations: ['Channel - Voice']
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ class CdrWhatsappChannel < ActiveRecord::Migration[5.2]
|
||||||
)
|
)
|
||||||
Permission.create_if_not_exists(
|
Permission.create_if_not_exists(
|
||||||
name: 'admin.channel_cdr_whatsapp',
|
name: 'admin.channel_cdr_whatsapp',
|
||||||
note: 'Manage %s',
|
description: 'Manage %s',
|
||||||
preferences: {
|
preferences: {
|
||||||
translations: ['Channel - Whatsapp']
|
translations: ['Channel - Whatsapp']
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/zammad-addon-common",
|
"name": "@link-stack/zammad-addon-common",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "",
|
"description": "",
|
||||||
"bin": {
|
"bin": {
|
||||||
"zpm-build": "./dist/build.js",
|
"zpm-build": "./dist/build.js",
|
||||||
|
|
@ -10,12 +10,12 @@
|
||||||
"build": "tsc"
|
"build": "tsc"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^22.10.2",
|
"@types/node": "^22.10.6",
|
||||||
"typescript": "^5"
|
"typescript": "^5"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"glob": "^11.0.0"
|
"glob": "^11.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/zammad-addon-hardening",
|
"name": "@link-stack/zammad-addon-hardening",
|
||||||
"displayName": "Hardening",
|
"displayName": "Hardening",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "A Zammad addon that hardens a Zammad instance according to CDR's needs.",
|
"description": "A Zammad addon that hardens a Zammad instance according to CDR's needs.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node '../../node_modules/@link-stack/zammad-addon-common/dist/build.js'",
|
"build": "node '../../node_modules/@link-stack/zammad-addon-common/dist/build.js'",
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "@link-stack/zammad-addon-leafcutter",
|
"name": "@link-stack/zammad-addon-leafcutter",
|
||||||
"displayName": "Leafcutter",
|
"displayName": "Leafcutter",
|
||||||
"version": "2.3.4",
|
"version": "2.4.0b1",
|
||||||
"description": "Adds a common set of tags for Leafcutter uses.",
|
"description": "Adds a common set of tags for Leafcutter uses.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "node '../../node_modules/@link-stack/zammad-addon-common/dist/build.js'",
|
"build": "node '../../node_modules/@link-stack/zammad-addon-common/dist/build.js'",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue