This repository was archived by the owner on Feb 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modifieddocs/plugins/assets/private-plugins/add-new-plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions docs/plugins/private-plugins.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,17 +43,6 @@ Never use the same repository for private plugins and generated services to avoi

![Publish Your Platform Console Changes](./assets/private-plugins/configure-git-settings.png)

## Add a New Private Plugin

Next, add a new private plugin to your Platform Console:

1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. Enter a unique name using kebab-case (e.g., `acme-corp-authentication`)
3. Set the plugin's **Display Name** and **Description** - these will appear in the UI when selecting plugins
4. Choose the appropriate code generator (Node.js or .NET) that matches your target services

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

## Set Up Your Private Plugin Folder

After creating the plugin entry in the Platform Console, set up your development environment.
Expand DownExpand Up@@ -122,54 +111,72 @@ Follow the steps below to complete this process:
mv plugins/dotnet-db-postgres your-plugin-id
```

## Develop Your Plugin
## Add a New Private Plugin

Now that your plugin structure is set up, it's time to start building your plugin.
We've prepared several resources and reference materials to help guide your plugin development process.
Next, add a new private plugin to your Platform Console:

Core Documentation:
1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. A modal appears that scans your connected Git repository for private plugins
3. Select your plugin from the list of found plugins

- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)
:::note
Only plugins that are properly structured within the `plugins` folder of your connected Git repository will be detected.
:::

Community Plugin Examples:
![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples
## Configure Your Plugin

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
After adding your plugin, you'll need to configure its settings:

1. **Plugin ID**: Automatically set based on your plugin's folder name in the Git repository. This can only be modified by renaming the folder and re-adding the plugin.
2. **Display Name**: The human-readable name for your plugin that appears in the UI. By default, it matches the Plugin ID but can be customized for better clarity.
3. **Icon**: Choose from a variety of technology-specific icons to help visually identify your plugin. You can also customize the icon's color to match your categorization system.
4. **Code Generator**: Select the appropriate code generator for your plugin:
- Node.js
- .NET
- Blueprints (for custom blueprint solutions)
5. **Blueprint Compatibility**: Optionally restrict your plugin to work with specific blueprints by selecting them from the dropdown menu.
6. **Description**: Provide a detailed description of your plugin's purpose. A detailed description helps developers quickly understand and choose the right plugin for their needs.

:::tip
A meaningful display name, icon, and description will help developers quickly identify and understand your plugin's purpose when browsing the plugin list in services and templates.
:::

## Add Versions to Your Plugin
![Configure Your Private Plugin's Settings](./assets/private-plugins/configure-plugin.png)

After developing your plugin, you'll need to version it both in Amplication and your Git repository.
First, let's add a version through the Amplication UI:
## Develop Your Plugin

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)
Now that your plugin structure is set up, it's time to start building your plugin.

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)
First, enable dev versions by toggling the `Enable Dev Version` into the on state.

## Tag Your Git Repository
![Enable Dev Versions](./assets/private-plugins/enable-dev-versions.png)

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.
Dev Versions streamline the plugin development process by automatically using the latest code from your repository's base branch.
This eliminates the need to publish new versions during development and testing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "dev" version must be specifically selected in the plugin installation settings to use the dev version.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuval-hazaz If I'm understanding you correctly, the plugin installation settings page, should have a setting to use the development version?

This page:
Screen Shot 2024-12-18 at 7 58 41 PM

This is separate from the dev versions toggle that developers have to toggle on the plugin repository private plugin settings page?

Screen Shot 2024-12-18 at 7 59 53 PM


Create a tag with your Plugin ID and version from the previous step:
Dev Versions makes the development process much smoother.
The plugin code will be pulled from the base branch set at the Git Settings.
The new changes in your plugin folder are immediately available for testing.

```bash
git tag "your-plugin-id@0.1.0"
```
Next, we've prepared several resources and reference materials to help guide your plugin development process.

Push the tag to your remote repository:
Core Documentation:

```bash
git push origin "your-plugin-id@0.1.0"
```
- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)

Community Plugin Examples:

## Configure Plugin Settings
- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
:::

### Add Plugin Settings

Plugin settings allow you to define customizable options that users can configure when using your plugin. These settings can include API keys, feature flags, or other configuration values that modify your plugin's behavior.

Expand All@@ -196,7 +203,45 @@ For a real-world example of using settings in your plugin, see the [Supertokens

## Publish Your Plugin

After adding a version to your plugin, configuring your plugin settings, and tagging your repository, it's time to publish your plugin. Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.
After developing your plugin it's time to get it for release.
To do this, you'll need to add a version to your plugin, tag your repository, and finally publish it through the Amplication UI.

Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.

### Add Versions to Your Plugin

After developing your plugin and to get it ready for release, you'll need to version it in both Amplication and your Git repository.

First, disable dev versions by toggling the `Enable Dev Version` into the off state.

![Disable Dev Versions](./assets/private-plugins/disable-dev-version.png)

Next, let's add a version through the Amplication UI:

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)

### Tag Your Git Repository

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.

Create a tag with your Plugin ID and version from the previous step:

```bash
git tag "your-plugin-id@0.1.0"
```

Push the tag to your remote repository:

```bash
git push origin "your-plugin-id@0.1.0"
```

### Publish Your Plugin

1. Go to your Platform Console
2. Click on "Publish New Version" in your Platform Changes sidebar
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Feb 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modifieddocs/plugins/assets/private-plugins/add-new-plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions docs/plugins/private-plugins.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,17 +43,6 @@ Never use the same repository for private plugins and generated services to avoi

![Publish Your Platform Console Changes](./assets/private-plugins/configure-git-settings.png)

## Add a New Private Plugin

Next, add a new private plugin to your Platform Console:

1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. Enter a unique name using kebab-case (e.g., `acme-corp-authentication`)
3. Set the plugin's **Display Name** and **Description** - these will appear in the UI when selecting plugins
4. Choose the appropriate code generator (Node.js or .NET) that matches your target services

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

## Set Up Your Private Plugin Folder

After creating the plugin entry in the Platform Console, set up your development environment.
Expand DownExpand Up@@ -122,54 +111,72 @@ Follow the steps below to complete this process:
mv plugins/dotnet-db-postgres your-plugin-id
```

## Develop Your Plugin
## Add a New Private Plugin

Now that your plugin structure is set up, it's time to start building your plugin.
We've prepared several resources and reference materials to help guide your plugin development process.
Next, add a new private plugin to your Platform Console:

Core Documentation:
1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. A modal appears that scans your connected Git repository for private plugins
3. Select your plugin from the list of found plugins

- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)
:::note
Only plugins that are properly structured within the `plugins` folder of your connected Git repository will be detected.
:::

Community Plugin Examples:
![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples
## Configure Your Plugin

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
After adding your plugin, you'll need to configure its settings:

1. **Plugin ID**: Automatically set based on your plugin's folder name in the Git repository. This can only be modified by renaming the folder and re-adding the plugin.
2. **Display Name**: The human-readable name for your plugin that appears in the UI. By default, it matches the Plugin ID but can be customized for better clarity.
3. **Icon**: Choose from a variety of technology-specific icons to help visually identify your plugin. You can also customize the icon's color to match your categorization system.
4. **Code Generator**: Select the appropriate code generator for your plugin:
- Node.js
- .NET
- Blueprints (for custom blueprint solutions)
5. **Blueprint Compatibility**: Optionally restrict your plugin to work with specific blueprints by selecting them from the dropdown menu.
6. **Description**: Provide a detailed description of your plugin's purpose. A detailed description helps developers quickly understand and choose the right plugin for their needs.

:::tip
A meaningful display name, icon, and description will help developers quickly identify and understand your plugin's purpose when browsing the plugin list in services and templates.
:::

## Add Versions to Your Plugin
![Configure Your Private Plugin's Settings](./assets/private-plugins/configure-plugin.png)

After developing your plugin, you'll need to version it both in Amplication and your Git repository.
First, let's add a version through the Amplication UI:
## Develop Your Plugin

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)
Now that your plugin structure is set up, it's time to start building your plugin.

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)
First, enable dev versions by toggling the `Enable Dev Version` into the on state.

## Tag Your Git Repository
![Enable Dev Versions](./assets/private-plugins/enable-dev-versions.png)

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.
Dev Versions streamline the plugin development process by automatically using the latest code from your repository's base branch.
This eliminates the need to publish new versions during development and testing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "dev" version must be specifically selected in the plugin installation settings to use the dev version.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuval-hazaz If I'm understanding you correctly, the plugin installation settings page, should have a setting to use the development version?

This page:
Screen Shot 2024-12-18 at 7 58 41 PM

This is separate from the dev versions toggle that developers have to toggle on the plugin repository private plugin settings page?

Screen Shot 2024-12-18 at 7 59 53 PM


Create a tag with your Plugin ID and version from the previous step:
Dev Versions makes the development process much smoother.
The plugin code will be pulled from the base branch set at the Git Settings.
The new changes in your plugin folder are immediately available for testing.

```bash
git tag "your-plugin-id@0.1.0"
```
Next, we've prepared several resources and reference materials to help guide your plugin development process.

Push the tag to your remote repository:
Core Documentation:

```bash
git push origin "your-plugin-id@0.1.0"
```
- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)

Community Plugin Examples:

## Configure Plugin Settings
- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
:::

### Add Plugin Settings

Plugin settings allow you to define customizable options that users can configure when using your plugin. These settings can include API keys, feature flags, or other configuration values that modify your plugin's behavior.

Expand All@@ -196,7 +203,45 @@ For a real-world example of using settings in your plugin, see the [Supertokens

## Publish Your Plugin

After adding a version to your plugin, configuring your plugin settings, and tagging your repository, it's time to publish your plugin. Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.
After developing your plugin it's time to get it for release.
To do this, you'll need to add a version to your plugin, tag your repository, and finally publish it through the Amplication UI.

Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.

### Add Versions to Your Plugin

After developing your plugin and to get it ready for release, you'll need to version it in both Amplication and your Git repository.

First, disable dev versions by toggling the `Enable Dev Version` into the off state.

![Disable Dev Versions](./assets/private-plugins/disable-dev-version.png)

Next, let's add a version through the Amplication UI:

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)

### Tag Your Git Repository

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.

Create a tag with your Plugin ID and version from the previous step:

```bash
git tag "your-plugin-id@0.1.0"
```

Push the tag to your remote repository:

```bash
git push origin "your-plugin-id@0.1.0"
```

### Publish Your Plugin

1. Go to your Platform Console
2. Click on "Publish New Version" in your Platform Changes sidebar
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modifieddocs/plugins/assets/private-plugins/add-new-plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions docs/plugins/private-plugins.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,17 +43,6 @@ Never use the same repository for private plugins and generated services to avoi

![Publish Your Platform Console Changes](./assets/private-plugins/configure-git-settings.png)

## Add a New Private Plugin

Next, add a new private plugin to your Platform Console:

1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. Enter a unique name using kebab-case (e.g., `acme-corp-authentication`)
3. Set the plugin's **Display Name** and **Description** - these will appear in the UI when selecting plugins
4. Choose the appropriate code generator (Node.js or .NET) that matches your target services

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

## Set Up Your Private Plugin Folder

After creating the plugin entry in the Platform Console, set up your development environment.
Expand DownExpand Up@@ -122,54 +111,72 @@ Follow the steps below to complete this process:
mv plugins/dotnet-db-postgres your-plugin-id
```

## Develop Your Plugin
## Add a New Private Plugin

Now that your plugin structure is set up, it's time to start building your plugin.
We've prepared several resources and reference materials to help guide your plugin development process.
Next, add a new private plugin to your Platform Console:

Core Documentation:
1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. A modal appears that scans your connected Git repository for private plugins
3. Select your plugin from the list of found plugins

- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)
:::note
Only plugins that are properly structured within the `plugins` folder of your connected Git repository will be detected.
:::

Community Plugin Examples:
![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples
## Configure Your Plugin

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
After adding your plugin, you'll need to configure its settings:

1. **Plugin ID**: Automatically set based on your plugin's folder name in the Git repository. This can only be modified by renaming the folder and re-adding the plugin.
2. **Display Name**: The human-readable name for your plugin that appears in the UI. By default, it matches the Plugin ID but can be customized for better clarity.
3. **Icon**: Choose from a variety of technology-specific icons to help visually identify your plugin. You can also customize the icon's color to match your categorization system.
4. **Code Generator**: Select the appropriate code generator for your plugin:
- Node.js
- .NET
- Blueprints (for custom blueprint solutions)
5. **Blueprint Compatibility**: Optionally restrict your plugin to work with specific blueprints by selecting them from the dropdown menu.
6. **Description**: Provide a detailed description of your plugin's purpose. A detailed description helps developers quickly understand and choose the right plugin for their needs.

:::tip
A meaningful display name, icon, and description will help developers quickly identify and understand your plugin's purpose when browsing the plugin list in services and templates.
:::

## Add Versions to Your Plugin
![Configure Your Private Plugin's Settings](./assets/private-plugins/configure-plugin.png)

After developing your plugin, you'll need to version it both in Amplication and your Git repository.
First, let's add a version through the Amplication UI:
## Develop Your Plugin

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)
Now that your plugin structure is set up, it's time to start building your plugin.

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)
First, enable dev versions by toggling the `Enable Dev Version` into the on state.

## Tag Your Git Repository
![Enable Dev Versions](./assets/private-plugins/enable-dev-versions.png)

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.
Dev Versions streamline the plugin development process by automatically using the latest code from your repository's base branch.
This eliminates the need to publish new versions during development and testing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "dev" version must be specifically selected in the plugin installation settings to use the dev version.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuval-hazaz If I'm understanding you correctly, the plugin installation settings page, should have a setting to use the development version?

This page:
Screen Shot 2024-12-18 at 7 58 41 PM

This is separate from the dev versions toggle that developers have to toggle on the plugin repository private plugin settings page?

Screen Shot 2024-12-18 at 7 59 53 PM


Create a tag with your Plugin ID and version from the previous step:
Dev Versions makes the development process much smoother.
The plugin code will be pulled from the base branch set at the Git Settings.
The new changes in your plugin folder are immediately available for testing.

```bash
git tag "your-plugin-id@0.1.0"
```
Next, we've prepared several resources and reference materials to help guide your plugin development process.

Push the tag to your remote repository:
Core Documentation:

```bash
git push origin "your-plugin-id@0.1.0"
```
- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)

Community Plugin Examples:

## Configure Plugin Settings
- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
:::

### Add Plugin Settings

Plugin settings allow you to define customizable options that users can configure when using your plugin. These settings can include API keys, feature flags, or other configuration values that modify your plugin's behavior.

Expand All@@ -196,7 +203,45 @@ For a real-world example of using settings in your plugin, see the [Supertokens

## Publish Your Plugin

After adding a version to your plugin, configuring your plugin settings, and tagging your repository, it's time to publish your plugin. Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.
After developing your plugin it's time to get it for release.
To do this, you'll need to add a version to your plugin, tag your repository, and finally publish it through the Amplication UI.

Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.

### Add Versions to Your Plugin

After developing your plugin and to get it ready for release, you'll need to version it in both Amplication and your Git repository.

First, disable dev versions by toggling the `Enable Dev Version` into the off state.

![Disable Dev Versions](./assets/private-plugins/disable-dev-version.png)

Next, let's add a version through the Amplication UI:

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)

### Tag Your Git Repository

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.

Create a tag with your Plugin ID and version from the previous step:

```bash
git tag "your-plugin-id@0.1.0"
```

Push the tag to your remote repository:

```bash
git push origin "your-plugin-id@0.1.0"
```

### Publish Your Plugin

1. Go to your Platform Console
2. Click on "Publish New Version" in your Platform Changes sidebar
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modifieddocs/plugins/assets/private-plugins/add-new-plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions docs/plugins/private-plugins.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,17 +43,6 @@ Never use the same repository for private plugins and generated services to avoi

![Publish Your Platform Console Changes](./assets/private-plugins/configure-git-settings.png)

## Add a New Private Plugin

Next, add a new private plugin to your Platform Console:

1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. Enter a unique name using kebab-case (e.g., `acme-corp-authentication`)
3. Set the plugin's **Display Name** and **Description** - these will appear in the UI when selecting plugins
4. Choose the appropriate code generator (Node.js or .NET) that matches your target services

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

## Set Up Your Private Plugin Folder

After creating the plugin entry in the Platform Console, set up your development environment.
Expand DownExpand Up@@ -122,54 +111,72 @@ Follow the steps below to complete this process:
mv plugins/dotnet-db-postgres your-plugin-id
```

## Develop Your Plugin
## Add a New Private Plugin

Now that your plugin structure is set up, it's time to start building your plugin.
We've prepared several resources and reference materials to help guide your plugin development process.
Next, add a new private plugin to your Platform Console:

Core Documentation:
1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. A modal appears that scans your connected Git repository for private plugins
3. Select your plugin from the list of found plugins

- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)
:::note
Only plugins that are properly structured within the `plugins` folder of your connected Git repository will be detected.
:::

Community Plugin Examples:
![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples
## Configure Your Plugin

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
After adding your plugin, you'll need to configure its settings:

1. **Plugin ID**: Automatically set based on your plugin's folder name in the Git repository. This can only be modified by renaming the folder and re-adding the plugin.
2. **Display Name**: The human-readable name for your plugin that appears in the UI. By default, it matches the Plugin ID but can be customized for better clarity.
3. **Icon**: Choose from a variety of technology-specific icons to help visually identify your plugin. You can also customize the icon's color to match your categorization system.
4. **Code Generator**: Select the appropriate code generator for your plugin:
- Node.js
- .NET
- Blueprints (for custom blueprint solutions)
5. **Blueprint Compatibility**: Optionally restrict your plugin to work with specific blueprints by selecting them from the dropdown menu.
6. **Description**: Provide a detailed description of your plugin's purpose. A detailed description helps developers quickly understand and choose the right plugin for their needs.

:::tip
A meaningful display name, icon, and description will help developers quickly identify and understand your plugin's purpose when browsing the plugin list in services and templates.
:::

## Add Versions to Your Plugin
![Configure Your Private Plugin's Settings](./assets/private-plugins/configure-plugin.png)

After developing your plugin, you'll need to version it both in Amplication and your Git repository.
First, let's add a version through the Amplication UI:
## Develop Your Plugin

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)
Now that your plugin structure is set up, it's time to start building your plugin.

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)
First, enable dev versions by toggling the `Enable Dev Version` into the on state.

## Tag Your Git Repository
![Enable Dev Versions](./assets/private-plugins/enable-dev-versions.png)

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.
Dev Versions streamline the plugin development process by automatically using the latest code from your repository's base branch.
This eliminates the need to publish new versions during development and testing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "dev" version must be specifically selected in the plugin installation settings to use the dev version.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuval-hazaz If I'm understanding you correctly, the plugin installation settings page, should have a setting to use the development version?

This page:
Screen Shot 2024-12-18 at 7 58 41 PM

This is separate from the dev versions toggle that developers have to toggle on the plugin repository private plugin settings page?

Screen Shot 2024-12-18 at 7 59 53 PM


Create a tag with your Plugin ID and version from the previous step:
Dev Versions makes the development process much smoother.
The plugin code will be pulled from the base branch set at the Git Settings.
The new changes in your plugin folder are immediately available for testing.

```bash
git tag "your-plugin-id@0.1.0"
```
Next, we've prepared several resources and reference materials to help guide your plugin development process.

Push the tag to your remote repository:
Core Documentation:

```bash
git push origin "your-plugin-id@0.1.0"
```
- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)

Community Plugin Examples:

## Configure Plugin Settings
- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
:::

### Add Plugin Settings

Plugin settings allow you to define customizable options that users can configure when using your plugin. These settings can include API keys, feature flags, or other configuration values that modify your plugin's behavior.

Expand All@@ -196,7 +203,45 @@ For a real-world example of using settings in your plugin, see the [Supertokens

## Publish Your Plugin

After adding a version to your plugin, configuring your plugin settings, and tagging your repository, it's time to publish your plugin. Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.
After developing your plugin it's time to get it for release.
To do this, you'll need to add a version to your plugin, tag your repository, and finally publish it through the Amplication UI.

Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.

### Add Versions to Your Plugin

After developing your plugin and to get it ready for release, you'll need to version it in both Amplication and your Git repository.

First, disable dev versions by toggling the `Enable Dev Version` into the off state.

![Disable Dev Versions](./assets/private-plugins/disable-dev-version.png)

Next, let's add a version through the Amplication UI:

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)

### Tag Your Git Repository

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.

Create a tag with your Plugin ID and version from the previous step:

```bash
git tag "your-plugin-id@0.1.0"
```

Push the tag to your remote repository:

```bash
git push origin "your-plugin-id@0.1.0"
```

### Publish Your Plugin

1. Go to your Platform Console
2. Click on "Publish New Version" in your Platform Changes sidebar
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Feb 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modifieddocs/plugins/assets/private-plugins/add-new-plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions docs/plugins/private-plugins.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,17 +43,6 @@ Never use the same repository for private plugins and generated services to avoi

![Publish Your Platform Console Changes](./assets/private-plugins/configure-git-settings.png)

## Add a New Private Plugin

Next, add a new private plugin to your Platform Console:

1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. Enter a unique name using kebab-case (e.g., `acme-corp-authentication`)
3. Set the plugin's **Display Name** and **Description** - these will appear in the UI when selecting plugins
4. Choose the appropriate code generator (Node.js or .NET) that matches your target services

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

## Set Up Your Private Plugin Folder

After creating the plugin entry in the Platform Console, set up your development environment.
Expand DownExpand Up@@ -122,54 +111,72 @@ Follow the steps below to complete this process:
mv plugins/dotnet-db-postgres your-plugin-id
```

## Develop Your Plugin
## Add a New Private Plugin

Now that your plugin structure is set up, it's time to start building your plugin.
We've prepared several resources and reference materials to help guide your plugin development process.
Next, add a new private plugin to your Platform Console:

Core Documentation:
1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. A modal appears that scans your connected Git repository for private plugins
3. Select your plugin from the list of found plugins

- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)
:::note
Only plugins that are properly structured within the `plugins` folder of your connected Git repository will be detected.
:::

Community Plugin Examples:
![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples
## Configure Your Plugin

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
After adding your plugin, you'll need to configure its settings:

1. **Plugin ID**: Automatically set based on your plugin's folder name in the Git repository. This can only be modified by renaming the folder and re-adding the plugin.
2. **Display Name**: The human-readable name for your plugin that appears in the UI. By default, it matches the Plugin ID but can be customized for better clarity.
3. **Icon**: Choose from a variety of technology-specific icons to help visually identify your plugin. You can also customize the icon's color to match your categorization system.
4. **Code Generator**: Select the appropriate code generator for your plugin:
- Node.js
- .NET
- Blueprints (for custom blueprint solutions)
5. **Blueprint Compatibility**: Optionally restrict your plugin to work with specific blueprints by selecting them from the dropdown menu.
6. **Description**: Provide a detailed description of your plugin's purpose. A detailed description helps developers quickly understand and choose the right plugin for their needs.

:::tip
A meaningful display name, icon, and description will help developers quickly identify and understand your plugin's purpose when browsing the plugin list in services and templates.
:::

## Add Versions to Your Plugin
![Configure Your Private Plugin's Settings](./assets/private-plugins/configure-plugin.png)

After developing your plugin, you'll need to version it both in Amplication and your Git repository.
First, let's add a version through the Amplication UI:
## Develop Your Plugin

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)
Now that your plugin structure is set up, it's time to start building your plugin.

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)
First, enable dev versions by toggling the `Enable Dev Version` into the on state.

## Tag Your Git Repository
![Enable Dev Versions](./assets/private-plugins/enable-dev-versions.png)

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.
Dev Versions streamline the plugin development process by automatically using the latest code from your repository's base branch.
This eliminates the need to publish new versions during development and testing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "dev" version must be specifically selected in the plugin installation settings to use the dev version.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuval-hazaz If I'm understanding you correctly, the plugin installation settings page, should have a setting to use the development version?

This page:
Screen Shot 2024-12-18 at 7 58 41 PM

This is separate from the dev versions toggle that developers have to toggle on the plugin repository private plugin settings page?

Screen Shot 2024-12-18 at 7 59 53 PM


Create a tag with your Plugin ID and version from the previous step:
Dev Versions makes the development process much smoother.
The plugin code will be pulled from the base branch set at the Git Settings.
The new changes in your plugin folder are immediately available for testing.

```bash
git tag "your-plugin-id@0.1.0"
```
Next, we've prepared several resources and reference materials to help guide your plugin development process.

Push the tag to your remote repository:
Core Documentation:

```bash
git push origin "your-plugin-id@0.1.0"
```
- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)

Community Plugin Examples:

## Configure Plugin Settings
- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
:::

### Add Plugin Settings

Plugin settings allow you to define customizable options that users can configure when using your plugin. These settings can include API keys, feature flags, or other configuration values that modify your plugin's behavior.

Expand All@@ -196,7 +203,45 @@ For a real-world example of using settings in your plugin, see the [Supertokens

## Publish Your Plugin

After adding a version to your plugin, configuring your plugin settings, and tagging your repository, it's time to publish your plugin. Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.
After developing your plugin it's time to get it for release.
To do this, you'll need to add a version to your plugin, tag your repository, and finally publish it through the Amplication UI.

Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.

### Add Versions to Your Plugin

After developing your plugin and to get it ready for release, you'll need to version it in both Amplication and your Git repository.

First, disable dev versions by toggling the `Enable Dev Version` into the off state.

![Disable Dev Versions](./assets/private-plugins/disable-dev-version.png)

Next, let's add a version through the Amplication UI:

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)

### Tag Your Git Repository

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.

Create a tag with your Plugin ID and version from the previous step:

```bash
git tag "your-plugin-id@0.1.0"
```

Push the tag to your remote repository:

```bash
git push origin "your-plugin-id@0.1.0"
```

### Publish Your Plugin

1. Go to your Platform Console
2. Click on "Publish New Version" in your Platform Changes sidebar
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modifieddocs/plugins/assets/private-plugins/add-new-plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions docs/plugins/private-plugins.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,17 +43,6 @@ Never use the same repository for private plugins and generated services to avoi

![Publish Your Platform Console Changes](./assets/private-plugins/configure-git-settings.png)

## Add a New Private Plugin

Next, add a new private plugin to your Platform Console:

1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. Enter a unique name using kebab-case (e.g., `acme-corp-authentication`)
3. Set the plugin's **Display Name** and **Description** - these will appear in the UI when selecting plugins
4. Choose the appropriate code generator (Node.js or .NET) that matches your target services

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

## Set Up Your Private Plugin Folder

After creating the plugin entry in the Platform Console, set up your development environment.
Expand DownExpand Up@@ -122,54 +111,72 @@ Follow the steps below to complete this process:
mv plugins/dotnet-db-postgres your-plugin-id
```

## Develop Your Plugin
## Add a New Private Plugin

Now that your plugin structure is set up, it's time to start building your plugin.
We've prepared several resources and reference materials to help guide your plugin development process.
Next, add a new private plugin to your Platform Console:

Core Documentation:
1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. A modal appears that scans your connected Git repository for private plugins
3. Select your plugin from the list of found plugins

- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)
:::note
Only plugins that are properly structured within the `plugins` folder of your connected Git repository will be detected.
:::

Community Plugin Examples:
![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples
## Configure Your Plugin

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
After adding your plugin, you'll need to configure its settings:

1. **Plugin ID**: Automatically set based on your plugin's folder name in the Git repository. This can only be modified by renaming the folder and re-adding the plugin.
2. **Display Name**: The human-readable name for your plugin that appears in the UI. By default, it matches the Plugin ID but can be customized for better clarity.
3. **Icon**: Choose from a variety of technology-specific icons to help visually identify your plugin. You can also customize the icon's color to match your categorization system.
4. **Code Generator**: Select the appropriate code generator for your plugin:
- Node.js
- .NET
- Blueprints (for custom blueprint solutions)
5. **Blueprint Compatibility**: Optionally restrict your plugin to work with specific blueprints by selecting them from the dropdown menu.
6. **Description**: Provide a detailed description of your plugin's purpose. A detailed description helps developers quickly understand and choose the right plugin for their needs.

:::tip
A meaningful display name, icon, and description will help developers quickly identify and understand your plugin's purpose when browsing the plugin list in services and templates.
:::

## Add Versions to Your Plugin
![Configure Your Private Plugin's Settings](./assets/private-plugins/configure-plugin.png)

After developing your plugin, you'll need to version it both in Amplication and your Git repository.
First, let's add a version through the Amplication UI:
## Develop Your Plugin

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)
Now that your plugin structure is set up, it's time to start building your plugin.

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)
First, enable dev versions by toggling the `Enable Dev Version` into the on state.

## Tag Your Git Repository
![Enable Dev Versions](./assets/private-plugins/enable-dev-versions.png)

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.
Dev Versions streamline the plugin development process by automatically using the latest code from your repository's base branch.
This eliminates the need to publish new versions during development and testing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "dev" version must be specifically selected in the plugin installation settings to use the dev version.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuval-hazaz If I'm understanding you correctly, the plugin installation settings page, should have a setting to use the development version?

This page:
Screen Shot 2024-12-18 at 7 58 41 PM

This is separate from the dev versions toggle that developers have to toggle on the plugin repository private plugin settings page?

Screen Shot 2024-12-18 at 7 59 53 PM


Create a tag with your Plugin ID and version from the previous step:
Dev Versions makes the development process much smoother.
The plugin code will be pulled from the base branch set at the Git Settings.
The new changes in your plugin folder are immediately available for testing.

```bash
git tag "your-plugin-id@0.1.0"
```
Next, we've prepared several resources and reference materials to help guide your plugin development process.

Push the tag to your remote repository:
Core Documentation:

```bash
git push origin "your-plugin-id@0.1.0"
```
- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)

Community Plugin Examples:

## Configure Plugin Settings
- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
:::

### Add Plugin Settings

Plugin settings allow you to define customizable options that users can configure when using your plugin. These settings can include API keys, feature flags, or other configuration values that modify your plugin's behavior.

Expand All@@ -196,7 +203,45 @@ For a real-world example of using settings in your plugin, see the [Supertokens

## Publish Your Plugin

After adding a version to your plugin, configuring your plugin settings, and tagging your repository, it's time to publish your plugin. Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.
After developing your plugin it's time to get it for release.
To do this, you'll need to add a version to your plugin, tag your repository, and finally publish it through the Amplication UI.

Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.

### Add Versions to Your Plugin

After developing your plugin and to get it ready for release, you'll need to version it in both Amplication and your Git repository.

First, disable dev versions by toggling the `Enable Dev Version` into the off state.

![Disable Dev Versions](./assets/private-plugins/disable-dev-version.png)

Next, let's add a version through the Amplication UI:

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)

### Tag Your Git Repository

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.

Create a tag with your Plugin ID and version from the previous step:

```bash
git tag "your-plugin-id@0.1.0"
```

Push the tag to your remote repository:

```bash
git push origin "your-plugin-id@0.1.0"
```

### Publish Your Plugin

1. Go to your Platform Console
2. Click on "Publish New Version" in your Platform Changes sidebar
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Feb 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modifieddocs/plugins/assets/private-plugins/add-new-plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions docs/plugins/private-plugins.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,17 +43,6 @@ Never use the same repository for private plugins and generated services to avoi

![Publish Your Platform Console Changes](./assets/private-plugins/configure-git-settings.png)

## Add a New Private Plugin

Next, add a new private plugin to your Platform Console:

1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. Enter a unique name using kebab-case (e.g., `acme-corp-authentication`)
3. Set the plugin's **Display Name** and **Description** - these will appear in the UI when selecting plugins
4. Choose the appropriate code generator (Node.js or .NET) that matches your target services

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

## Set Up Your Private Plugin Folder

After creating the plugin entry in the Platform Console, set up your development environment.
Expand DownExpand Up@@ -122,54 +111,72 @@ Follow the steps below to complete this process:
mv plugins/dotnet-db-postgres your-plugin-id
```

## Develop Your Plugin
## Add a New Private Plugin

Now that your plugin structure is set up, it's time to start building your plugin.
We've prepared several resources and reference materials to help guide your plugin development process.
Next, add a new private plugin to your Platform Console:

Core Documentation:
1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. A modal appears that scans your connected Git repository for private plugins
3. Select your plugin from the list of found plugins

- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)
:::note
Only plugins that are properly structured within the `plugins` folder of your connected Git repository will be detected.
:::

Community Plugin Examples:
![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples
## Configure Your Plugin

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
After adding your plugin, you'll need to configure its settings:

1. **Plugin ID**: Automatically set based on your plugin's folder name in the Git repository. This can only be modified by renaming the folder and re-adding the plugin.
2. **Display Name**: The human-readable name for your plugin that appears in the UI. By default, it matches the Plugin ID but can be customized for better clarity.
3. **Icon**: Choose from a variety of technology-specific icons to help visually identify your plugin. You can also customize the icon's color to match your categorization system.
4. **Code Generator**: Select the appropriate code generator for your plugin:
- Node.js
- .NET
- Blueprints (for custom blueprint solutions)
5. **Blueprint Compatibility**: Optionally restrict your plugin to work with specific blueprints by selecting them from the dropdown menu.
6. **Description**: Provide a detailed description of your plugin's purpose. A detailed description helps developers quickly understand and choose the right plugin for their needs.

:::tip
A meaningful display name, icon, and description will help developers quickly identify and understand your plugin's purpose when browsing the plugin list in services and templates.
:::

## Add Versions to Your Plugin
![Configure Your Private Plugin's Settings](./assets/private-plugins/configure-plugin.png)

After developing your plugin, you'll need to version it both in Amplication and your Git repository.
First, let's add a version through the Amplication UI:
## Develop Your Plugin

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)
Now that your plugin structure is set up, it's time to start building your plugin.

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)
First, enable dev versions by toggling the `Enable Dev Version` into the on state.

## Tag Your Git Repository
![Enable Dev Versions](./assets/private-plugins/enable-dev-versions.png)

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.
Dev Versions streamline the plugin development process by automatically using the latest code from your repository's base branch.
This eliminates the need to publish new versions during development and testing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "dev" version must be specifically selected in the plugin installation settings to use the dev version.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuval-hazaz If I'm understanding you correctly, the plugin installation settings page, should have a setting to use the development version?

This page:
Screen Shot 2024-12-18 at 7 58 41 PM

This is separate from the dev versions toggle that developers have to toggle on the plugin repository private plugin settings page?

Screen Shot 2024-12-18 at 7 59 53 PM


Create a tag with your Plugin ID and version from the previous step:
Dev Versions makes the development process much smoother.
The plugin code will be pulled from the base branch set at the Git Settings.
The new changes in your plugin folder are immediately available for testing.

```bash
git tag "your-plugin-id@0.1.0"
```
Next, we've prepared several resources and reference materials to help guide your plugin development process.

Push the tag to your remote repository:
Core Documentation:

```bash
git push origin "your-plugin-id@0.1.0"
```
- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)

Community Plugin Examples:

## Configure Plugin Settings
- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
:::

### Add Plugin Settings

Plugin settings allow you to define customizable options that users can configure when using your plugin. These settings can include API keys, feature flags, or other configuration values that modify your plugin's behavior.

Expand All@@ -196,7 +203,45 @@ For a real-world example of using settings in your plugin, see the [Supertokens

## Publish Your Plugin

After adding a version to your plugin, configuring your plugin settings, and tagging your repository, it's time to publish your plugin. Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.
After developing your plugin it's time to get it for release.
To do this, you'll need to add a version to your plugin, tag your repository, and finally publish it through the Amplication UI.

Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.

### Add Versions to Your Plugin

After developing your plugin and to get it ready for release, you'll need to version it in both Amplication and your Git repository.

First, disable dev versions by toggling the `Enable Dev Version` into the off state.

![Disable Dev Versions](./assets/private-plugins/disable-dev-version.png)

Next, let's add a version through the Amplication UI:

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)

### Tag Your Git Repository

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.

Create a tag with your Plugin ID and version from the previous step:

```bash
git tag "your-plugin-id@0.1.0"
```

Push the tag to your remote repository:

```bash
git push origin "your-plugin-id@0.1.0"
```

### Publish Your Plugin

1. Go to your Platform Console
2. Click on "Publish New Version" in your Platform Changes sidebar
Expand Down
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Feb 6, 2025. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modifieddocs/plugins/assets/private-plugins/add-new-plugin.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
129 changes: 87 additions & 42 deletions docs/plugins/private-plugins.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -43,17 +43,6 @@ Never use the same repository for private plugins and generated services to avoi

![Publish Your Platform Console Changes](./assets/private-plugins/configure-git-settings.png)

## Add a New Private Plugin

Next, add a new private plugin to your Platform Console:

1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. Enter a unique name using kebab-case (e.g., `acme-corp-authentication`)
3. Set the plugin's **Display Name** and **Description** - these will appear in the UI when selecting plugins
4. Choose the appropriate code generator (Node.js or .NET) that matches your target services

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

## Set Up Your Private Plugin Folder

After creating the plugin entry in the Platform Console, set up your development environment.
Expand DownExpand Up@@ -122,54 +111,72 @@ Follow the steps below to complete this process:
mv plugins/dotnet-db-postgres your-plugin-id
```

## Develop Your Plugin
## Add a New Private Plugin

Now that your plugin structure is set up, it's time to start building your plugin.
We've prepared several resources and reference materials to help guide your plugin development process.
Next, add a new private plugin to your Platform Console:

Core Documentation:
1. In the Private Plugins tab's sidebar, click the `Add Private Plugin` field
2. A modal appears that scans your connected Git repository for private plugins
3. Select your plugin from the list of found plugins

- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)
:::note
Only plugins that are properly structured within the `plugins` folder of your connected Git repository will be detected.
:::

Community Plugin Examples:
![Publish Your Platform Console Changes](./assets/private-plugins/add-new-plugin.png)

- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples
## Configure Your Plugin

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
After adding your plugin, you'll need to configure its settings:

1. **Plugin ID**: Automatically set based on your plugin's folder name in the Git repository. This can only be modified by renaming the folder and re-adding the plugin.
2. **Display Name**: The human-readable name for your plugin that appears in the UI. By default, it matches the Plugin ID but can be customized for better clarity.
3. **Icon**: Choose from a variety of technology-specific icons to help visually identify your plugin. You can also customize the icon's color to match your categorization system.
4. **Code Generator**: Select the appropriate code generator for your plugin:
- Node.js
- .NET
- Blueprints (for custom blueprint solutions)
5. **Blueprint Compatibility**: Optionally restrict your plugin to work with specific blueprints by selecting them from the dropdown menu.
6. **Description**: Provide a detailed description of your plugin's purpose. A detailed description helps developers quickly understand and choose the right plugin for their needs.

:::tip
A meaningful display name, icon, and description will help developers quickly identify and understand your plugin's purpose when browsing the plugin list in services and templates.
:::

## Add Versions to Your Plugin
![Configure Your Private Plugin's Settings](./assets/private-plugins/configure-plugin.png)

After developing your plugin, you'll need to version it both in Amplication and your Git repository.
First, let's add a version through the Amplication UI:
## Develop Your Plugin

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)
Now that your plugin structure is set up, it's time to start building your plugin.

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)
First, enable dev versions by toggling the `Enable Dev Version` into the on state.

## Tag Your Git Repository
![Enable Dev Versions](./assets/private-plugins/enable-dev-versions.png)

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.
Dev Versions streamline the plugin development process by automatically using the latest code from your repository's base branch.
This eliminates the need to publish new versions during development and testing.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "dev" version must be specifically selected in the plugin installation settings to use the dev version.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yuval-hazaz If I'm understanding you correctly, the plugin installation settings page, should have a setting to use the development version?

This page:
Screen Shot 2024-12-18 at 7 58 41 PM

This is separate from the dev versions toggle that developers have to toggle on the plugin repository private plugin settings page?

Screen Shot 2024-12-18 at 7 59 53 PM


Create a tag with your Plugin ID and version from the previous step:
Dev Versions makes the development process much smoother.
The plugin code will be pulled from the base branch set at the Git Settings.
The new changes in your plugin folder are immediately available for testing.

```bash
git tag "your-plugin-id@0.1.0"
```
Next, we've prepared several resources and reference materials to help guide your plugin development process.

Push the tag to your remote repository:
Core Documentation:

```bash
git push origin "your-plugin-id@0.1.0"
```
- [Private Plugins Overview](https://docs.amplication.com/plugins/overview/)
- [.NET Plugin Events Reference Guide](https://docs.amplication.com/plugins/dotnet-plugin-events/create-server/)
- [Node.js Plugin Events Reference Guide](https://docs.amplication.com/plugins/plugin-events/create-server/)

Community Plugin Examples:

## Configure Plugin Settings
- Browse the [official plugins repository](https://github.com/amplication/plugins/tree/master/plugins) for real-world examples

:::note
Study the published Node.js and .NET community plugins for best practices and guidance on how to structure your code effectively.
:::

### Add Plugin Settings

Plugin settings allow you to define customizable options that users can configure when using your plugin. These settings can include API keys, feature flags, or other configuration values that modify your plugin's behavior.

Expand All@@ -196,7 +203,45 @@ For a real-world example of using settings in your plugin, see the [Supertokens

## Publish Your Plugin

After adding a version to your plugin, configuring your plugin settings, and tagging your repository, it's time to publish your plugin. Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.
After developing your plugin it's time to get it for release.
To do this, you'll need to add a version to your plugin, tag your repository, and finally publish it through the Amplication UI.

Publishing makes your plugin version available for use in services and templates, and sets it as the latest version.

### Add Versions to Your Plugin

After developing your plugin and to get it ready for release, you'll need to version it in both Amplication and your Git repository.

First, disable dev versions by toggling the `Enable Dev Version` into the off state.

![Disable Dev Versions](./assets/private-plugins/disable-dev-version.png)

Next, let's add a version through the Amplication UI:

1. Navigate to the Private Plugins tab and select your plugin
2. Scroll to **Add New Version** and click `Add Version`
3. Note the version number you assign (e.g., `0.1.0`)

![Publish Your Platform Console Changes](./assets/private-plugins/add-new-version.png)

### Tag Your Git Repository

Next, let's add a git tag to your plugin.
Amplication uses Git tags to identify plugin versions during code generation.

Create a tag with your Plugin ID and version from the previous step:

```bash
git tag "your-plugin-id@0.1.0"
```

Push the tag to your remote repository:

```bash
git push origin "your-plugin-id@0.1.0"
```

### Publish Your Plugin

1. Go to your Platform Console
2. Click on "Publish New Version" in your Platform Changes sidebar
Expand Down