Reference implementation of a Steeltoe Initializr UI project generator
Перейти к файлу
Tim Hess 9072cb5c99 remove PR environments when PR closes 2024-02-26 13:57:09 -06:00
.github remove PR environments when PR closes 2024-02-26 13:57:09 -06:00
.mvn/wrapper add PR cleanup, swap to prod workflows (#121) 2024-02-09 16:25:23 -06:00
.vscode Add VS Code support 2023-06-13 09:12:13 -04:00
deploy/docker remove reverse proxy headers that shouldn't be needed 2024-02-10 16:04:36 -06:00
start-client Bump ip from 2.0.0 to 2.0.1 in /start-client 2024-02-26 13:53:27 -06:00
start-site Updates from spring-io/start.spring.io 2024-02-08 11:48:04 -06:00
start-site-verification Updates from spring-io/start.spring.io 2024-02-08 11:48:04 -06:00
.dockerignore Follow Docker/K8s layout of other Initializr projects 2023-06-13 09:10:40 -04:00
.editorconfig add PR cleanup, swap to prod workflows (#121) 2024-02-09 16:25:23 -06:00
.gitignore Move to GitHub Actions and Azure App Service (#119) 2024-02-09 09:32:57 -06:00
Dockerfile embed GTM Id in image 2024-02-12 11:51:31 -06:00
LICENSE.txt URL Cleanup 2019-03-22 10:12:00 +01:00
README.md Move to GitHub Actions and Azure App Service (#119) 2024-02-09 09:32:57 -06:00
USING.adoc Updates from spring-io/start.spring.io 2024-02-08 11:48:04 -06:00
mvnw Upgrade to Maven 3.9.1 2023-04-04 13:45:06 +02:00
mvnw.cmd Upgrade to Maven 3.9.1 2023-04-04 13:45:06 +02:00
pom.xml Updates from spring-io/start.spring.io 2024-02-08 11:48:04 -06:00
using-web-ui.png Add user guide 2020-11-16 10:54:15 +01:00

README.md

Steeltoe InitializrWeb

Steeltoe Initializr UI reference implementation

About

This implementation largely steals from the Spring Initializr Client. The primary differences between the 2 implementations are branding and domain metadata. Branding differences include reference URLs, color schemes, and logos. Domain metadata include metadata differences such as "Java version" vs ".NET Framework" and "Spring Boot" vs "Steeltoe."

Deploying

There are 2 endpoints that the Web UI uses to 1) populate its UI, and 2) generate projects:

  • /api/config/projectMetadata
  • /api/project

For local development, these endpoints are implemented in the development webpack configuration in start-client/webpack.dev.js.

In a remote deployment, those endpoints are implemented by the Initializr API. The deployment should be frontended by an HTTP router that forwards requests to these 2 endpoints to the API server. A sample Kubernetes ingress configuration:

---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: initializr-ingress
  namespace: initializr
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
  rules:
  - host: my.initializr
    http:
      paths:
      - path: /(.*)
        backend:
          serviceName: initializr-web
          servicePort: 80
      - path: /(api/.*)
        backend:
          serviceName: initializr-api
          servicePort: 80