How opencop-oss/opencop works
OpenCOP is a web-based common operating picture: users connect live feeds or publish BYOD records, map incoming fields into geographic features, and view shared operational data on a map. The repository also includes access-controlled layers and sources, real-time event delivery, historical event and track workflows, watchbox processing, and plugin-based map rendering. The graph preserves these documented product branches; several backend and frontend paths are represented at their enclosing directories because their implementation files were not sampled.
Main entry points: map Operational map · PostGisService.java Geographic features · SourceRelationshipAuthorizationService.java Layer access · MapperProfileService.java Field mapping
Components 21
Data integration
- Socket lifecycle
backend/connect/src/main/java/com/opencop/api/connect/business/connector/ConnectionLifecycleService.java - Connection manager
backend/connect/src/main/java/com/opencop/api/connect/business/connector/ConnectionManager.java - TCP UDP RTSP
backend/connect/src/main/java/com/opencop/api/connect/technical/gateway/socket - Kafka BYOD
backend/processor/src/main/java/com/opencop/processor/technical/spring/config/byod - Field mapping
backend/sdk/src/main/java/com/opencop/core/sdk/ports/gateway/mapper/MapperProfileService.java
Processing and history
- Geographic features
backend/processor/src/main/java/com/opencop/processor/technical/gateway/db/PostGisService.java - Event history API
backend/core/src/main/java/com/opencop/core/api/event - Historical tracks
backend/processor/src/main/java/com/opencop/processor/business/usecase/history - Watchbox transitions
backend/processor/src/main/java/com/opencop/processor/business/usecase/watchbox/WatchboxTransitionEngine.java
Core services
- Layer access
backend/core/src/main/java/com/opencop/core/api/general/technical/service/SourceRelationshipAuthorizationService.java - Layer directory
backend/core/src/main/java/com/opencop/core/api/iam/technical/gateway/db/layers/directory/LayerDirectoryQueryService.java - User directory
backend/core/src/main/java/com/opencop/core/api/general/technical/gateway/db/userdirectory/UserDirectoryQueryService.java
Realtime delivery
- WebSocket events
backend/websocket/src/main/java/com/opencop/websocket/business/usecase/event/RetrieveAllEventsHandler.java
Web map
- Web application
frontend/packages/app/src - Operational map
frontend/packages/app/src/features/map - Render pipeline
frontend/packages/app/src/features/map/scene-binding/RenderPipeline.ts - Session rendering
frontend/packages/app/src/features/map/scene-binding/session/SessionPipeline.ts - Plugin tools
frontend/packages/contributions/src/host/PluginManager.ts - Weather overlays
frontend/packages/app/src/features/map
Other components
- Operator
- External sources
Connections 23
- Operator → Web application: uses
README.md - External sources → Socket lifecycle: provides feed
README.md - External sources → Kafka BYOD: publishes records
README.md - Socket lifecycle → Connection manager: manages lifecycle
backend/connect/src/main/java/com/opencop/api/connect/business/connector/ConnectionLifecycleService.java - Connection manager → TCP UDP RTSP: starts connectors
- Kafka BYOD → Field mapping: maps fields
README.md - TCP UDP RTSP → Field mapping: maps fields
README.md - Field mapping → Geographic features: creates features
README.md - Geographic features → Operational map: feeds picture
README.md - Operator → Web application: configures sources
README.md - Web application → Operational map: explores
README.md - Operational map → Render pipeline: renders scene
frontend/packages/app/src/features/map/scene-binding/session/SessionPipeline.ts - Render pipeline → Session rendering: uses pipeline
frontend/packages/app/src/features/map/scene-binding/session/SessionPipeline.ts - Plugin tools → Operational map: extends tools
README.md - Operational map → Weather overlays: shows overlays
README.md - Operational map → Event history API: inspects history
README.md - Operational map → Historical tracks: replays movement
README.md - Event history API → WebSocket events: delivers events
- WebSocket events → Operational map: streams updates
- Geographic features → Watchbox transitions: evaluates observations
- Operator → Layer access: requests access
README.md - Layer access → Layer directory: checks layers
- Layer access → User directory: checks users