Skip to main content

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:

JourneyWhat you get
Create a ServiceNew Git repo ยท scaffolded code ยท CI ยท Dockerfile ยท entity registered in catalog
Provision InfrastructureCloud or local resource ยท Terraform or Helm ยท entity registered as kind: resource
Enforce QualityAutomatic 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โ€‹

  1. Go to Templates in the top navigation.
  2. Click "Create โ†’" on the Node.js Service card.
  3. Fill the wizard:
    • Service name โ€” e.g. payment-service
    • Owner โ€” e.g. team-platform
    • Description โ€” short sentence
    • Lifecycle โ€” experimental (promote to production later)
    • GitHub Org โ€” your target org
    • Visibility โ€” private or public
  4. Click "Create Service".
  5. Watch the run page โ€” each step completes in sequence. Links to the new repo and PR appear.
  6. Open the PR, review the scaffolded files, merge it.
  7. Go to Catalog โ€” your new service is already there, with its description, owner, and lifecycle.

What is generatedโ€‹

FilePurpose
package.jsonNode.js project with recommended scripts
src/index.tsMinimal HTTP server (Fastify)
DockerfileMulti-stage production image
.github/workflows/ci.ymlLint + test on every push/PR
README.mdService documentation stub
entity.yamlForgePortal catalog entry
Next step

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โ€‹

TemplateDestinationsWhat it creates
create-databaseLocal Docker ยท Docker Compose ยท Kubernetes (Bitnami Helm) ยท AWS RDS (Terraform)PostgreSQL or MySQL database
create-cacheLocal Docker ยท Docker Compose ยท Kubernetes (Bitnami Helm) ยท AWS ElastiCache (Terraform)Redis cache
create-message-queueLocal Docker ยท Docker Compose ยท Kubernetes (Bitnami Helm)RabbitMQ or Kafka
create-k8s-clusterkind (local) ยท k3d (local) ยท EKS ยท GKE ยท AKS (Terraform)Kubernetes cluster
create-monitoring-stackKubernetes (Helm) ยท Docker ComposePrometheus + Grafana
create-helm-chartPush to SCM repoHelm chart for an existing service

Walk-through: create-database (Kubernetes destination)โ€‹

  1. Go to Templates โ†’ click "Create โ†’" on the Create Database card.
  2. 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
  3. Click "Create Database".
  4. 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: resource entity in the catalog (resource:orders-db)
  5. Merge the PR โ†’ apply with helm upgrade --install (or your GitOps tool picks it up automatically).
GitOps integration

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)โ€‹

  1. Go to Templates โ†’ click "Create โ†’" on the Create Kubernetes Cluster card.
  2. Fill the wizard:
    • Cluster name โ€” e.g. dev-cluster
    • Destination โ€” kind (local)
    • Node count โ€” 1 (for a local dev cluster)
    • Kubernetes version โ€” 1.29
  3. Click "Create Cluster".
  4. ForgePortal generates a kind-config.yaml and a setup.sh script, commits them to your infra repo, and registers a kind: resource entity.
  5. Run bash setup.sh locally โ†’ 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โ€‹

  1. Scorecards are evaluated automatically when an entity is discovered or updated.
  2. Each rule maps to a level (Bronze โ†’ Silver โ†’ Gold). The entity achieves the highest level where all rules pass.
  3. 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โ€‹

  1. Open any entity from the Catalog.
  2. Click the Scorecards tab.
  3. Read the current level (Bronze / Silver / Gold / pending).
  4. 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).
  5. Merge the PR โ†’ the next scorecard evaluation (triggered on push) moves the rule to pass.
Enforce at org level

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.


Next Stepsโ€‹