Latest Threat Research:SANDWORM_MODE: Shai-Hulud-Style npm Worm Hijacks CI Workflows and Poisons AI Toolchains.Details
Socket
Book a DemoInstallSign in
Socket

@veecode-platform/backstage-plugin-vee

Package Overview
Dependencies
Maintainers
3
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@veecode-platform/backstage-plugin-vee

latest
npmnpm
Version
0.4.0
Version published
Maintainers
3
Created
Source

Vee

Our community

💬 Join Us

Join our community to resolve questions about our Plugins. We look forward to welcoming you!

  Go to Community  🚀



🚀 Getting started:

Before installing the plugin, there are some prerequisites to ensure its functionality:

  • Have a locally installed Backstage project, :heavy_check_mark: How to create a Backstage app :page_with_curl: .
  • Have the Vee Backend plugin installed on your Backstage, see how to install here.
  • Have git in the docker image that will be uploaded to your environment.

If you are using yarn 3.x:

yarn workspace app add @veecode-platform/backstage-plugin-vee

If you are using other versions:

yarn add --cwd packages/app @veecode-platform/backstage-plugin-vee  

Configuration ⚙️

1- Add Vee key in AppConfig

In the app-config.yaml file, add the configuration:

ℹ️ As instructed in the documentation for the backend plugin.

vee:
  openai:
    apiBaseUrl: https://api.openai.com/v1
    apiKey: ${OPENAI_API_KEY}
    model: gpt-4o #The desired model, for best results use gpt-4o

E adicionar um config.d.ts em seu packages > app :

export interface Config {
  /**
  * Enable to view the URL of the specific catalog where the templates generated by AI will be saved
  * @visibility frontend 
  */
  vee?:{
  /**
  * @visibility frontend
  */
    openai?: {
      /**
      * @visibility frontend
      */
      templateGeneration?: {
      /**
      * @visibility frontend
      */
        catalog?: string;
      }
    }
  }
}

2- Annotations

The plug-in recognizes 1 annotations for its operation, the vee/engine,but at the moment this annotation is not mandatory, because the assistant is only able to receive the openAI engine in this first version, so whether or not you enter the annotation won't be necessary. In any case, informing the annotation would make the catalog-info.yaml look like this:

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: "Component A"
  description: "An example"
  annotations:
    github.com/project-slug: test/ComponentA
    backstage.io/techdocs-ref: dir:.
+   vee/engine: openAI
   
spec:
  type: service
  lifecycle: prod
  owner: "devops"

UI 💻

In the design of the plugin, the assistant fits into the overview of the entities, but if in your development there is a overview for each type of kind, apply those that you think best suit our proposal. In this example we'll add to the overview of all the entities:

... 
+ import { AssistantAIContent } from '@veecode-platform/backstage-plugin-vee';

...

const overviewContent = (
  <Grid container spacing={3} alignItems="stretch">
    {entityWarningContent}
    <Grid item md={6}>
      <EntityAboutCard variant="gridItem" />
    </Grid>
    <Grid item md={6} xs={12}>
      <EntityCatalogGraphCard variant="gridItem" height={400} />
    </Grid>
    <Grid item md={4} xs={12}>
      <EntityLinksCard />
    </Grid>
+    <AssistantAIContent/>
  </Grid>
);

...

👉 Overview

The assistant's icon will remain fixed on the entity's screen:

ft1

When triggered, the service receives the location of the entity, and from there, with the code from the repository, a context is created for the AI:

Ft2

At this stage, we have iteration options in which the assistant will propose improvements or analyses:

ft3

So this detailed analysis and the pull-request proposal:

ft4

If the changes are pertinent, the pullrquest is created, the new branch will have all the suggested changes and additions, and the diff analysis can be done both in your git provider and in your IDE:

ft5



Template generation 🎨

Vee also has a template generation feature. To do this, follow these configuration steps:Vee also has a template generation feature. To do this, follow these configuration steps:

vee:
  openai:
    apiBaseUrl: https://api.openai.com/v1
    apiKey: ${OPENAI_API_KEY}
    model: gpt-4o #The desired model, for best results use gpt-4o
+   templateGeneration:
+      model: ${CUSTOM_MODEL} <- This model needs to be trained to generate qualified templates.
+      catalog: ${TEMPLATE_CATALOG_URL}

Now let's take a tour of the UI and its features:

Menu

The first step to enhancing your backstage with Vee is to add the side menu:

menu-lateral

To do this, we need to change the following component in your packages > app:

...imports
+ import { AssistantAIMenu } from '@veecode-platform/backstage-plugin-vee';

.... 
export const Root = ({ children }: PropsWithChildren<{}>) => (
  <SidebarPage>
    <Sidebar>
      <SidebarLogo />
      <SidebarGroup label="Search" icon={<SearchIcon />} to="/search">
        <SidebarSearchModal />
      </SidebarGroup>
      <SidebarDivider />
      <SidebarGroup label="Menu" icon={<MenuIcon />}>
        {/* Global nav, not org-specific */}
        <SidebarItem icon={HomeIcon} to="catalog" text="Home" />
        <SidebarItem icon={ExtensionIcon} to="api-docs" text="APIs" />
        <SidebarItem icon={ExtensionIcon} to="cluster-explorer" text="Cluster" />
        <SidebarItem icon={LockIcon} to="vault-explorer" text="Vault"/>
        <SidebarItem icon={LibraryBooks} to="docs" text="Docs" />
        <SidebarItem icon={CreateComponentIcon} to="create" text="Create..." />
+        <AssistantAIMenu/>
        {/* End global nav */}
        <SidebarDivider />
        <SidebarScrollWrapper>
          <SidebarItem icon={MapIcon} to="tech-radar" text="Tech Radar" />
        </SidebarScrollWrapper>
      </SidebarGroup>
      <SidebarSpace />
      <SidebarDivider />
      <SidebarGroup
        label="Settings"
        icon={<UserSettingsSignInAvatar />}
        to="/settings"
      >
        <SidebarSettings />
      </SidebarGroup>
    </Sidebar>
    {children}
  </SidebarPage>
);

After that, we have access to the initial dashboard:

vee-home

Select the "Scaffolder AI" option and then select the stack that will serve as the basis for the new template:

generate-template-select-stack

Each stack has its own list of predefined plugins:

generate-template-seelect-plugin

Then we name the new template:

generate-plugin-add-templatename

And we're waiting for the AI to generate:

generate-template-animation

The output is presented with the options of downloading the zipped folder or submitting a pullRequest to the template catalog:

template-output



🥇 Admin panel

You may be wondering how to manage all the information so that the user can carry out the flow, and that's why we've created the settings menu, which theoretically won't be exposed to all users, it's permissioned, below we'll show you the necessary permissions...
vee-settings

🛰️ Stacks

stack-manager-list The Stacks are the basis for generating the template.
create-stack When you create a stack, you need to give it

  • A name for it.
  • The url of the base repository
  • Plugins that the template will use** (You need to register the plugins first, in the plugins section we'll explain more)

The name is free, you can identify your stack by the language or framework or tool it refers to, example "Aws Ec2".
The url is the url of a repository that will serve as a base, that is, the repository that follows the entire standard and that you want to be replicated in new projects.When you create a stack, you need to give it

  • A name for it.

  • The url of the base repository

  • Plugins that the template will use** (You need to register the plugins first, in the plugins section we'll explain more)

The name is free, you can identify your stack by the language or framework or tool it refers to, example "Aws Ec2".

The url is the url of a repository that will serve as a base, that is, the repository that follows the entire standard and that you want to be replicated in new projects.


🎲 Plugins

The plugins serve the stacks, so it is important that they are registered first.
Basically they need their identification name and the documentation url for each one, this information will be entered at the prompt taken to the AI engine.The plugins serve the stacks, so it is important that they are registered first.

Basically they need their identification name and the documentation url for each one, this information will be entered at the prompt taken to the AI engine.
pluginlist-manager

create-plugin


✔️ Fixed Options

This menu is for configuring the options set in the code analysis wizard. For each type of entity, we can set options with customized prompts that will enrich the final prompt:
create-fixed-options create-fixed-optionsw create-fixed-options3



🤖 Training your AI model

To ensure that the results follow the expected pattern, we need to train with the model used.
Here's how ➡️ click.



🔐 Permissions

The permissions for the first version are broader, less granular and follow the following patternPermissions The permissions for the first version are broader, less granular and follow the following pattern:

PermissionDescription
veeReadPermissionPermission to read the Vee plugin
veeAnalyzerReadPermissionPermission for the plugin to analyze code
veeAnalyzerSaveChangesInRepoPermissionPermission to save changes to the repository via pull request
veeAccessSettingsPanelPermissionPermission to access settings
veeGenerateTemplatePermissionAccess to the template generation menu
veeSaveTemplatePermissionPermission to save templates
veeManageStacksPermissionManage stacks (create, edit, delete)
veeManagePluginsPermissionManage plugins (create, edit, delete)
veeManageFixedOptionsManage fixed options (create, edit, delete)



💡 To find out more about permissions here

Keywords

backstage

FAQs

Package last updated on 27 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts