System Overview

Purpose

ft-configs-service is a Spring Boot service that:

  • Owns configuration data in its relational database (source of truth).

  • Exposes authenticated REST APIs for administrative CRUD and import/export workflows (used by ft-configs-ui).

  • Publishes domain snapshots into a shared Hazelcast cluster so runtime services (for example ACS, northbound-api, provisionportal, serviceapi, and an “angular backend”) can read configuration without reading files or hitting the database.

Non-goals

  • Running or managing the Hazelcast cluster (this service is a Hazelcast client).

  • Acting as a device/ACS runtime; it only stores and serves configuration metadata.

  • Providing an end-user UI guide (this documentation is backend-only).

System Boundaries

External systems (current)

  • ft-configs-ui – administrative UI; calls ft-configs-service REST endpoints.

  • ACS – runtime consumer; reads configuration snapshots directly from Hazelcast.

  • provisionportal – runtime consumer; reads configuration snapshots directly from Hazelcast.

  • serviceapi – runtime consumer; reads configuration snapshots directly from Hazelcast.

  • northbound-api – runtime consumer; reads configuration snapshots directly from Hazelcast.

  • angular backend – runtime consumer; reads configuration snapshots directly from Hazelcast.

  • Other runtime services – read configuration snapshots directly from Hazelcast.

  • Hazelcast cluster – shared cache layer for the whole platform; required for the system to function.

Data ownership

  • The database behind ft-configs-service is the source of truth for all configuration domains.

  • Hazelcast contains derived, read-optimized snapshots; it is not authoritative storage.

Bounded Contexts (code packages)

Package roots under src/main/java/com/friendly/ftconfigsservice:

  • auth, role, useradmin – authentication, authorization and user management.

  • angular/* – configuration domains exposed to UI (tabs, tab-view, frames, custom params, network map, mesh, etc.).

  • northbound – management of northbound api.properties content (DB-backed) and import/export (properties + legacy XML).

  • audit – audit events, persistence model, and request correlation metadata.

  • environment – public “environment snapshot” endpoint for UI banners (version/build/cache endpoint metadata).

  • utils – security filters, exception handling, export helpers, ID generator.