FOLIO Eureka Platform State Repository - Central source of truth for FOLIO Library Services Platform configuration and component orchestration.
The platform-lsp repository maintains the definitive state of the FOLIO Eureka platform, serving as the single source of truth for platform composition, component versions, and deployment configuration. This repository enables consistent platform deployments across environments by defining all required components, applications, and their exact versions.
The FOLIO Eureka deployment represents a sophisticated microservices architecture with enhanced features compared to traditional FOLIO deployments:
Eureka-Specific Components (Stateful/Daemon Sets):
- π Keycloak: Authentication and authorization service (Stateful-set)
- π Kong: API gateway and traffic management (Daemon-set)
- π mgr-applications: Application registry and management (Replica-set)
- π’ mgr-tenants: Tenant lifecycle management
- π mgr-tenant-entitlements: Tenant permission management
- π§ folio-module-sidecar: Service discovery and proxy sidecars
Infrastructure Services:
- ποΈ PostgreSQL: Primary data storage with multiple databases (Stateful-set)
- π OpenSearch: Search and analytics engine (Stateful-set)
- π¨ Kafka: Event streaming and messaging platform (Stateful-set)
The platform orchestrates 31 application repositories, each containing domain-specific modules:
βββββββββββββββββββββββββββββββββββββββ
β platform-lsp β
β (Platform State Definition) β
β β
β π platform-descriptor.json β
β π¦ package.json & yarn.lock β
β βοΈ stripes.config.js β
β π§ stripes.modules.js β
βββββββββββββββββββ¬ββββββββββββββββββββ
β
Platform State Coordination
β
βββββββββββββββΌββββββββββββββ
β β β
βΌ βΌ βΌ
βββββββββββ βββββββββββ βββββββββββ
βapp-* β βapp-* β βapp-* β
β(31 apps)β β(domain) β β(modules)β
βββββββββββ βββββββββββ βββββββββββ
The platform-descriptor.json is the core artifact defining the complete platform state:
{
"name": "Platform LSP",
"description": "FOLIO Library Services Platform - Eureka Implementation",
"version": "R2-2025-SNAPSHOT.4803"
}"eureka-components": [
{"name": "folio-kong", "version": "3.10.0-SNAPSHOT.16"},
{"name": "folio-keycloak", "version": "26.3.0-SNAPSHOT.53"},
{"name": "folio-module-sidecar", "version": "2.0.6"},
{"name": "mgr-applications", "version": "4.0.0-SNAPSHOT.168"},
{"name": "mgr-tenants", "version": "2.0.1"},
{"name": "mgr-tenant-entitlements", "version": "2.0.8"}
]"applications": {
"required": [
{"name": "app-platform-minimal", "version": "1.0.0-SNAPSHOT.4803"},
{"name": "app-platform-complete", "version": "1.0.0-SNAPSHOT.4808"}
],
"optional": [
{"name": "app-erm-usage", "version": "1.0.0-SNAPSHOT.4803"},
{"name": "app-acquisitions", "version": "1.0.0-SNAPSHOT.4803"},
{"name": "app-consortia", "version": "1.1.0-SNAPSHOT.4803"}
]
}"dependencies": {
"postgres": ">=16.0",
"kafka": ">=2.8.0",
"opensearch": ">=1.0.0"
}Each branch represents a specific platform state with different purposes:
| Branch | Platform State | Purpose | Component Versions |
|---|---|---|---|
master |
Current Stable Release | Production-ready state | Latest stable release versions |
snapshot |
Latest Development | Active development state | Latest SNAPSHOT versions |
R1-2025 |
Specific Release | Tagged release state | Fixed release versions (e.g., 1.2.0) |
R2-2024 |
Previous Release | Historical release state | Previous release versions |
Development Flow:
snapshot β (development) β Rx-YYYY (release preparation) β master (stable)
Version Evolution:
1.0.0-SNAPSHOT.xxx β 1.0.0 β 1.1.0-SNAPSHOT.xxx β 1.1.0
- Snapshot β Release: Component versions change from
SNAPSHOTto fixed versions - Release β Master: Stable release state becomes current production baseline
- Master β Next Snapshot: New development cycle begins with incremented SNAPSHOT versions
The platform-lsp repository is central to the Eureka CI flow as documented in the CI flow [release]:
- Purpose: Continuously monitor for component updates
- Trigger: Scheduled/automated
- Action: Updates platform descriptor with latest available versions
- Output: Pull requests with version updates
- Purpose: Validate platform descriptor changes
- Trigger: PR creation/update
- Action: Runs validation, builds, and tests
- Output: Validated platform state or failure notifications
- Purpose: Finalize platform state updates
- Trigger: PR approval and merge
- Action: Commits new platform state, creates tags
- Output: Updated platform releases and notifications
- Purpose: Coordinate release across all applications
- Trigger: Manual (Kitfox team)
- Action: Creates release branches and coordinates application updates
- Output: Complete platform release preparation
When creating platform releases, tar.gz archives are generated containing the complete platform state as described in Artifacts [release]:
platform-descriptor.json: Complete platform definition- Application descriptors folder: All application compositions
package.json&yarn.lock: Frontend dependency managementstripes.config.js&stripes.modules.js: Stripes framework configuration
Platform Release: R2-2025.1
βββ Eureka Components: Fixed versions (e.g., kong-3.10.0)
βββ Applications: Fixed versions (e.g., app-platform-minimal-1.0.0)
βββ Dependencies: Minimum required versions
Required Applications: Must be present in all FOLIO installations
app-platform-minimal: Core FOLIO functionalityapp-platform-complete: Extended platform features
Optional Applications: Installed based on institutional needs
- Domain-specific applications (ERM, Acquisitions, etc.)
- Specialized workflow applications
- Integration applications (Edge services)
Infrastructure Components: Eureka-specific enhancements
- Authentication (Keycloak)
- API Gateway (Kong)
- Application Management (mgr-applications)
- Service Discovery (sidecar)
- π« Create Feature Branch: Use Jira ticket name (
RANCHER-XXXX) - π Impact Assessment: Consider effects across all platform components
- π Update Platform Descriptor: Modify component versions as needed
- π§ͺ Test Changes: Validate platform composition and dependencies
Platform-lsp enables FOLIO's Eureka implementation by:
- ποΈ Centralizing Platform State: Single source of truth for complete platform composition
- β‘ Enabling Eureka Features: Orchestrates enhanced microservices architecture with sidecars, Kong, and Keycloak
- π Supporting CI/CD: Integrates with automated scanning, validation, and release processes
- π¦ Ensuring Consistency: Provides reproducible platform deployments through versioned artifacts
- π‘οΈ Maintaining Security: Team-based authorization for critical platform operations
Quick Links: