Preparing search index...

    Breaking Changes & Deprecations

    This document lists breaking changes and deprecations in Signal K Server.


    The Admin UI has been upgraded from React 16 to React 19. This is a significant update that may affect embedded webapps and plugin configuration panels.

    Component Before After
    React 16.14.0 19.x
    React DOM 16.14.0 19.x
    React Router 4.x 6.x
    Language JavaScript TypeScript

    If your webapp uses Module Federation to share React with the Admin UI:

    1. Singleton sharing is now required - Your webapp must configure React and ReactDOM as singletons with requiredVersion: false. See vite.config.js for the current configuration.

    2. React 19 compatibility - If your webapp bundles its own React, it should be compatible with components rendered by the host. Most React 16/17/18 code works unchanged in React 19, but some deprecated APIs have been removed.

    3. String refs removed - React 19 no longer supports string refs (ref="myRef"). Use useRef() instead.

    4. defaultProps on function components - Deprecated. Use JavaScript default parameters instead.

    Plugin configuration panels using ./PluginConfigurationPanel export continue to work. The props interface remains the same:

    • configuration - the plugin's configuration data
    • save - function to save configuration
    • Standalone webapps - Webapps that don't use Module Federation sharing are not affected
    • Server APIs - All Signal K HTTP and WebSocket APIs remain unchanged
    • Plugin JavaScript APIs - Server-side plugin APIs are not affected

    The following changes have been implemented with the introduction of Resources API and apply to applications using the ./signalk/v2/resources endpoint.

    Note: These changes DO NOT impact applications using the ./signalk/v1/resources endpoint.

    The version 1 specification defined resource Ids with the following format urn:mrn:signalk:uuid:<UUIDv4>.

    e.g. urn:mrn:signalk:uuid:18592f80-3425-43c2-937b-0be64b6be68c

    The Resource API has dropped the use the prefix and ids are now just a uuidv4 value.

    e.g. 18592f80-3425-43c2-937b-0be64b6be68c

    This format is used for both accessing a resource e.g. /signalk/v1/api/resources/waypoints/18592f80-3425-43c2-937b-0be64b6be68c as well as the value within an href attribute.

    Example:

    {
    "name": "...",
    "descripton": "...",
    "href": "/resources/waypoints/18592f80-3425-43c2-937b-0be64b6be68c",
    ...
    }

    The Resources API has updated the definition of the following resources and may break applications that simply shift to using the v2 api without catering for the changes:

    • routes: removed the start, end properties.
    • waypoints: removed position attribute, added name, description and type attributes.
    • regions: removed geohash attribute, added name and description properties.
    • notes: removed geohash and region attributes, added href and properties attributes.
    • charts: There has been a significant changes to include support for WMS, WMTS and TileJSON sources.

    Please see the Resources OpenAPI definition for details.


    With the introduction of the Course API the following paths should now be considered deprecated:

    • /signalk/v1/api/vessels/self/navigation/courseGreatCircle
    • /signalk/v1/api/vessels/self/navigation/courseRhumbline

    Note: The Course API does currently maintain values in these paths for the purposes of backward compatibility, but applications and plugins referencing these paths should plan to move to using the equivalent paths under /signalk/v2/api/vessels/self/navigation/course.