Skip to content

Backstage: full entity graph (APIs, dependencies, subcomponents) - #96

Merged
olafkfreund merged 1 commit into
mainfrom
backstage-relations
Jun 5, 2026
Merged

olafkfreund merged 1 commit into
mainfrom
backstage-relations

Conversation

@olafkfreund

Copy link
Copy Markdown
Owner

Expands catalog-info.yaml from a single Component into the complete, code-backed relation graph requested for the Backstage portal.

Entities (13)

Main — rolehunter (service) now declares:

  • providesApis: [rolehunter-api]
  • consumesApis: [anthropic-api, google-gemini-api, openai-api, jsearch-api, linkedin-jobs-api]
  • dependsOn: [component:ollama, resource:rolehunter-db, resource:rolehunter-uploads]

Subcomponents (subcomponentOf: rolehunter) — so the main component has subcomponents:

Component Type Backing code
rolehunter-web website src/components/**, App Router UI
rolehunter-scheduler service src/lib/scheduler, node-cron
rolehunter-pdf service src/lib/pdf, Playwright

Provided API — rolehunter-api (openapi) with a representative spec drawn from the real src/app/api route handlers (jobs, match, applications, cv/rewrite, gaps, health…).

Consumed APIs (external) — Anthropic (src/lib/llm/claude.ts), Gemini (gemini.ts), OpenAI (skill-classify.ts), JSearch/RapidAPI (src/lib/jsearch), LinkedIn (src/lib/linkedin). Modeled type: openapi with a minimal definition + docs link (no fabricated full specs).

Depended-on component — ollama (local LLM runtime, via the ollama SDK in src/lib/llm).

Resources — rolehunter-db (PostgreSQL 16 + pgvector, compose db) and rolehunter-uploads (Docker uploads volume).

Verification

  • ✅ Each kind validated against the live freundcloud catalog via the Backstage MCP (isValid: true).
  • ✅ Full file parses as 13 YAML documents.
  • ✅ CI TechDocs & Catalog re-runs the RoadieHQ entity validator on this change.

🤖 Generated with Claude Code

…nents)

Expand catalog-info.yaml from a single Component into the real graph, all
code-backed:

- providesApis: rolehunter-api (API entity with a representative OpenAPI spec
  drawn from src/app/api route handlers).
- consumesApis: anthropic-api, google-gemini-api, openai-api, jsearch-api,
  linkedin-jobs-api (external API entities; src/lib/llm/* and src/lib/jsearch
  /linkedin).
- dependsOn components: ollama (local LLM runtime, src/lib/llm via ollama SDK).
- dependsOn resources: rolehunter-db (Postgres 16 + pgvector) and
  rolehunter-uploads (Docker uploads volume).
- subcomponents (subcomponentOf: rolehunter): rolehunter-web (Next.js UI,
  src/components), rolehunter-scheduler (node-cron, src/lib/scheduler),
  rolehunter-pdf (Playwright, src/lib/pdf).

13 entities total. Each kind validated against the live freundcloud catalog
via the Backstage MCP (isValid: true); full file parses as 13 YAML documents.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@olafkfreund
olafkfreund merged commit 19a8b17 into main Jun 5, 2026
1 check passed
@olafkfreund
olafkfreund deleted the backstage-relations branch June 5, 2026 19:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant