CASSIOPEIA - NGSI-LD COMPLAINT DATA TRANSFORMATION ENGINE
CONVERTS CSV/JSON/GEOJSON/GBFS/GTFS, AND OTHER FORMATS INTO CONSISTENT NGSI-LD COMPLIANT ENTITIES, WITH REPEATABLE MAPPINGS, PREDICTABLE ID, OPTIONALLY VALIDATING THEM AGAINST FIWARE SMART DATA MODELS, AND WRITING RESULTS EITHER TO FILES OR DIRECTLY TO A NGSI-LD CONTEXT BROKER. based on Cassiopeia results, platforms can integrate data without per-dataset custom code.
MODULE TYPE: Data mapper + transformer (CLI + server mode; writer to files or Context Broker)
PRIMARY USE: Standardize heterogeneous data sources into interoperable NGSI-LD entities for smart city and IoT platforms
MATURITY: Beta/Production
LICENSE: TBD
WHY IT EXISTS
Real-world IoT and city/industry datasets arrive in “whatever format the provider chose” (CSV exports, custom JSON, GeoJSON layers, transit feeds, bike sharing feeds). Cassiopeia exists to turn that messy reality into consistent NGSI-LD entities - with repeatable mappings, predictable IDs, and optional schema validation - so platforms can integrate data without per-dataset custom code.
WHAT IT DOES
- Transforms multiple input formats: CSV, JSON, GeoJSON, GBFS, GTFS, and others.
- Outputs NGSI-LD entities in different representation modes (normalized/concise/simplified).
- Advanced mapping configuration: templates, conditional logic, nested objects, relationships, list relationships.
- Synthetic entities: create referenced entities on-the-fly when source data only contains partial references.
- Smart Data Model integration: download/search/list schemas and validate outputs when schemas exist.
- Flexible writers: write to files (default) or push directly to a Context Broker via HTTP.
- Standard feed shortcuts: pre-built configurations for common GTFS and GBFS entity types.
WHAT IT DOES NOT DO
- Not a Context Broker - it generates/publishes entities to one.
- Not a data catalog / data space - it’s a transformation/mapping component in a larger stack.
- Not a full ETL orchestration platform - it focuses on mapping + validation + output (scheduling/orchestration belongs elsewhere).
- Not an analytics/ML module - no mention of modeling or KPI logic, just transformation.
- Not a UI-first product - usage is documented mainly via CLI + config files.
HOW IT WORKS
- Inputs
- Source files or feeds: CSV / JSON / GeoJSON / GBFS / GTFS.
- Mapping config files: JSON5 (recommended) or JSON.
- Processing
- Applies mapping rules using Tera templates with support for conditionals, filters, and nested navigation.
- Generates entity IDs using dataModel + entityName + optional URN parts (site/service/group).
- Performs type transformations (string/int/float/bool/datetime/geo types).
- Optionally validates against Smart Data Model schemas (downloaded via Cassiopeia download).
- Outputs
- NGSI-LD entities written as files, or pushed to a Context Broker (--writer-type context-broker --broker-url ...).
- Output representation modes: normalized, concise (default), simplified.
- Null handling: include or skip null values.
ARCHITECTURE POSITION
Cassiopeia sits between “raw data sources” and your NGSI-LD runtime:
- Upstream: files, APIs, feeds, exports (CSV/JSON/GeoJSON/GTFS/GBFS).
- Cassiopeia: mapping configs + optional validation against Smart Data Models.
- Downstream: file outputs (for pipelines/tests) or a NGSI-LD Context Broker (for live platforms).
TECHNOLOGY STACK
- Language: Rust
- Config format: JSON5/JSON mapping configs
- Templating: Tera template engine
- Interfaces: CLI (cassiopeia ...) + server mode (cassiopeia server)
- Outputs: File writer or Context Broker writer (HTTP)
- Validation dependencies: Smart Data Model schemas downloaded by tool command
SCREENSHOTS / UI

FIWAREBox Cassiopeia - Data Model Selection

FIWAREBox Cassiopeia - Attribute Mapping
DEPLOYMENT OPTIONS
- standalone/self-hosted
- embedded in FIWAREBox
- managed as part of FIWAREBox (NGSI-LD Data Backbone)
LICENCE
TBD
WHO THIS IS FOR
IT personas: architects, data engineers, integrators, pilots/research
RELATED MODULES
Auriga, Lynx, Libra