Skip to content

0.6 Major Changes

Ryan Zwiefelhofer edited this page Nov 30, 2020 · 2 revisions

Major ddf-jsonrpc changes

Support for Multiple Versions with Single Artifact

  • We now support running on ddf 2.19 through 2.24 and 2.25+ with a single release.
  • feature:install the corresponding version for which version of ddf you are running
    • jsonrpc-2.19 for version 2.19 up to 2.24
    • jsonrpc-2.25 for version 2.25 onward

Artifact Coordinates

  • Main bundle is still com.connexta/ddf-rpc-api
  • New modules under group ID com.connexta.jsonrpc
    • jsonrpc-features - Contains features for installing the two versions
  • New multi version support (due to security api changes) made the new email module.
    group id com.connexta.jsonrpc.email
    • email-service - Interfaces that the two different versions of fetching emails implement
    • 2.19-email-impl , 2.25-email-impl - The two previously mentioned implementation bundles

Subscriptions

  • no longer returned in ddf.catalog/query response

  • New Subscriptions methods

    • subscriptions/isSubscribed
      • Params takes a list of ids List(String - metacard ids)
      • Returns:
    {"result" {"isSubscribed" {"id1" true
                               "id2" false}},
     "id" 0, 
     "jsonrpc" "2.0"}    
    • subscriptions/getAll
      • returns:
    {"result" {"subscriptions" ["id1" "id2" "id3"]},
     "id" 0, 
     "jsonrpc" "2.0"}      

Actions

  • No longer returned in ddf.catalog/query response
  • New Actions Methods
    • ddf.platform/getActions

      • Params takes either ids List(String - metacard ids) or query (Same structure as ddf.catalog/query )
    • Example response (Shorted for brevity)

      {"result"
       {"actions"
        {"ac63c317bfcd4514b96dc6c5aab43f9d"
         [{"url"
           "https://localhost:8993/services/catalog/sources/ddf.distribution/ac63c317bfcd4514b96dc6c5aab43f9d",
           "title" "Export Metacard XML",
           "description" "Provides a URL to the metacard",
           "id" "catalog.data.metacard.view"}
          {"url"
           "https://localhost:8993/services/catalog/sources/ddf.distribution/ac63c317bfcd4514b96dc6c5aab43f9d?transform=preview",
           "title" "Export as preview",
           "description"
           "Provides a URL to the metacard that transforms the return value via the preview transformer",
           "id" "catalog.data.metacard.preview"}
          {"url"
           "https://localhost:8993/services/catalog/sources/ddf.distribution/ac63c317bfcd4514b96dc6c5aab43f9d?transform=geojson",
           "title" "Export as geojson",
           "description"
           "Provides a URL to the metacard that transforms the return value via the geojson transformer",
           "id" "catalog.data.metacard.geojson"}]},
        "request_duration_millis" 48}, 
       "id" 0, 
       "jsonrpc" "2.0"}

Facets moved under properties and structure reworked to support full faceting options

  • Request params now under params -> properties -> facets
  • No longer just a collection of strings
  • facets now has the keys:
    • facetAttributes - Collection(Strings) (Required)
    • sortKey - String of INDEX or COUNT (Optional, Default: COUNT)
    • facetLimit - int (Optional, Default: 100)
    • minFacetCount - int (Optional, Default: 1)
  • Facet Response is no longer in top level facets
    • From full jsonrpc response: result -> properties -> facet-results

    • Excerpt from response starting at properties

      {"properties"
       {"client-info"
        {"scheme" "https",
         "remoteHost" "127.0.0.1",
         "remoteAddr" "127.0.0.1"},
        "facet-results"
        [{"attributeName" "datatype",
          "facetValues"
          [{"value" "Image", "count" 2}
           {"value" "Dataset", "count" 1}
           {"value" "Text", "count" 1}
           {"value" "image", "count" 1}]}],
        "metrics.source.elapsed.ddf.distribution" 94,
        "hitsPerSource" {"ddf.distribution" 7}}}

QueryResponse Property Blocklist

  • com.connexta.ddf-jsonrpc.return-property-blocklist System Property
    • Unset will use the default list ([operation.security](http://operation.security) , actualResultSize)
    • comma separated strings
    • This will need a security manager exception in the running VM
  • com.connexta.ddf-jsonrpc.return-property-blocklist-enable System Property
    • true or false (Default: true)

Added MetacardType Method

  • ddf.catalog/metacardType
    • Returns a metacardType specified by the metacardType param key (see method below for sample data return)
  • ddf.catalog/getMetacardTypes
    • Returns a list of all available metacard types

    • Example response (abbreviated for clarity)

      {"result"
       {"pdf"
        {"media.frame-rate"
         {"multivalued" false,
          "isInjected" false,
          "id" "media.frame-rate",
          "type" "DOUBLE"},
         "media.format"
         {"multivalued" false,
          "isInjected" false,
          "id" "media.format",
          "type" "STRING"},
         "metacard.created"
         {"multivalued" false,
          "isInjected" false,
          "id" "metacard.created",
          "type" "DATE"},
         "media.number-of-bands"
         {"multivalued" false,
          "isInjected" false,
          "id" "media.number-of-bands",
          "type" "INTEGER"}}}, 
       "id" 0, 
       "jsonrpc" "2.0"}