This repository hosts Backstage plugins developed by VeeCode for VeeCode DevPortal, an open-source Backstage distribution for Internal Developer Portals (IDP).
Plugins are published to the @veecode-platform npm namespace in both static and dynamic formats. They are compatible with any Backstage build and with Red Hat Developer Hub (RHDH).
Each workspace groups related plugins together. A workspace is an independent Backstage app used to develop and test its plugins.
| Workspace | Plugins | Description | Status |
|---|---|---|---|
| homepage | veecode-homepage | Homepage plugin | Ready |
| global-header | veecode-global-header | Global header plugin | Ready |
| github-workflows | github-workflows, github-workflows-common, github-workflow-backend | GitHub workflows (frontend + backend + common) | Ready |
| ldap-auth | ldap-auth, ldap-auth-backend | LDAP auth (port from @immobiliarelabs) | Ready |
| kong-tools | scaffolder-backend-module-kong, kong-service-manager, kong-service-manager-backend, kong-service-manager-common, scaffolder-field-extensions-kong | Kong scaffolder actions and service manager | Ready |
| kubernetes | kubernetes-backend-module-getsecret | Kubernetes secret access module | WIP |
| about | about, about-backend | About plugin | ready. |
| dummy | dummy, dummy-backend | Reference implementation for plugin authors | Ready |
Each workspace is self-contained. Navigate to a workspace and run:
cd workspace/<name>
yarn install
yarn start # Start the Backstage hosting appTo build and test:
yarn tsc # TypeScript check
yarn build:all # Build all packages
yarn test:all # Run all tests
yarn lint:all # Lint all filesEvery workspace has a Makefile with standardized targets:
cd workspace/<name>
make help # Show all available commands
make build # Build all static plugins
make build-dynamic # Build all dynamic plugins (uses @red-hat-developer-hub/cli)
make publish # Publish static plugins to npm
make publish-dynamic # Publish dynamic plugins to npm
make set-version VERSION=x.y.z # Set version for all plugins in workspace
make get-version # Show latest published versions
make clean # Full cleanTo copy dynamic plugins to a local DevPortal instance for testing:
make copy-dynamic-pluginsYou can validate publishing locally with Verdaccio:
verdaccio -l 0.0.0.0:4873Some Makefile tasks accept a NPM_REGISTRY parameter to specify a custom registry. For example:
make publish NPM_REGISTRY=http://localhost:4873This is important for testing dynamic plugins publishing (the export-dynamic task may break internal dependencies sometimes).
The dummy workspace (workspace/dummy/) is the canonical reference for plugin authors. It demonstrates:
- Frontend plugin with full-page view, entity cards, and entity tabs
- Backend plugin with HTTP API, service architecture, and dependency injection
- Complete test suite (plugin unit tests, hosting app wiring tests)
- Dynamic plugin support with Docker Compose testing
- Standardized Makefile with all build/publish targets
When creating a new workspace, use dummy as the template to follow.
This monorepo replaces the previous multi-repository setup at veecode-platform/backstage-plugins and veecode-platform/dynamic-plugins. The structure is based on backstage/community-plugins and redhat-developer/rhdh-plugins.