Golden Paths Overview
A golden path is a pre-built, opinionated workflow that takes you from a blank slate to a fully functional, registered, and monitored resource โ in minutes, not days.
ForgePortal ships three golden paths out of the box:
| Journey | What you get |
|---|---|
| Create a Service | New Git repo ยท scaffolded code ยท CI ยท Dockerfile ยท entity registered in catalog |
| Provision Infrastructure | Cloud or local resource ยท Terraform or Helm ยท entity registered as kind: resource |
| Enforce Quality | Automatic maturity evaluation ยท actionable fix PRs via scorecard rules |
These journeys compose: you create a service, provision a database for it, and then enforce it meets a Gold scorecard โ all within ForgePortal.
Journey 1 โ Create a New Serviceโ
Use case: A developer needs a new Node.js (or Spring Boot / Go) microservice with everything wired up from day one.
What happens, step by stepโ
Developer โ Templates โ create-nodejs-service โ fill form
โ
ForgePortal runs actions:
1. scm.createRepo โ new repo on GitHub/GitLab
2. scm.pushFiles โ scaffolds package.json, Dockerfile, CI, README
3. scm.openPullRequest โ opens "chore: initial scaffold" PR
4. catalog.registerEntity โ entity.yaml committed, entity visible in catalog
โ
Developer โ reviews PR โ merges โ service is live
Walk-throughโ
- Go to Templates in the top navigation.
- Click "Create โ" on the Node.js Service card.
- Fill the wizard:
- Service name โ e.g.
payment-service - Owner โ e.g.
team-platform - Description โ short sentence
- Lifecycle โ
experimental(promote toproductionlater) - GitHub Org โ your target org
- Visibility โ
privateorpublic
- Service name โ e.g.
- Click "Create Service".
- Watch the run page โ each step completes in sequence. Links to the new repo and PR appear.
- Open the PR, review the scaffolded files, merge it.
- Go to Catalog โ your new service is already there, with its description, owner, and lifecycle.
What is generatedโ
| File | Purpose |
|---|---|
package.json | Node.js project with recommended scripts |
src/index.ts | Minimal HTTP server (Fastify) |
Dockerfile | Multi-stage production image |
.github/workflows/ci.yml | Lint + test on every push/PR |
README.md | Service documentation stub |
entity.yaml | ForgePortal catalog entry |
Run the Kubernetes plugin on this service to see its pods, or the GitHub Insights plugin to see PR activity and code frequency.
Journey 2 โ Provision Infrastructureโ
Use case: A developer or SRE needs a database, cache, message queue, or Kubernetes cluster โ provisioned consistently, tracked in the catalog, and ready for other services to reference.
Available infrastructure templatesโ
| Template | Destinations | What it creates |
|---|---|---|
| create-database | Local Docker ยท Docker Compose ยท Kubernetes (Bitnami Helm) ยท AWS RDS (Terraform) | PostgreSQL or MySQL database |
| create-cache | Local Docker ยท Docker Compose ยท Kubernetes (Bitnami Helm) ยท AWS ElastiCache (Terraform) | Redis cache |
| create-message-queue | Local Docker ยท Docker Compose ยท Kubernetes (Bitnami Helm) | RabbitMQ or Kafka |
| create-k8s-cluster | kind (local) ยท k3d (local) ยท EKS ยท GKE ยท AKS (Terraform) | Kubernetes cluster |
| create-monitoring-stack | Kubernetes (Helm) ยท Docker Compose | Prometheus + Grafana |
| create-helm-chart | Push to SCM repo | Helm chart for an existing service |
Walk-through: create-database (Kubernetes destination)โ
- Go to Templates โ click "Create โ" on the Create Database card.
- Fill the wizard:
- Database name โ e.g.
orders-db - Engine โ
postgresql - Destination โ
kubernetes - Kubernetes namespace โ e.g.
databases - Storage size โ e.g.
10Gi - Owner โ
team-platform
- Database name โ e.g.
- Click "Create Database".
- ForgePortal runs actions:
- Generates a Helm values file for the Bitnami PostgreSQL chart
- Opens a PR to your infra repo with the Helm values
- Registers a
kind: resourceentity in the catalog (resource:orders-db)
- Merge the PR โ apply with
helm upgrade --install(or your GitOps tool picks it up automatically).
When using the ArgoCD or Flux plugin, your provisioning PR is picked up automatically โ no manual helm command needed. See ArgoCD Plugin and Flux Plugin.
Walk-through: create-k8s-cluster (kind โ local)โ
- Go to Templates โ click "Create โ" on the Create Kubernetes Cluster card.
- Fill the wizard:
- Cluster name โ e.g.
dev-cluster - Destination โ
kind (local) - Node count โ
1(for a local dev cluster) - Kubernetes version โ
1.29
- Cluster name โ e.g.
- Click "Create Cluster".
- ForgePortal generates a
kind-config.yamland asetup.shscript, commits them to your infra repo, and registers akind: resourceentity. - Run
bash setup.shlocally โ your cluster is up in ~2 minutes.
Journey 3 โ Enforce Quality with Scorecardsโ
Use case: An SRE team wants every service to meet a minimum quality standard (Bronze: owner + README; Gold: CI + Dockerfile + security scanning).
How it worksโ
- Scorecards are evaluated automatically when an entity is discovered or updated.
- Each rule maps to a level (Bronze โ Silver โ Gold). The entity achieves the highest level where all rules pass.
- Failing rules that have a fix action show a "Fix โ" button โ clicking it opens a PR in your repo that resolves the issue automatically.
Walk-throughโ
- Open any entity from the Catalog.
- Click the Scorecards tab.
- Read the current level (Bronze / Silver / Gold / pending).
- For any failing rule with a fix button:
- Click "Fix โ".
- A template run starts โ watch it complete.
- A PR is opened in your repo with the fix (e.g. adds a
README.md, or adds the CI workflow file).
- Merge the PR โ the next scorecard evaluation (triggered on push) moves the rule to pass.
Combine scorecards with the GitHub Actions Plugin or your CI pipeline to block merges to main if the Bronze level is not achieved.
Putting It All Togetherโ
Here is the full SRE golden path for onboarding a new microservice end-to-end:
1. pnpm run create-service โ Node.js service ยท repo ยท CI ยท entity registered
2. pnpm run create-database โ PostgreSQL on Kubernetes ยท resource entity registered
3. View entity in Catalog โ See service + relations + annotations
4. Check Scorecards tab โ Bronze: pass Silver: README missing
5. Click "Fix โ" on README โ PR opened โ merge
6. Check Scorecards tab again โ Silver: pass Gold: security scan missing
7. Configure Snyk/SonarCloud โ re-evaluate โ Gold: pass
8. View Kubernetes plugin โ pods running, CPU/mem usage
9. View GitHub Insights plugin โ PRs, commit frequency, contributors
In under 30 minutes, a new service goes from nothing to Gold scorecard ยท running in K8s ยท fully observable.