Skip to content

Change Log

All notable changes to this project will be documented in this file. The format is based on Keep a Changelog.

[2.0.0] - 2026-04-04

Added

  • Episode entity and Episode2* junction tables (Episode2People, Episode2Planets, Episode2Starships, Episode2Vehicles, Episode2Species) as compositions of Show
  • StarWarsEpisode service exposing Episode and Episode2* projections as read-only
  • Show2Planets, Show2Starships, Show2Vehicles, Show2Species replaced by CDS derived views aggregating over Episode2* tables
  • Wookieepedia scraper pipeline: rate-limited MediaWiki API client, disk cache, entity/episode/season extractors, orchestrator, and CLI
  • Full scrape of 11 films and 15 shows with 772 episodes and episode relationships from Wookieepedia
  • Episode data fields: director, writer, season_number, episode_number, air_date, opening_crawl, show title association
  • Clone Wars chronological episode ordering in StarWarsEpisode service
  • Opening crawl texts for main Star Wars saga films
  • Film.episode_id populated from roman numeral in Wookieepedia page title
  • Sub-series pages (e.g. Tales anthology) registered as shows and their episodes correctly attributed
  • Second-pass entity scrape to resolve entities discovered via episode back-references
  • Virtual edit_url field on Media projection in StarWarsShow service, computed by handler
  • Star Wars Media Browser Fiori webapp (list report + object page)
  • Star Wars Films Fiori webapp (list report + object page)
  • Star Wars Shows Fiori webapp with Episodes sub-navigation tab
  • Fiori launchpad page with People, Films, and Shows tiles
  • i18n labels and value helps for Media entity type selection fields
  • Fiori annotations for Media list report and object page
  • VitePress documentation site with animated Star Wars opening crawl homepage, Imperial Dark and Jedi Archives CSS themes, CDS syntax highlighting, and GitHub Pages CI deployment
  • MIDI audio (Imperial March, Jedi Theme) and hexagon SVG logos for VitePress themes
  • VitePress Apps section with per-app documentation pages (People, Media Browser, Film editor, Show/Episode editor) and API overview page
  • Shows & Episodes section in VitePress API sidebar with architecture deep-dive
  • Generated @cds-models type definitions for all services (DataService, StarWarsEpisode, StarWarsFilm, StarWarsPeople, StarWarsPlanet, StarWarsShow, StarWarsSpecies, StarWarsStarship, StarWarsVehicle)
  • readme.mjs custom widdershins wrapper with circular $ref handling to prevent stack overflow during OpenAPI→Markdown generation
  • Generated OpenAPI 3.0 specifications for all services (OData v4 and REST variants)
  • Viewer app Galaxy/Light CSS themes with responsive layout, sort, filter, column-level search, and pagination
  • Viewer app detail panel with field-by-field display and keyboard navigation (arrow keys, Escape)
  • Viewer app row selection with clipboard copy (Tab-delimited), persisted rowKey cleared on entity switch or panel dismiss
  • jsconfig.json for CAP service layer IDE support
  • CAP Cheat Sheet expanded with detailed CDS modeling patterns, handler registration, and common pitfalls

Changed

  • convertData.js rewritten to load flat JSON from scripts/data/raw instead of Django fixtures, with parallel chunk loading and SQLite-safe sequencing
  • Episode loading added to data pipeline; Show2* physical table inserts removed (now derived views)
  • Scraper: episode titles extracted from table rows (not all section wikilinks); season links scoped to level-2/3 headings; show attribution uses episode infobox series field filtered by show title
  • Episode.director and Episode.writer use unbounded String (no length limit)
  • normalizeInteger extended to parse ordinal words (One, Two, …) for season_number
  • Migration handling updated and Episode Fiori annotations improved
  • VitePress copy-content pipeline updated to support Fiori app docs, API restructure, and front-matter title extraction
  • VitePress nav/sidebar restructured: added Apps section, split API into per-service pages, added Shows & Episodes
  • CI docs workflow now also triggers on cap/README.md changes
  • Viewer app index.html rewritten with SRI hashes on all CDN resources, Content-Security-Policy meta tag, and viewport meta
  • README updated with current project structure, Fiori app descriptions, and revised pitfalls section

Fixed

  • Cross-show episode attribution prevented by filtering extractSeasonLinks to the current show title
  • Anthology shows (Tales) without season sub-pages now extract episodes directly from the show page
  • Piped wikilinks in episode infobox now yield the series page title, not the display label
  • Sub-series character relationships accumulated correctly when registering as a show
  • Data quality fixes for sequel trilogy character/planet relationships
  • Obsolete hand-written TypeScript type definitions (cap/types/) replaced by generated @cds-models artifacts
  • Viewer CSP extended with unsafe-eval to allow Vue 3 runtime template compiler
  • Viewer pagination handles backend returning @odata.count=0 without breaking page calculation

[1.8.0] - 2026-03-14

Changed

  • Enhance README and improve project documentation
  • Add PostgreSQL profile-specific model exposure updates across CDS models and service projection
  • Add and expand Star Wars CDS model unit tests, including profile-specific exposure coverage
  • Update project dependencies and bump version to 1.8.0
  • Update dev container setup (Dockerfile and devcontainer.json) for Node.js LTS and Cloud Foundry CLI installation
  • Add CAP modeling and handler guidelines plus validation prompt workflows
  • Add compatibility-safe value-help entity migration (*Values helper entities) while retaining legacy helper entities/projections with deprecation comments
  • BREAKING: remove legacy value-help helper entities/projections (climate, terrain, hair_colors, eye_colors, skin_colors, classification, designation, language) in favor of *Values artifacts
  • Migration details: cap//reference/migration

[1.4.0] - 2024-07-19

Changed

  • CAP version 8.0
  • Update for SAPUI5 1.126.0
  • If you have ran this project locally previously, I recommend deleting your node_modules folder and doing a clean install of all dependencies

[1.3.0] - 2024-03-01

Changed

[1.2.7] - 2024-02-02

Changed

[1.2.5] - 2024-01-10

Changed

[1.2.3] - 2023-09-06

Changed

[1.2.1] - 2023-07-07

Changed

  • Add support for new sqlite database service
  • Add support for new postgres database service

[1.2.0] - 2023-06-28

Changed

  • SAP CAP updated to 7.0 June 2023 Rel - Major Annual Update
  • SAPUI5 update to 1.115.0

[1.1.8] - 2023-02-28

Changed

  • SAP CAP updated to 6.6 Feb 2023 Rel
  • Fixes in the convertData to avoid issues with parallelization and DB constrains
  • SAPUI5 update to 1.111.0

[1.1.5] - 2022-12-19

Changed

[1.1.5] - 2022-11-28

Changed

  • SAP CAP updated to 6.3
  • SAPUI5 update to 1.108.2
  • New Node.js minimal version is 14.18

[1.1.4] - 2022-08-11

Changed

  • SAP CAP updated to 6.1
  • SAPUI5 update to 1.105.0
  • Kyma Helm Charts updated for new functionality in CAP 6.1

Added

  • Update to SAP Cloud Application Programming Model 6.0.x - Yearly Major Release
  • Add Support for Node.js 18.x
  • Added Helm Charts support for deployment on Kyma/K8S

[1.1.0] - 2022-07-05

Changed

  • GraphQL support is now GA by switching to the @sap/cds-graphql dependency. Removal of old GraphQL dependencies.
  • Remove Support Node.js 12.x, minimal version now 14.15 as enforced by @sap/cds itself
  • SAPUI5 update to 1.103.0

Added

  • Update to SAP Cloud Application Programming Model 6.0.x - Yearly Major Release
  • Add Support for Node.js 18.x
  • Added Helm Charts support for deployment on Kyma/K8S

[1.0.7] - 2022-04-14

Changed

Added

[1.0.6] - 2022-03-30

Changed

  • Update to CAP March 2022 5.9
  • Update to SAPUI5 1.100
  • Reactivated experimental GraphQL support. Use from test application with /graphql
  • People App now uses OS setting and adjusts to dark theme - new sap_horizon_dark

Added