From a2eb25ddd02ecb16398696474afbbfaa5082844c Mon Sep 17 00:00:00 2001 From: Lou Bichard Date: Mon, 24 Nov 2025 15:18:52 +0000 Subject: [PATCH] Add Backstage catalog files for all components Add backstage.yml files to enable Backstage integration: - System definition at root level - Component definitions for catalog service, frontend, and database - API definition for catalog REST endpoints - Proper component relationships and dependencies Co-authored-by: Ona --- backend/catalog/backstage.yml | 50 +++++++++++++++++++++++++++++++++++ backstage.yml | 22 +++++++++++++++ database/backstage.yml | 16 +++++++++++ frontend/backstage.yml | 22 +++++++++++++++ 4 files changed, 110 insertions(+) create mode 100644 backend/catalog/backstage.yml create mode 100644 backstage.yml create mode 100644 database/backstage.yml create mode 100644 frontend/backstage.yml diff --git a/backend/catalog/backstage.yml b/backend/catalog/backstage.yml new file mode 100644 index 0000000..5d2ac6c --- /dev/null +++ b/backend/catalog/backstage.yml @@ -0,0 +1,50 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: catalog-service + description: Catalog service for Gitpod Flix + tags: + - nodejs + - express + - typescript + - api + annotations: + github.com/project-slug: gitpod-samples/gitpodflix-demo +spec: + type: service + lifecycle: production + owner: team-platform + system: gitpodflix + providesApis: + - catalog-api + dependsOn: + - component:database-service +--- +apiVersion: backstage.io/v1alpha1 +kind: API +metadata: + name: catalog-api + description: REST API for movie catalog operations +spec: + type: openapi + lifecycle: production + owner: team-platform + system: gitpodflix + definition: | + openapi: 3.0.0 + info: + title: Catalog API + version: 1.0.0 + paths: + /api/movies: + get: + summary: Get all movies + /api/search: + get: + summary: Search movies with filters + /api/suggestions: + get: + summary: Get search suggestions + /health: + get: + summary: Service health check diff --git a/backstage.yml b/backstage.yml new file mode 100644 index 0000000..147983c --- /dev/null +++ b/backstage.yml @@ -0,0 +1,22 @@ +apiVersion: backstage.io/v1alpha1 +kind: System +metadata: + name: gitpodflix + description: Modern streaming platform demo showcasing full-stack development in Gitpod + tags: + - streaming + - demo + - full-stack + annotations: + github.com/project-slug: gitpod-samples/gitpodflix-demo +spec: + owner: team-platform + domain: media +--- +apiVersion: backstage.io/v1alpha1 +kind: Domain +metadata: + name: media + description: Media and streaming services domain +spec: + owner: team-platform diff --git a/database/backstage.yml b/database/backstage.yml new file mode 100644 index 0000000..5f2d33b --- /dev/null +++ b/database/backstage.yml @@ -0,0 +1,16 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: database-service + description: PostgreSQL database with full-text search for movie catalog + tags: + - postgresql + - database + - docker + annotations: + github.com/project-slug: gitpod-samples/gitpodflix-demo +spec: + type: database + lifecycle: production + owner: team-platform + system: gitpodflix diff --git a/frontend/backstage.yml b/frontend/backstage.yml new file mode 100644 index 0000000..6a8afad --- /dev/null +++ b/frontend/backstage.yml @@ -0,0 +1,22 @@ +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: frontend + description: React frontend application for Gitpod Flix streaming platform + tags: + - react + - typescript + - vite + - tailwindcss + - frontend + annotations: + github.com/project-slug: gitpod-samples/gitpodflix-demo +spec: + type: website + lifecycle: production + owner: team-platform + system: gitpodflix + consumesApis: + - catalog-api + dependsOn: + - component:catalog-service