In this release

Application specific properties can now be shared across different applications, from an application acting as the source or owner of the information to other applications acting as consumers. Access to Application specific properties is managed via the same policies that regulate other access of twins and actions for users and applications in ProptechOS. Also, new Connector management API endpoints go out to preview, and we introduce a new device subclass – LogicalServer. Now it will be possible to deploy and control connectors across multiple hosting models.

New functionality

Sharing Application Specific Properties between applications

Alias Namespace for Schema

To allow application properties sharing between applications, a Application specigfic property schema should have an alias namespace assigned to it. Two new endpoints were introduced. Schema can be assigned to one namespace only, but one namespace can handle multiple schemas.

  • PUT /preview/json/application/ {applicationId} /schema/{schemaId}/namespace?alias_namespace={aliasNamespace} Update alias namespace for schema
  • DELETE /preview/json/application/ {applicationId} /schema/{schemaId}/namespaceDelete alias namespace for schema

includedExternal section in Resource Permission Policy

New property “includedExternal” in RPP is introduced, to manage access to non twin entities. Currently it supports only one key “SchemaNamespace”, and the value is an array of alias namespace ids. includeExternal gives access to all Application Specific Properties schemas within a namespace.

Java

{
  “propertyOwner”: “a1ef37aa-aa1f-4177-84d5-93de1f75fc8b”,
  “allowWriteExternals”: [
    “AppSpecificProperties”
  ],
  “includedExternal”: {
  “SchemaNamespace” : {
    ids”: [
      “a1ef37aa-aa1f-4177-84d5-93de1f75fc8b”
    ]
   }
 },
 “id”: “a1ef37aa-aa1f-4177-84d5-93de1f75fc8b”,
 “class”: “ResourcePermissionPolicy”,
 “status”: “Valid”,
 “popularName”: “Example ExtendedTwinInfo RPP”
}

Sharing Application Specific Properties

Application Specific Properties sharing is allowed only between Applications and hence “includedExternal” are applicable only for Applications.

  • Schema should have assigned alias namespace.
  • Application should have access to the schema.
  • Application should have access to the twin.
  • Application’s RPP which provides access to twins should include an “includeExternal” section with defined schema namespace.

Logical server management

Connector management functionality now includes the possibility to manage LogicalDevices on different servers, not only on the ProptechOS host which was used previously as a default connector host. To make it possible we introduce a new twin type LogicalServer.

Currently only Ubuntu servers are supported by ProptechOS Edge Connector management.

LogicalServer – subclass of LogicalDevice, a RealEstateCore representation of a server, which can host connectors. A serber can represent a device on-site (“on the edge”), virtual server or a connector node the ProptechOS cloud.

LogicalServer Management

LogicalServer management operations:

  • GET /preview/json/logicalserver – list all logical server;
  • GET /preview/json/logicalserver/ {id} – get single logical server;
  • POST /preview/json/logicalserver – create single logical server;
  • PUT /preview/json/logicalserver – update single logical server;
  • DELETE /preview/json/logicalserver – update single logical server;

ProptechOS host LogicalServer will be populated to your Property Owner automatically.

LogicalServer JSON Schema:

Unset

{
      “ipAddress”: null,
      “port”: null,
      “user”: null,
      “edgeManagementUrl”:
“http://edge-manager-service.default.svc.cluster.local:8080”,

      “hasAssignedPorts”: [
        {
          “logicalDeviceId”: fa3a0246-6f0b-4a13-9548-c9a8c4585fe5“,
          “rmiPort”: 9090
        }
      ],
      “popularName”:ProptechOS Host“,
      “class”:LogicalServer“,
      “isMountedInBuildingComponent”:
6bac503a-3132-41e9-8901-ea176780fea0“,

      “servesDevice”: []
}

where:

ipAddress – is ip address of server,

port – ssh port for secure remote administration and secure file transfer,

user – created user account on ubuntu server,

hasAssignedPorts – this is auto populated when LogicalDevice is assigned to LogicalServer

servesDevice – auto populated, will contain list of all LogicalDevices assigned to this LogicalServer

LogicalDevice Management

We also add two new endpoints to logical device management to assign LogicalDevice to LogicalServer

  • PUT /preview/json/logicaldevice/ {id}/logicalserver/ {serverId} – assign logical server to logical device
  • DELETE /preview/json/logicaldevice/ {id} /logicalserver – remove logical server assignment

LogicDevice without assigned LogicalServer will not be possible to deploy or check status etc.

Breaking changes

None

Fixes and minor updated (internal links are added only for reference)

  • OTEAM-3675 New placement context needed: IntakeAir
  • PLAT-4241 Filters in the endpoint GET /json/sensor contain “actuator” in the descriptions
  • PLAT-4203 Geometry minimum page size
  • PLAT-4277 Add “twin_statuses” filter to “/json/twins” endpoint
  • PLAT-4254 Investigate Address to PO duplicated relation
  • PLAT-4282 Fix Geometry GET paged request
  • PLAT-4195 Internal server error when /json/twin request executed
  • PLAT-4205 Add twin_ids query param to get app specific properties by schema
  • PLAT-4221 Add new text field to Device edge status response that explains the status