@red-hat-developer-hub/backstage-plugin-app-auth 1.1.1 → 1.3.0
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/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @red-hat-developer-hub/backstage-plugin-app-auth
|
|
2
2
|
|
|
3
|
+
## 1.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 0a42ebd: Bump minor after the release-2.1 cut so main patch versions do not collide with the maintenance line on npm.
|
|
8
|
+
|
|
9
|
+
## 1.2.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- d608526: Replaces the broken Guest/GitHub fallback with a descriptive ErrorPanel when auth.providers is empty or misconfigured. Removed DEFAULT_PROVIDER = 'github', auth providers need to explicitly installed dynamically. Also removed behavior when default Guest login when `auth.environment` is development.
|
|
14
|
+
|
|
3
15
|
## 1.1.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/dist/alpha.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ declare const signInTranslationRef: _backstage_frontend_plugin_api.TranslationRe
|
|
|
10
10
|
readonly "signIn.config.missingAuthEnvironment.error": "Missing required app configuration: auth.environment must be set";
|
|
11
11
|
readonly "signIn.config.missingAuthEnvironment.panelTitle": "Sign-in is not available";
|
|
12
12
|
readonly "signIn.config.missingAuthEnvironment.description": "Set {{ authEnvKey }} in your app configuration (for example {{ devEnv }} for local use or {{ prodEnv }} in deployed environments). Without it, the app cannot safely determine which sign-in options to offer.";
|
|
13
|
+
readonly "signIn.config.noConfiguredProviders.error": "No authentication providers are configured";
|
|
14
|
+
readonly "signIn.config.noConfiguredProviders.panelTitle": "Sign-in is not available";
|
|
15
|
+
readonly "signIn.config.noConfiguredProviders.description": "To enable sign-in, configure at least one authentication provider in your app configuration under {{ authProvidersKey }}.";
|
|
13
16
|
readonly "signIn.providers.auth0.title": "Auth0";
|
|
14
17
|
readonly "signIn.providers.auth0.message": "Sign in using Auth0";
|
|
15
18
|
readonly "signIn.providers.atlassian.title": "Atlassian";
|
|
@@ -6,8 +6,8 @@ import Typography from '@mui/material/Typography';
|
|
|
6
6
|
import { auth0AuthApiRef, oidcAuthApiRef, keycloakAuthApiRef, pingfederateAuthApiRef, samlAuthApiRef } from '../AuthApiRefs.esm.js';
|
|
7
7
|
import { signInTranslationRef } from '../translations/signIn.esm.js';
|
|
8
8
|
|
|
9
|
-
const DEFAULT_PROVIDER = "github";
|
|
10
9
|
const createProviders = (t) => /* @__PURE__ */ new Map([
|
|
10
|
+
["guest", "guest"],
|
|
11
11
|
[
|
|
12
12
|
"auth0",
|
|
13
13
|
{
|
|
@@ -159,12 +159,10 @@ function SignInPage(props) {
|
|
|
159
159
|
}
|
|
160
160
|
);
|
|
161
161
|
}
|
|
162
|
-
const isDevEnv = authEnvironment === "development";
|
|
163
162
|
const signInPage = configApi.getOptional("signInPage");
|
|
164
163
|
let providerNames;
|
|
165
164
|
if (signInPage === void 0) {
|
|
166
|
-
|
|
167
|
-
providerNames = fromAuth.length > 0 ? fromAuth : [DEFAULT_PROVIDER];
|
|
165
|
+
providerNames = configApi.getOptionalConfig("auth.providers")?.keys() ?? [];
|
|
168
166
|
} else {
|
|
169
167
|
providerNames = Array.isArray(signInPage) ? signInPage : [signInPage];
|
|
170
168
|
}
|
|
@@ -173,23 +171,34 @@ function SignInPage(props) {
|
|
|
173
171
|
(config) => config !== void 0
|
|
174
172
|
);
|
|
175
173
|
if (providerConfigs.length === 0) {
|
|
176
|
-
|
|
177
|
-
|
|
174
|
+
return /* @__PURE__ */ jsx(
|
|
175
|
+
ErrorPanel,
|
|
176
|
+
{
|
|
177
|
+
error: new Error(t("signIn.config.noConfiguredProviders.error")),
|
|
178
|
+
title: t("signIn.config.noConfiguredProviders.panelTitle"),
|
|
179
|
+
children: /* @__PURE__ */ jsx(Typography, { variant: "body2", component: "div", children: t("signIn.config.noConfiguredProviders.description", {
|
|
180
|
+
replace: {
|
|
181
|
+
authProvidersKey: /* @__PURE__ */ jsx("code", { children: "auth.providers" })
|
|
182
|
+
}
|
|
183
|
+
}) })
|
|
184
|
+
}
|
|
185
|
+
);
|
|
178
186
|
}
|
|
179
|
-
if (providerConfigs.some(
|
|
187
|
+
if (providerConfigs.some(
|
|
188
|
+
(config) => typeof config === "string" && config !== "guest"
|
|
189
|
+
)) {
|
|
180
190
|
const proxiedProvider = providerConfigs.find(
|
|
181
191
|
(config) => typeof config === "string"
|
|
182
192
|
);
|
|
183
193
|
return /* @__PURE__ */ jsx(ProxiedSignInPage, { ...props, provider: proxiedProvider });
|
|
184
194
|
}
|
|
185
|
-
const providerList = isDevEnv ? ["guest", ...providerConfigs] : providerConfigs;
|
|
186
195
|
return /* @__PURE__ */ jsx(
|
|
187
196
|
SignInPage$1,
|
|
188
197
|
{
|
|
189
198
|
...props,
|
|
190
199
|
title: t("signIn.page.title"),
|
|
191
200
|
align: "center",
|
|
192
|
-
providers:
|
|
201
|
+
providers: providerConfigs
|
|
193
202
|
}
|
|
194
203
|
);
|
|
195
204
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignInPage.esm.js","sources":["../../src/components/SignInPage.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ErrorPanel,\n SignInPage as CCSignInPage,\n ProxiedSignInPage,\n type SignInProviderConfig,\n} from '@backstage/core-components';\nimport {\n atlassianAuthApiRef,\n bitbucketAuthApiRef,\n bitbucketServerAuthApiRef,\n configApiRef,\n githubAuthApiRef,\n gitlabAuthApiRef,\n googleAuthApiRef,\n microsoftAuthApiRef,\n oktaAuthApiRef,\n oneloginAuthApiRef,\n useApi,\n type SignInPageProps,\n} from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Typography from '@mui/material/Typography';\n\nimport {\n auth0AuthApiRef,\n keycloakAuthApiRef,\n oidcAuthApiRef,\n pingfederateAuthApiRef,\n samlAuthApiRef,\n} from '../AuthApiRefs';\nimport { signInTranslationRef } from '../translations/signIn';\n\nconst DEFAULT_PROVIDER = 'github';\n\nconst createProviders = (t: (key: string, params?: any) => string) =>\n new Map<string, SignInProviderConfig | string>([\n [\n 'auth0',\n {\n id: 'auth0-auth-provider',\n title: t('signIn.providers.auth0.title'),\n message: t('signIn.providers.auth0.message'),\n apiRef: auth0AuthApiRef,\n },\n ],\n [\n 'atlassian',\n {\n id: 'atlassian-auth-provider',\n title: t('signIn.providers.atlassian.title'),\n message: t('signIn.providers.atlassian.message'),\n apiRef: atlassianAuthApiRef,\n },\n ],\n [\n 'microsoft',\n {\n id: 'microsoft-auth-provider',\n title: t('signIn.providers.microsoft.title'),\n message: t('signIn.providers.microsoft.message'),\n apiRef: microsoftAuthApiRef,\n },\n ],\n ['azure-easyauth', 'azure-easyauth'],\n [\n 'bitbucket',\n {\n id: 'bitbucket-auth-provider',\n title: t('signIn.providers.bitbucket.title'),\n message: t('signIn.providers.bitbucket.message'),\n apiRef: bitbucketAuthApiRef,\n },\n ],\n [\n 'bitbucketServer',\n {\n id: 'bitbucket-server-auth-provider',\n title: t('signIn.providers.bitbucketServer.title'),\n message: t('signIn.providers.bitbucketServer.message'),\n apiRef: bitbucketServerAuthApiRef,\n },\n ],\n ['cfaccess', 'cfaccess'],\n [\n 'github',\n {\n id: 'github-auth-provider',\n title: t('signIn.providers.github.title'),\n message: t('signIn.providers.github.message'),\n apiRef: githubAuthApiRef,\n },\n ],\n [\n 'gitlab',\n {\n id: 'gitlab-auth-provider',\n title: t('signIn.providers.gitlab.title'),\n message: t('signIn.providers.gitlab.message'),\n apiRef: gitlabAuthApiRef,\n },\n ],\n [\n 'google',\n {\n id: 'google-auth-provider',\n title: t('signIn.providers.google.title'),\n message: t('signIn.providers.google.message'),\n apiRef: googleAuthApiRef,\n },\n ],\n ['gcp-iap', 'gcp-iap'],\n [\n 'oidc',\n {\n id: 'oidc-auth-provider',\n title: t('signIn.providers.oidc.title'),\n message: t('signIn.providers.oidc.message'),\n apiRef: oidcAuthApiRef,\n },\n ],\n [\n 'keycloak',\n {\n id: 'keycloak-auth-provider',\n title: t('signIn.providers.keycloak.title'),\n message: t('signIn.providers.keycloak.message'),\n apiRef: keycloakAuthApiRef,\n },\n ],\n [\n 'pingfederate',\n {\n id: 'pingfederate-auth-provider',\n title: t('signIn.providers.pingfederate.title'),\n message: t('signIn.providers.pingfederate.message'),\n apiRef: pingfederateAuthApiRef,\n },\n ],\n [\n 'okta',\n {\n id: 'okta-auth-provider',\n title: t('signIn.providers.okta.title'),\n message: t('signIn.providers.okta.message'),\n apiRef: oktaAuthApiRef,\n },\n ],\n ['oauth2Proxy', 'oauth2Proxy'],\n [\n 'onelogin',\n {\n id: 'onelogin-auth-provider',\n title: t('signIn.providers.onelogin.title'),\n message: t('signIn.providers.onelogin.message'),\n apiRef: oneloginAuthApiRef,\n },\n ],\n [\n 'saml',\n {\n id: 'saml-auth-provider',\n title: t('signIn.providers.saml.title'),\n message: t('signIn.providers.saml.message'),\n apiRef: samlAuthApiRef,\n },\n ],\n ]);\n\n/**\n * RHDH multi-provider sign-in page (mirrors classic app `SignInPage` behavior for NFS).\n *\n * @alpha\n */\nexport function SignInPage(props: SignInPageProps): React.JSX.Element {\n const configApi = useApi(configApiRef);\n const { t } = useTranslationRef(signInTranslationRef);\n const authEnvironment = configApi.getOptionalString('auth.environment');\n if (!authEnvironment?.trim()) {\n return (\n <ErrorPanel\n error={new Error(t('signIn.config.missingAuthEnvironment.error'))}\n title={t('signIn.config.missingAuthEnvironment.panelTitle')}\n >\n <Typography variant=\"body2\" component=\"div\">\n {t('signIn.config.missingAuthEnvironment.description', {\n replace: {\n authEnvKey: <code>auth.environment</code>,\n devEnv: <code>development</code>,\n prodEnv: <code>production</code>,\n },\n })}\n </Typography>\n </ErrorPanel>\n );\n }\n const isDevEnv = authEnvironment === 'development';\n\n const signInPage = configApi.getOptional<string | string[]>('signInPage');\n let providerNames: string[];\n if (signInPage === undefined) {\n const fromAuth =\n configApi\n .getOptionalConfig('auth.providers')\n ?.keys()\n ?.filter(providerId => providerId !== 'guest') ?? [];\n providerNames = fromAuth.length > 0 ? fromAuth : [DEFAULT_PROVIDER];\n } else {\n providerNames = Array.isArray(signInPage) ? signInPage : [signInPage];\n }\n\n const providers = createProviders(t);\n\n const providerConfigs = providerNames\n .map(name => providers.get(name))\n .filter(\n (config): config is SignInProviderConfig | string => config !== undefined,\n );\n\n if (providerConfigs.length === 0) {\n const defaultProvider = providers.get(DEFAULT_PROVIDER);\n if (defaultProvider) providerConfigs.push(defaultProvider);\n }\n\n if (providerConfigs.some(config => typeof config === 'string')) {\n const proxiedProvider = providerConfigs.find(\n config => typeof config === 'string',\n ) as string;\n return <ProxiedSignInPage {...props} provider={proxiedProvider} />;\n }\n\n const providerList = isDevEnv\n ? ['guest' as const, ...(providerConfigs as SignInProviderConfig[])]\n : (providerConfigs as SignInProviderConfig[]);\n\n return (\n <CCSignInPage\n {...props}\n title={t('signIn.page.title')}\n align=\"center\"\n providers={providerList}\n />\n );\n}\n"],"names":["CCSignInPage"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SignInPage.esm.js","sources":["../../src/components/SignInPage.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ErrorPanel,\n SignInPage as CCSignInPage,\n ProxiedSignInPage,\n type SignInProviderConfig,\n} from '@backstage/core-components';\nimport {\n atlassianAuthApiRef,\n bitbucketAuthApiRef,\n bitbucketServerAuthApiRef,\n configApiRef,\n githubAuthApiRef,\n gitlabAuthApiRef,\n googleAuthApiRef,\n microsoftAuthApiRef,\n oktaAuthApiRef,\n oneloginAuthApiRef,\n useApi,\n type SignInPageProps,\n} from '@backstage/core-plugin-api';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\nimport Typography from '@mui/material/Typography';\n\nimport {\n auth0AuthApiRef,\n keycloakAuthApiRef,\n oidcAuthApiRef,\n pingfederateAuthApiRef,\n samlAuthApiRef,\n} from '../AuthApiRefs';\nimport { signInTranslationRef } from '../translations/signIn';\n\nconst createProviders = (t: (key: string, params?: any) => string) =>\n new Map<string, SignInProviderConfig | string>([\n ['guest', 'guest'],\n [\n 'auth0',\n {\n id: 'auth0-auth-provider',\n title: t('signIn.providers.auth0.title'),\n message: t('signIn.providers.auth0.message'),\n apiRef: auth0AuthApiRef,\n },\n ],\n [\n 'atlassian',\n {\n id: 'atlassian-auth-provider',\n title: t('signIn.providers.atlassian.title'),\n message: t('signIn.providers.atlassian.message'),\n apiRef: atlassianAuthApiRef,\n },\n ],\n [\n 'microsoft',\n {\n id: 'microsoft-auth-provider',\n title: t('signIn.providers.microsoft.title'),\n message: t('signIn.providers.microsoft.message'),\n apiRef: microsoftAuthApiRef,\n },\n ],\n ['azure-easyauth', 'azure-easyauth'],\n [\n 'bitbucket',\n {\n id: 'bitbucket-auth-provider',\n title: t('signIn.providers.bitbucket.title'),\n message: t('signIn.providers.bitbucket.message'),\n apiRef: bitbucketAuthApiRef,\n },\n ],\n [\n 'bitbucketServer',\n {\n id: 'bitbucket-server-auth-provider',\n title: t('signIn.providers.bitbucketServer.title'),\n message: t('signIn.providers.bitbucketServer.message'),\n apiRef: bitbucketServerAuthApiRef,\n },\n ],\n ['cfaccess', 'cfaccess'],\n [\n 'github',\n {\n id: 'github-auth-provider',\n title: t('signIn.providers.github.title'),\n message: t('signIn.providers.github.message'),\n apiRef: githubAuthApiRef,\n },\n ],\n [\n 'gitlab',\n {\n id: 'gitlab-auth-provider',\n title: t('signIn.providers.gitlab.title'),\n message: t('signIn.providers.gitlab.message'),\n apiRef: gitlabAuthApiRef,\n },\n ],\n [\n 'google',\n {\n id: 'google-auth-provider',\n title: t('signIn.providers.google.title'),\n message: t('signIn.providers.google.message'),\n apiRef: googleAuthApiRef,\n },\n ],\n ['gcp-iap', 'gcp-iap'],\n [\n 'oidc',\n {\n id: 'oidc-auth-provider',\n title: t('signIn.providers.oidc.title'),\n message: t('signIn.providers.oidc.message'),\n apiRef: oidcAuthApiRef,\n },\n ],\n [\n 'keycloak',\n {\n id: 'keycloak-auth-provider',\n title: t('signIn.providers.keycloak.title'),\n message: t('signIn.providers.keycloak.message'),\n apiRef: keycloakAuthApiRef,\n },\n ],\n [\n 'pingfederate',\n {\n id: 'pingfederate-auth-provider',\n title: t('signIn.providers.pingfederate.title'),\n message: t('signIn.providers.pingfederate.message'),\n apiRef: pingfederateAuthApiRef,\n },\n ],\n [\n 'okta',\n {\n id: 'okta-auth-provider',\n title: t('signIn.providers.okta.title'),\n message: t('signIn.providers.okta.message'),\n apiRef: oktaAuthApiRef,\n },\n ],\n ['oauth2Proxy', 'oauth2Proxy'],\n [\n 'onelogin',\n {\n id: 'onelogin-auth-provider',\n title: t('signIn.providers.onelogin.title'),\n message: t('signIn.providers.onelogin.message'),\n apiRef: oneloginAuthApiRef,\n },\n ],\n [\n 'saml',\n {\n id: 'saml-auth-provider',\n title: t('signIn.providers.saml.title'),\n message: t('signIn.providers.saml.message'),\n apiRef: samlAuthApiRef,\n },\n ],\n ]);\n\n/**\n * RHDH multi-provider sign-in page (mirrors classic app `SignInPage` behavior for NFS).\n *\n * @alpha\n */\nexport function SignInPage(props: SignInPageProps): React.JSX.Element {\n const configApi = useApi(configApiRef);\n const { t } = useTranslationRef(signInTranslationRef);\n const authEnvironment = configApi.getOptionalString('auth.environment');\n if (!authEnvironment?.trim()) {\n return (\n <ErrorPanel\n error={new Error(t('signIn.config.missingAuthEnvironment.error'))}\n title={t('signIn.config.missingAuthEnvironment.panelTitle')}\n >\n <Typography variant=\"body2\" component=\"div\">\n {t('signIn.config.missingAuthEnvironment.description', {\n replace: {\n authEnvKey: <code>auth.environment</code>,\n devEnv: <code>development</code>,\n prodEnv: <code>production</code>,\n },\n })}\n </Typography>\n </ErrorPanel>\n );\n }\n\n const signInPage = configApi.getOptional<string | string[]>('signInPage');\n let providerNames: string[];\n if (signInPage === undefined) {\n providerNames = configApi.getOptionalConfig('auth.providers')?.keys() ?? [];\n } else {\n providerNames = Array.isArray(signInPage) ? signInPage : [signInPage];\n }\n\n const providers = createProviders(t);\n\n const providerConfigs = providerNames\n .map(name => providers.get(name))\n .filter(\n (config): config is SignInProviderConfig | string => config !== undefined,\n );\n\n if (providerConfigs.length === 0) {\n return (\n <ErrorPanel\n error={new Error(t('signIn.config.noConfiguredProviders.error'))}\n title={t('signIn.config.noConfiguredProviders.panelTitle')}\n >\n <Typography variant=\"body2\" component=\"div\">\n {t('signIn.config.noConfiguredProviders.description', {\n replace: {\n authProvidersKey: <code>auth.providers</code>,\n },\n })}\n </Typography>\n </ErrorPanel>\n );\n }\n\n if (\n providerConfigs.some(\n config => typeof config === 'string' && config !== 'guest',\n )\n ) {\n const proxiedProvider = providerConfigs.find(\n config => typeof config === 'string',\n ) as string;\n return <ProxiedSignInPage {...props} provider={proxiedProvider} />;\n }\n\n return (\n <CCSignInPage\n {...props}\n title={t('signIn.page.title')}\n align=\"center\"\n providers={providerConfigs as SignInProviderConfig[]}\n />\n );\n}\n"],"names":["CCSignInPage"],"mappings":"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"}
|
|
@@ -12,6 +12,11 @@ const signInTranslationRef = createTranslationRef({
|
|
|
12
12
|
error: "Missing required app configuration: auth.environment must be set",
|
|
13
13
|
panelTitle: "Sign-in is not available",
|
|
14
14
|
description: "Set {{ authEnvKey }} in your app configuration (for example {{ devEnv }} for local use or {{ prodEnv }} in deployed environments). Without it, the app cannot safely determine which sign-in options to offer."
|
|
15
|
+
},
|
|
16
|
+
noConfiguredProviders: {
|
|
17
|
+
error: "No authentication providers are configured",
|
|
18
|
+
panelTitle: "Sign-in is not available",
|
|
19
|
+
description: "To enable sign-in, configure at least one authentication provider in your app configuration under {{ authProvidersKey }}."
|
|
15
20
|
}
|
|
16
21
|
},
|
|
17
22
|
providers: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signIn.esm.js","sources":["../../src/translations/signIn.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationRef } from '@backstage/core-plugin-api/alpha';\n\n/**\n * Sign-in page messages (English). Same key shape as legacy RHDH app signIn for compatibility.\n *\n * @alpha\n */\nexport const signInTranslationRef = createTranslationRef({\n id: 'plugin.app-auth.sign-in',\n messages: {\n signIn: {\n page: {\n title: 'Select a sign-in method',\n },\n config: {\n missingAuthEnvironment: {\n error:\n 'Missing required app configuration: auth.environment must be set',\n panelTitle: 'Sign-in is not available',\n description:\n 'Set {{ authEnvKey }} in your app configuration (for example {{ devEnv }} for local use or {{ prodEnv }} in deployed environments). Without it, the app cannot safely determine which sign-in options to offer.',\n },\n },\n providers: {\n auth0: {\n title: 'Auth0',\n message: 'Sign in using Auth0',\n },\n atlassian: {\n title: 'Atlassian',\n message: 'Sign in using Atlassian',\n },\n microsoft: {\n title: 'Microsoft',\n message: 'Sign in using Microsoft',\n },\n bitbucket: {\n title: 'Bitbucket',\n message: 'Sign in using Bitbucket',\n },\n bitbucketServer: {\n title: 'Bitbucket Server',\n message: 'Sign in using Bitbucket Server',\n },\n github: {\n title: 'GitHub',\n message: 'Sign in using GitHub',\n },\n gitlab: {\n title: 'GitLab',\n message: 'Sign in using GitLab',\n },\n google: {\n title: 'Google',\n message: 'Sign in using Google',\n },\n oidc: {\n title: 'OIDC',\n message: 'Sign in using OIDC',\n },\n keycloak: {\n title: 'Keycloak',\n message: 'Sign in using Keycloak',\n },\n pingfederate: {\n title: 'PingFederate',\n message: 'Sign in using PingFederate',\n },\n okta: {\n title: 'Okta',\n message: 'Sign in using Okta',\n },\n onelogin: {\n title: 'OneLogin',\n message: 'Sign in using OneLogin',\n },\n saml: {\n title: 'SAML',\n message: 'Sign in using SAML',\n },\n },\n },\n },\n});\n"],"names":[],"mappings":";;AAuBO,MAAM,uBAAuB,oBAAA,CAAqB;AAAA,EACvD,EAAA,EAAI,yBAAA;AAAA,EACJ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO;AAAA,OACT;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,sBAAA,EAAwB;AAAA,UACtB,KAAA,EACE,kEAAA;AAAA,UACF,UAAA,EAAY,0BAAA;AAAA,UACZ,WAAA,EACE;AAAA;AACJ,OACF;AAAA,MACA,SAAA,EAAW;AAAA,QACT,KAAA,EAAO;AAAA,UACL,KAAA,EAAO,OAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,WAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,WAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,WAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,eAAA,EAAiB;AAAA,UACf,KAAA,EAAO,kBAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,KAAA,EAAO,MAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,QAAA,EAAU;AAAA,UACR,KAAA,EAAO,UAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,KAAA,EAAO,cAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,KAAA,EAAO,MAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,QAAA,EAAU;AAAA,UACR,KAAA,EAAO,UAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,KAAA,EAAO,MAAA;AAAA,UACP,OAAA,EAAS;AAAA;AACX;AACF;AACF;AAEJ,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"signIn.esm.js","sources":["../../src/translations/signIn.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { createTranslationRef } from '@backstage/core-plugin-api/alpha';\n\n/**\n * Sign-in page messages (English). Same key shape as legacy RHDH app signIn for compatibility.\n *\n * @alpha\n */\nexport const signInTranslationRef = createTranslationRef({\n id: 'plugin.app-auth.sign-in',\n messages: {\n signIn: {\n page: {\n title: 'Select a sign-in method',\n },\n config: {\n missingAuthEnvironment: {\n error:\n 'Missing required app configuration: auth.environment must be set',\n panelTitle: 'Sign-in is not available',\n description:\n 'Set {{ authEnvKey }} in your app configuration (for example {{ devEnv }} for local use or {{ prodEnv }} in deployed environments). Without it, the app cannot safely determine which sign-in options to offer.',\n },\n noConfiguredProviders: {\n error: 'No authentication providers are configured',\n panelTitle: 'Sign-in is not available',\n description:\n 'To enable sign-in, configure at least one authentication provider in your app configuration under {{ authProvidersKey }}.',\n },\n },\n providers: {\n auth0: {\n title: 'Auth0',\n message: 'Sign in using Auth0',\n },\n atlassian: {\n title: 'Atlassian',\n message: 'Sign in using Atlassian',\n },\n microsoft: {\n title: 'Microsoft',\n message: 'Sign in using Microsoft',\n },\n bitbucket: {\n title: 'Bitbucket',\n message: 'Sign in using Bitbucket',\n },\n bitbucketServer: {\n title: 'Bitbucket Server',\n message: 'Sign in using Bitbucket Server',\n },\n github: {\n title: 'GitHub',\n message: 'Sign in using GitHub',\n },\n gitlab: {\n title: 'GitLab',\n message: 'Sign in using GitLab',\n },\n google: {\n title: 'Google',\n message: 'Sign in using Google',\n },\n oidc: {\n title: 'OIDC',\n message: 'Sign in using OIDC',\n },\n keycloak: {\n title: 'Keycloak',\n message: 'Sign in using Keycloak',\n },\n pingfederate: {\n title: 'PingFederate',\n message: 'Sign in using PingFederate',\n },\n okta: {\n title: 'Okta',\n message: 'Sign in using Okta',\n },\n onelogin: {\n title: 'OneLogin',\n message: 'Sign in using OneLogin',\n },\n saml: {\n title: 'SAML',\n message: 'Sign in using SAML',\n },\n },\n },\n },\n});\n"],"names":[],"mappings":";;AAuBO,MAAM,uBAAuB,oBAAA,CAAqB;AAAA,EACvD,EAAA,EAAI,yBAAA;AAAA,EACJ,QAAA,EAAU;AAAA,IACR,MAAA,EAAQ;AAAA,MACN,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO;AAAA,OACT;AAAA,MACA,MAAA,EAAQ;AAAA,QACN,sBAAA,EAAwB;AAAA,UACtB,KAAA,EACE,kEAAA;AAAA,UACF,UAAA,EAAY,0BAAA;AAAA,UACZ,WAAA,EACE;AAAA,SACJ;AAAA,QACA,qBAAA,EAAuB;AAAA,UACrB,KAAA,EAAO,4CAAA;AAAA,UACP,UAAA,EAAY,0BAAA;AAAA,UACZ,WAAA,EACE;AAAA;AACJ,OACF;AAAA,MACA,SAAA,EAAW;AAAA,QACT,KAAA,EAAO;AAAA,UACL,KAAA,EAAO,OAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,WAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,WAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,SAAA,EAAW;AAAA,UACT,KAAA,EAAO,WAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,eAAA,EAAiB;AAAA,UACf,KAAA,EAAO,kBAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,MAAA,EAAQ;AAAA,UACN,KAAA,EAAO,QAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,KAAA,EAAO,MAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,QAAA,EAAU;AAAA,UACR,KAAA,EAAO,UAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,KAAA,EAAO,cAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,KAAA,EAAO,MAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,QAAA,EAAU;AAAA,UACR,KAAA,EAAO,UAAA;AAAA,UACP,OAAA,EAAS;AAAA,SACX;AAAA,QACA,IAAA,EAAM;AAAA,UACJ,KAAA,EAAO,MAAA;AAAA,UACP,OAAA,EAAS;AAAA;AACX;AACF;AACF;AAEJ,CAAC;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@red-hat-developer-hub/backstage-plugin-app-auth",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "RHDH sign-in page and OIDC/Auth0/SAML frontend auth APIs for the new frontend system",
|
|
6
6
|
"main": "./dist/index.esm.js",
|