Compare commits

...

5 Commits

Author SHA1 Message Date
carlosmonastyrski
4ea0cc62e3 Change External Integrations to Others 2025-04-14 15:07:16 -03:00
carlosmonastyrski
f2fead7a51 Add Backstage Plugins docs 2025-04-14 14:15:42 -03:00
Maidul Islam
85627eb825 Merge pull request #3412 from x032205/github-username
Github & Gitlab SSO display name fallback to username
2025-04-13 17:45:25 -04:00
x032205
fcc6f812d5 Merge branch 'Infisical:main' into github-username 2025-04-13 16:01:33 -04:00
x
7c38932878 github & gitlab sso display name fallback to username 2025-04-13 15:59:25 -04:00
4 changed files with 131 additions and 2 deletions

View File

@@ -108,7 +108,7 @@ export const registerSsoRouter = async (server: FastifyZodProvider) => {
const { email } = ghEmails.filter((gitHubEmail) => gitHubEmail.primary)[0];
const { isUserCompleted, providerAuthToken } = await server.services.login.oauth2Login({
email,
firstName: profile.displayName,
firstName: profile.displayName || profile.username || "",
lastName: "",
authMethod: AuthMethod.GITHUB,
callbackPort
@@ -145,7 +145,7 @@ export const registerSsoRouter = async (server: FastifyZodProvider) => {
const email = profile.emails[0].value;
const { isUserCompleted, providerAuthToken } = await server.services.login.oauth2Login({
email,
firstName: profile.displayName,
firstName: profile.displayName || profile.username || "",
lastName: "",
authMethod: AuthMethod.GITLAB,
callbackPort

Binary file not shown.

After

Width:  |  Height:  |  Size: 548 KiB

123
docs/integrations/external/backstage.mdx vendored Normal file
View File

@@ -0,0 +1,123 @@
---
title: Backstage Infisical Plugin
description: A powerful plugin that integrates Infisical secrets management into your Backstage developer portal.
---
Integrate secrets management into your developer portal with the Backstage Infisical plugin suite. This plugin provides a seamless interface to manage your [Infisical](https://infisical.com) secrets directly within Backstage, including full support for environments and folder structure.
## Features
- **Secrets Management**: View, create, update, and delete secrets from Infisical
- **Folder Navigation**: Explore the full folder structure of your Infisical projects
- **Multi-Environment Support**: Easily switch between and manage different environments
- **Entity Linking**: Map Backstage entities to specific Infisical projects via annotations
---
## Installation
### Frontend Plugin
```bash
# From your Backstage root directory
yarn --cwd packages/app add @infisical/backstage-plugin-infisical
```
### Backend Plugin
```bash
# From your Backstage root directory
yarn --cwd packages/backend add @infisical/backstage-backend-plugin-infisical
```
## Configuration
### Backend
Update your `app-config.yaml`:
```yaml
infisical:
baseUrl: https://app.infisical.com
authentication:
# Option 1: API Token Authentication
auth_token:
token: ${INFISICAL_API_TOKEN}
# Option 2: Client Credentials Authentication
universalAuth:
clientId: ${INFISICAL_CLIENT_ID}
clientSecret: ${INFISICAL_CLIENT_SECRET}
```
<Tip>
If you have not created a machine identity yet, you can do so in [Identities](/documentation/platform/identities/machine-identities)
</Tip>
Register the plugin in `packages/backend/src/index.ts`:
```ts
import { createBackend } from '@backstage/backend-defaults';
const backend = createBackend();
backend.add(import('@infisical/backstage-backend-plugin-infisical'));
backend.start();
```
### Frontend
Update `packages/app/src/App.tsx` to include the plugin:
```tsx
import { infisicalPlugin } from '@infisical/backstage-plugin-infisical';
const app = createApp({
plugins: [
infisicalPlugin,
// ...other plugins
],
});
```
Modify `packages/app/src/components/catalog/EntityPage.tsx`:
```tsx
import { EntityInfisicalContent } from '@infisical/backstage-plugin-infisical';
const serviceEntityPage = (
<EntityLayout>
{/* ...other tabs */}
<EntityLayout.Route path="/infisical" title="Secrets">
<EntityInfisicalContent />
</EntityLayout.Route>
</EntityLayout>
);
```
### Entity Annotation
Add the Infisical project ID to your entity yaml settings:
```yaml
apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
name: example-service
annotations:
infisical/projectId: <your-infisical-project-id>
```
> Replace `<your-infisical-project-id>` with the actual project ID from Infisical.
## Usage
Once installed and configured, you can:
1. **View and manage secrets** in Infisical from within Backstage
2. **Create, update, and delete** secrets using the Infisical tab in entity pages
3. **Navigate environments and folders**
4. **Search and filter** secrets by key, value, or comments
![Backstage Plugin Table](/images/integrations/external/backstage/backstage-plugin-infisical.png)

View File

@@ -552,6 +552,12 @@
"group": "Build Tool Integrations",
"pages": ["integrations/build-tools/gradle"]
},
{
"group": "Others",
"pages": [
"integrations/external/backstage"
]
},
{
"group": "",
"pages": ["sdks/overview"]