open-index/open-npm huggingface dataset:
npm package: @invincible/backstage-plugin-terraform-environments
Description: This plugin allows managing ephemeral Terraform environments using GitHub Issues and Actions.
Latest version: 0.44.0

# Backstage Terraform Environments Plugin

This plugin allows managing ephemeral Terraform environments using GitHub Issues and Actions.

## Features

- List all Terraform environments
- View environment details and status
- Destroy environments that are no longer needed
- Integration with GitHub Issues for tracking
- Integration with GitHub Actions for provisioning and destruction

## Installation

1. Install the plugin in your Backstage app:

```bash
# From your Backstage root directory
yarn add --cwd packages/app @invincible/backstage-plugin-terraform-environments
```

2. Configure the plugin in your `app-config.yaml`:

```yaml
terraformenvironments:
  defaultowner: your-github-org-name
  defaultrepo: your-repo-name
```

3. Add the plugin API factory to your `packages/app/src/apis.ts`:

```typescript
import { 
  createApiFactory,
  configApiRef,
} from '@backstage/core-plugin-api';
import { scmAuthApiRef } from '@backstage/integration-react';
import { 
  terraformEnvironmentsApiRef,
  createTerraformEnvironmentsApi 
} from '@invincible/backstage-plugin-terraform-environments';

export const apis = [
  // ... existing API factories
  
  // Add the Terraform Environments API
  createApiFactory({
    api: terraformEnvironmentsApiRef,
    deps: { scmAuthApi: scmAuthApiRef },
    factory: ({ scmAuthApi }) => createTerraformEnvironmentsApi(scmAuthApi),
  }),
];
```

4. Add the plugin page to your `packages/app/src/App.tsx`:

```typescript
import { TerraformEnvironmentsPage } from '@invincible/backstage-plugin-terraform-environments';

// In your routes:
<Route path="/terraform-environments" element={<TerraformEnvironmentsPage />} />
```

## GitHub Configuration

The plugin requires GitHub authentication to be set up in your Backstage instance:

1. Create a GitHub App or Personal Access Token with the following permissions:
   - `repo` (full access to repositories)
   - `workflow` (ability to trigger workflows)

2. Configure GitHub authentication in your `app-config.yaml`:

```yaml
integrations:
  github:
    - host: github.com
      token: ${GITHUB_TOKEN}
```

## GitHub Action Workflows

The plugin works with two GitHub Action workflows:

1. **terraform-pr.yml**: Creates environments when PR is opened
2. **destroy-environment.yml**: Destroys environments when requested

These workflows should be placed in `.github/workflows/` in your infrastructure repository.

## Troubleshooting

If you encounter any issues with the plugin:

1. Check your browser console for error messages
2. Verify that the GitHub token has the required permissions
3. Make sure your `app-config.yaml` has the correct configuration
4. Check that the GitHub repository exists and is accessible

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
npm package: @invincible/plugin-scaffolder-backend-module-createvalues
Description: The createvalues module for @backstage/plugin-scaffolder-backend
Latest version: 0.3.0

# @internal/plugin-scaffolder-backend-module-createvalues

The `create:values` module for [@backstage/plugin-scaffolder-backend](https://www.npmjs.com/package/@backstage/plugin-scaffolder-backend).

## Description

This plugin provides a custom action called `create:values` that can be used in Backstage templates to generate computed values like timestamps, UUIDs, and formatted strings.

## Installation

Install the package in your Backstage backend:

```bash
# From your Backstage root directory
yarn add --cwd packages/backend @internal/plugin-scaffolder-backend-module-createvalues
```

Register the module in your backstage backend:

```typescript
// packages/backend/src/index.ts
import createValues from '@internal/plugin-scaffolder-backend-module-createvalues';

const backend = createBackend();
// ... other register calls
backend.add(createValues);
```

## Usage

You can use the `create:values` action in your template YAML files:

```yaml
steps:
  - id: createvalues
    name: Create Computed Values
    action: create:values
    # Optional: you can provide input values
    input:
      values:
        customPrefix: my-app
        environment: production

  - id: template
    name: Fetch Skeleton
    action: fetch:template
    input:
      url: ./skeleton
      values:
        # Use any of the computed values
        name: ${{ steps.createvalues.output.values.customPrefix }}-${{ steps.createvalues.output.values.shortId }}
        deploymentTime: ${{ steps.createvalues.output.values.formattedDateTime }}
        resourceId: ${{ steps.createvalues.output.values.uuid }}
```

## Available Computed Values

The `create:values` action provides the following computed values:

| Value | Description | Example |
|-------|-------------|---------|
| `timestamp` | Current timestamp in milliseconds | `1699537269571` |
| `datetime` | ISO 8601 datetime | `2023-11-09T14:01:09.571Z` |
| `date` | ISO 8601 date | `2023-11-09` |
| `time` | ISO 8601 time | `14:01:09.571Z` |
| `formattedDate` | Formatted date (yyyy-MM-dd) | `2023-11-09` |
| `formattedTime` | Formatted time (HH:mm:ss) | `14:01:09` |
| `formattedDateTime` | Formatted datetime (yyyy-MM-dd HH:mm:ss) | `2023-11-09 14:01:09` |
| `uuid` | A UUID v4 | `550e8400-e29b-41d4-a716-446655440000` |
| `shortId` | First segment of a UUID | `550e8400` |

Plus any values you provide in the input.

_This plugin was created through the Backstage CLI_