Share env vars client-side using @Public decorator (#6627)
* fix: public env vars using decorator * fix: relocate * fix: use env.public * fix: register public env vars across plugins * fix: test * fix: tsc * fix: mark remaining ones as public * fix: move oidc ones to plugin * fix: prevent overwrite * fix: review
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import { IsOptional, IsUrl, MaxLength } from "class-validator";
|
||||
import { IsBoolean, IsOptional, IsUrl, MaxLength } from "class-validator";
|
||||
import { Environment } from "@server/env";
|
||||
import { Public } from "@server/utils/decorators/Public";
|
||||
import environment from "@server/utils/environment";
|
||||
import { CannotUseWithout } from "@server/utils/validators";
|
||||
|
||||
@@ -74,6 +75,28 @@ class OIDCPluginEnvironment extends Environment {
|
||||
* profile email".
|
||||
*/
|
||||
public OIDC_SCOPES = environment.OIDC_SCOPES ?? "openid profile email";
|
||||
|
||||
/**
|
||||
* Disable autoredirect to the OIDC login page if there is only one
|
||||
* authentication method and that method is OIDC.
|
||||
*/
|
||||
@Public
|
||||
@IsOptional()
|
||||
@IsBoolean()
|
||||
public OIDC_DISABLE_REDIRECT = this.toOptionalBoolean(
|
||||
environment.OIDC_DISABLE_REDIRECT
|
||||
);
|
||||
|
||||
/**
|
||||
* The OIDC logout endpoint.
|
||||
*/
|
||||
@Public
|
||||
@IsOptional()
|
||||
@IsUrl({
|
||||
require_tld: false,
|
||||
allow_underscores: true,
|
||||
})
|
||||
public OIDC_LOGOUT_URI = this.toOptionalString(environment.OIDC_LOGOUT_URI);
|
||||
}
|
||||
|
||||
export default new OIDCPluginEnvironment();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { IsBoolean, IsOptional } from "class-validator";
|
||||
import { Environment } from "@server/env";
|
||||
import Deprecated from "@server/models/decorators/Deprecated";
|
||||
import { Public } from "@server/utils/decorators/Public";
|
||||
import environment from "@server/utils/environment";
|
||||
import { CannotUseWithout } from "@server/utils/validators";
|
||||
|
||||
@@ -8,6 +9,20 @@ class SlackPluginEnvironment extends Environment {
|
||||
/**
|
||||
* Slack OAuth2 client credentials. To enable authentication with Slack.
|
||||
*/
|
||||
@Public
|
||||
@IsOptional()
|
||||
public SLACK_CLIENT_ID = this.toOptionalString(
|
||||
environment.SLACK_CLIENT_ID ?? environment.SLACK_KEY
|
||||
);
|
||||
|
||||
/**
|
||||
* Injected into the `slack-app-id` header meta tag if provided.
|
||||
*/
|
||||
@Public
|
||||
@IsOptional()
|
||||
@CannotUseWithout("SLACK_CLIENT_ID")
|
||||
public SLACK_APP_ID = this.toOptionalString(environment.SLACK_APP_ID);
|
||||
|
||||
@IsOptional()
|
||||
@Deprecated("Use SLACK_CLIENT_SECRET instead")
|
||||
public SLACK_SECRET = this.toOptionalString(environment.SLACK_SECRET);
|
||||
|
||||
Reference in New Issue
Block a user