Separate environment configs (#6597)
* Separate environment configs * wip * wip * test * plugins * test * test * .sequelizerc, unfortunately can't go through /utils/environment due to not supporting TS * docker-compose -> docker compose * fix: .local wipes .development * Add custom validation message for invalid SECRET_KEY (often confused)
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import randomstring from "randomstring";
|
||||
import { IntegrationService } from "@shared/types";
|
||||
import env from "@server/env";
|
||||
import { IntegrationAuthentication, SearchQuery } from "@server/models";
|
||||
import {
|
||||
buildDocument,
|
||||
@@ -9,6 +8,7 @@ import {
|
||||
buildUser,
|
||||
} from "@server/test/factories";
|
||||
import { getTestServer } from "@server/test/support";
|
||||
import env from "../env";
|
||||
import * as Slack from "../slack";
|
||||
|
||||
jest.mock("../slack", () => ({
|
||||
|
||||
@@ -4,7 +4,6 @@ import escapeRegExp from "lodash/escapeRegExp";
|
||||
import { Op } from "sequelize";
|
||||
import { z } from "zod";
|
||||
import { IntegrationService } from "@shared/types";
|
||||
import env from "@server/env";
|
||||
import {
|
||||
AuthenticationError,
|
||||
InvalidRequestError,
|
||||
@@ -26,6 +25,7 @@ import SearchHelper from "@server/models/helpers/SearchHelper";
|
||||
import { APIContext } from "@server/types";
|
||||
import { safeEqual } from "@server/utils/crypto";
|
||||
import { opts } from "@server/utils/i18n";
|
||||
import env from "../env";
|
||||
import presentMessageAttachment from "../presenters/messageAttachment";
|
||||
import * as Slack from "../slack";
|
||||
import * as T from "./schema";
|
||||
|
||||
@@ -6,7 +6,6 @@ import { Strategy as SlackStrategy } from "passport-slack-oauth2";
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import { integrationSettingsPath } from "@shared/utils/routeHelpers";
|
||||
import accountProvisioner from "@server/commands/accountProvisioner";
|
||||
import env from "@server/env";
|
||||
import auth from "@server/middlewares/authentication";
|
||||
import passportMiddleware from "@server/middlewares/passport";
|
||||
import validate from "@server/middlewares/validate";
|
||||
@@ -23,6 +22,7 @@ import {
|
||||
getTeamFromContext,
|
||||
StateStore,
|
||||
} from "@server/utils/passport";
|
||||
import env from "../env";
|
||||
import * as Slack from "../slack";
|
||||
import * as T from "./schema";
|
||||
|
||||
|
||||
44
plugins/slack/server/env.ts
Normal file
44
plugins/slack/server/env.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { IsBoolean, IsOptional } from "class-validator";
|
||||
import { Environment } from "@server/env";
|
||||
import Deprecated from "@server/models/decorators/Deprecated";
|
||||
import environment from "@server/utils/environment";
|
||||
import { CannotUseWithout } from "@server/utils/validators";
|
||||
|
||||
class SlackPluginEnvironment extends Environment {
|
||||
/**
|
||||
* Slack OAuth2 client credentials. To enable authentication with Slack.
|
||||
*/
|
||||
@IsOptional()
|
||||
@Deprecated("Use SLACK_CLIENT_SECRET instead")
|
||||
public SLACK_SECRET = this.toOptionalString(environment.SLACK_SECRET);
|
||||
|
||||
@IsOptional()
|
||||
@Deprecated("Use SLACK_CLIENT_ID instead")
|
||||
public SLACK_KEY = this.toOptionalString(environment.SLACK_KEY);
|
||||
|
||||
@IsOptional()
|
||||
@CannotUseWithout("SLACK_CLIENT_ID")
|
||||
public SLACK_CLIENT_SECRET = this.toOptionalString(
|
||||
environment.SLACK_CLIENT_SECRET ?? environment.SLACK_SECRET
|
||||
);
|
||||
|
||||
/**
|
||||
* Secret to verify webhook requests received from Slack.
|
||||
*/
|
||||
@IsOptional()
|
||||
public SLACK_VERIFICATION_TOKEN = this.toOptionalString(
|
||||
environment.SLACK_VERIFICATION_TOKEN
|
||||
);
|
||||
|
||||
/**
|
||||
* If enabled a "Post to Channel" button will be added to search result
|
||||
* messages inside of Slack. This also requires setup in Slack UI.
|
||||
*/
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
public SLACK_MESSAGE_ACTIONS = this.toBoolean(
|
||||
environment.SLACK_MESSAGE_ACTIONS ?? "false"
|
||||
);
|
||||
}
|
||||
|
||||
export default new SlackPluginEnvironment();
|
||||
@@ -2,7 +2,6 @@ import { differenceInMilliseconds } from "date-fns";
|
||||
import { Op } from "sequelize";
|
||||
import { IntegrationService, IntegrationType } from "@shared/types";
|
||||
import { Minute } from "@shared/utils/time";
|
||||
import env from "@server/env";
|
||||
import { Document, Integration, Collection, Team } from "@server/models";
|
||||
import BaseProcessor from "@server/queues/processors/BaseProcessor";
|
||||
import {
|
||||
@@ -12,6 +11,7 @@ import {
|
||||
Event,
|
||||
} from "@server/types";
|
||||
import fetch from "@server/utils/fetch";
|
||||
import env from "../env";
|
||||
import presentMessageAttachment from "../presenters/messageAttachment";
|
||||
|
||||
export default class SlackProcessor extends BaseProcessor {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import querystring from "querystring";
|
||||
import env from "@server/env";
|
||||
import { InvalidRequestError } from "@server/errors";
|
||||
import fetch from "@server/utils/fetch";
|
||||
import env from "./env";
|
||||
|
||||
const SLACK_API_URL = "https://slack.com/api";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user