Bridges and fabric administration1874 — Joint Fabric Datastore

Matter Cluster 1874 — Joint Fabric Datastore

Matter Cluster 1874 (0x0752) Joint Fabric Datastore: attributes, commands, events, data types, shadow paths and bridge payload examples.

Matter Cluster 1874 — Joint Fabric Datastore Cluster

Matter Cluster 1874, also written as 0x0752, is the Joint Fabric Datastore Cluster. The Joint Fabric Datastore Cluster is a cluster that provides a mechanism for the Joint Fabric Administrators to manage the set of Nodes, Groups, and Group membership among Nodes in the Joint Fabric. When an Ecosystem Administrator Node is commissioned onto the Joint Fabric, the Ecosystem Administrator Node has no knowledge of what Nodes and Groups are present, or what set-up information related to the Joint Fabric is provided by the user.

Cluster Identity

FieldValue
Cluster ID decimal1874
Cluster ID hex0x0752
Cluster nameJoint Fabric Datastore
Cluster revision (Matter 1.6.1)1
Roleutility
ScopeNode
PICS codeJFDS
Typical endpoint0

Revision history

RevisionChange
1Initial revision

Shadow Path Format

Cluster 1874 values in the device shadow use this format:

endpoint_id / 1874 / attribute_id

Example:

{
  "0/1874/0": "AQID"
}
PartMeaning
0Endpoint ID
1874Joint Fabric Datastore cluster
0AnchorRootCA attribute

Data Types

DatastoreAccessControlEntryAuthModeEnum

ValueNameConformanceMeaning
1PASEMPasscode authenticated session
2CASEMCertificate authenticated session
3GroupMGroup authenticated session

DatastoreAccessControlEntryPrivilegeEnum

ValueNameConformanceMeaning
1ViewMCan read and observe all (except Access Control Cluster)
3OperateMView privileges, and can perform the primary function of this Node (except Access Control Cluster)
4ManageMOperate privileges, and can modify persistent configuration of this Node (except Access Control Cluster)
5AdministerMManage privileges, and can observe and modify the Access Control Cluster

DatastoreGroupKeyMulticastPolicyEnum

ValueNameConformanceMeaning
0PerGroupIDMIndicates filtering of multicast messages for a specific Group ID
1AllNodesMIndicates not filtering of multicast messages

DatastoreGroupKeySecurityPolicyEnum

ValueNameConformanceMeaning
0TrustFirstMMessage counter synchronization using trust-first

DatastoreStateEnum

ValueNameConformanceMeaning
0PendingMTarget device operation is pending
1CommittedMTarget device operation has been committed
2DeletePendingMTarget device delete operation is pending
3CommitFailedMTarget device operation has failed

DatastoreACLEntryStruct (struct)

The DatastoreACLEntryStruct is a holder for an ACL (DatastoreAccessControlEntryStruct) on a specific Node which is managed by the Datastore. Only ACLs on a specific Node that are fabric-scoped to the Joint Fabric are managed by the Datastore.

FieldNameTypeConformanceConstraintMeaning
0NodeIDnode-idM——
1ListIDuint16M——
2ACLEntryDatastoreAccessControlEntryStructM——
3StatusEntryDatastoreStatusEntryStructM—Indicates whether entry in this list is pending, committed, delete-pending, or commit-failed.

DatastoreAccessControlEntryStruct (struct)

The DatastoreAccessControlEntryStruct represents an ACL on a specific Node (identified by the DatastoreACLEntryStruct) which is managed by the Datastore. Only ACLs on a specific Node that are fabric-scoped to the Joint Fabric are managed by the Datastore.

FieldNameTypeConformanceConstraintMeaning
1PrivilegeDatastoreAccessControlEntryPrivilegeEnumM——
2AuthModeDatastoreAccessControlEntryAuthModeEnumM——
3Subjectslist of subject-id (nullable)Mmax SubjectsPerAccessControlEntry entries—
4Targetslist of DatastoreAccessControlTargetStruct (nullable)Mmax TargetsPerAccessControlEntry entries—

DatastoreAccessControlTargetStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0Clustercluster-id (nullable)M——
1Endpointendpoint-no (nullable)M——
2DeviceTypedevtype-id (nullable)M——

DatastoreAdministratorInformationEntryStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0NodeIDnode-idM——
1FriendlyNamestringMmax length 32Friendly name for this node which is not propagated to nodes.
2VendorIDvendor-idM——
3ICACoctstrMmax length 400—

DatastoreBindingTargetStruct (struct)

The DatastoreBindingTargetStruct represents a Binding on a specific Node (identified by the DatastoreEndpointBindingEntryStruct) which is managed by the Datastore. Only bindings on a specific Node that are fabric-scoped to the Joint Fabric are managed by the Datastore.

FieldNameTypeConformanceConstraintMeaning
1Nodenode-idEndpoint—This field is the binding's remote target node ID.
2Groupgroup-id!Endpointmin 1This field is the binding's target group ID that represents remote endpoints.
3Endpointendpoint-no!Group—This field is the binding's remote endpoint that the local endpoint is bound to.
4Clustercluster-idO—This field is the binding's cluster ID (client & server) on the local and target endpoint(s).

DatastoreEndpointBindingEntryStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0NodeIDnode-idM——
1EndpointIDendpoint-noM——
2ListIDuint16M——
3BindingDatastoreBindingTargetStructM—The binding target structure.
4StatusEntryDatastoreStatusEntryStructM—Indicates whether entry in this list is pending, committed, delete-pending, or commit-failed.

DatastoreEndpointEntryStruct (struct)

The DatastoreEndpointEntryStruct represents an Endpoint on a specific Node which is managed by the Datastore. Only Nodes on the Joint Fabric are managed by the Datastore.

FieldNameTypeConformanceConstraintMeaning
0EndpointIDendpoint-noM——
1NodeIDnode-idM——
2FriendlyNamestringMmax length 32Indicates a user-assigned label for this endpoint, as captured by a Joint Fabric Administrator's user interface.

DatastoreEndpointGroupIDEntryStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0NodeIDnode-idM——
1EndpointIDendpoint-noM——
2GroupIDgroup-idM——
3StatusEntryDatastoreStatusEntryStructM—Indicates whether entry in this list is pending, committed, delete-pending, or commit-failed.

DatastoreGroupInformationEntryStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0GroupIDuint64M——
1FriendlyNamestringMmax length 32The friendly name for the group.
2GroupKeySetIDuint16 (nullable)M1 to 65534—
3GroupCATuint16 (nullable)Mdesc—
4GroupCATVersionuint16 (nullable)M1 to 65534—
5GroupPermissionDatastoreAccessControlEntryPrivilegeEnumM—The permission level associated with ACL entries for this group.

DatastoreGroupKeySetStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0GroupKeySetIDuint16M——
1GroupKeySecurityPolicyDatastoreGroupKeySecurityPolicyEnumM——
2EpochKey0octstr (nullable)Mallowed: 16—
3EpochStartTime0epoch-us (nullable)M——
4EpochKey1octstr (nullable)Mallowed: 16—
5EpochStartTime1epoch-us (nullable)M——
6EpochKey2octstr (nullable)Mallowed: 16—
7EpochStartTime2epoch-us (nullable)M——
8GroupKeyMulticastPolicyDatastoreGroupKeyMulticastPolicyEnumD——

DatastoreNodeInformationEntryStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0NodeIDnode-idM——
1FriendlyNamestringMmax length 32This field contains a user-assigned label for this node, as captured by a Joint Fabric Administrator's user interface.
2CommissioningStatusEntryDatastoreStatusEntryStructM—Set to Pending prior to completing commissioning, set to Committed after commissioning complete is successful, or set to CommitFailed if commissioning failed with the FailureCode Field set to the error.

DatastoreNodeKeySetEntryStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0NodeIDnode-idM——
1GroupKeySetIDuint16M——
2StatusEntryDatastoreStatusEntryStructM—Indicates whether entry in this list is pending, committed, delete-pending, or commit-failed.

DatastoreStatusEntryStruct (struct)

FieldNameTypeConformanceConstraintMeaning
0StateDatastoreStateEnumM—This field contains the current state of the target device operation.
1UpdateTimestampepoch-sM—This field contains the timestamp of the last update.
2FailureCodestatusM—This field contains the Status Code of the last failed operation where the State field is set to CommitFailure.

Cluster 1874 Attributes

Cluster 1874 defines 14 attributes plus the global attributes. Conformance: M mandatory, O optional, a feature code means "mandatory when that feature is present", square brackets mean "optional when …".

IDHexAttributeTypeConformanceAccessQualitiesDefault
00x0000AnchorRootCAoctstrMR (read: admin)persisted—
10x0001AnchorNodeIDnode-idMR (read: admin)persisted—
20x0002AnchorVendorIDvendor-idMR (read: admin)persisted—
30x0003FriendlyNamestringMR (read: admin)persisted—
40x0004GroupKeySetListlist of DatastoreGroupKeySetStructMR (read: admin)persisted—
50x0005GroupListlist of DatastoreGroupInformationEntryStructMR (read: admin)persisted—
60x0006NodeListlist of DatastoreNodeInformationEntryStructMR (read: admin)persisted—
70x0007AdminListlist of DatastoreAdministratorInformationEntryStructMR (read: admin)persisted—
80x0008StatusDatastoreStatusEntryStructMR (read: admin)persisted—
90x0009EndpointGroupIDListlist of DatastoreEndpointGroupIDEntryStructMR (read: admin)persisted—
100x000AEndpointBindingListlist of DatastoreEndpointBindingEntryStructMR (read: admin)persisted—
110x000BNodeKeySetListlist of DatastoreNodeKeySetEntryStructMR (read: admin)persisted—
120x000CNodeACLListlist of DatastoreACLEntryStructMR (read: admin)persisted—
130x000DNodeEndpointListlist of DatastoreEndpointEntryStructMR (read: admin)persisted—

Global attributes

IDHexAttributeMeaning
655280xFFF8GeneratedCommandListResponse command IDs this server generates.
655290xFFF9AcceptedCommandListCommand IDs this server accepts.
655310xFFFBAttributeListAttribute IDs implemented.
655320xFFFCFeatureMapImplemented optional features (see above).
655330xFFFDClusterRevisionCluster revision implemented; 1 for a Matter 1.6.1 device.

Attribute Details

Attribute 0 / 0x0000 — AnchorRootCA

Path example:

0/1874/0

No condensed specification text is available for AnchorRootCA; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typeoctstr
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraintmax length 400

Example:

{
  "0/1874/0": "AQID"
}

Attribute 1 / 0x0001 — AnchorNodeID

Path example:

0/1874/1

No condensed specification text is available for AnchorNodeID; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typenode-id
ConformanceM
AccessR (read: admin)
Qualitiespersisted

Example:

{
  "0/1874/1": 1
}

Attribute 2 / 0x0002 — AnchorVendorID

Path example:

0/1874/2

No condensed specification text is available for AnchorVendorID; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typevendor-id
ConformanceM
AccessR (read: admin)
Qualitiespersisted

Example:

{
  "0/1874/2": 1
}

Attribute 3 / 0x0003 — FriendlyName

Path example:

0/1874/3

Friendly name for the accessing fabric.

PropertyValue
Typestring
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraintmax length 32

Example:

{
  "0/1874/3": "example"
}

Attribute 4 / 0x0004 — GroupKeySetList

Path example:

0/1874/4

This indicates the list of DatastoreGroupKeySetStruct used in the Joint Fabric for the accessing fabric. This attribute contains at least one entry, the IPK, which has GroupKeySetID of 0.

PropertyValue
Typelist of DatastoreGroupKeySetStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraint1 to 254 entries

Each entry is a DatastoreGroupKeySetStruct (see Data Types).

Example:

{
  "0/1874/4": []
}

Attribute 5 / 0x0005 — GroupList

Path example:

0/1874/5

This indicates the list of groups in the Joint Fabric for the accessing fabric. This list includes, at a minimum, one group with GroupCAT value set to Administrator CAT and one group with GroupCAT value set to Anchor CAT.

PropertyValue
Typelist of DatastoreGroupInformationEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraint1 to 254 entries

Each entry is a DatastoreGroupInformationEntryStruct (see Data Types).

Example:

{
  "0/1874/5": []
}

Attribute 6 / 0x0006 — NodeList

Path example:

0/1874/6

This indicates the list of nodes in the Joint Fabric for the accessing fabric.

PropertyValue
Typelist of DatastoreNodeInformationEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraintmax 1024 entries

Each entry is a DatastoreNodeInformationEntryStruct (see Data Types).

Example:

{
  "0/1874/6": []
}

Attribute 7 / 0x0007 — AdminList

Path example:

0/1874/7

This indicates the list of administrators in the Joint Fabric for the accessing fabric. Only one Administrator may serve as the Anchor Root CA and Anchor Fabric Administrator and has index value 0. All other Joint Fabric Administrators is referenced at index 1 or greater. An empty list indicates that the Joint Fabric is not yet formed.

PropertyValue
Typelist of DatastoreAdministratorInformationEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraint1 to 32 entries

Each entry is a DatastoreAdministratorInformationEntryStruct (see Data Types).

Example:

{
  "0/1874/7": []
}

Attribute 8 / 0x0008 — Status

Path example:

0/1874/8

This indicates the current state of the Joint Fabric Datastore Cluster for the accessing fabric. The value is one of the following states: - Committed - indicates the DataStore is ready for use. - Pending - indicates that the DataStore is not yet ready for use. - DeletePending - indicates that the DataStore is in the process of being transferred to another Joint Fabric Anchor Administrator.

PropertyValue
TypeDatastoreStatusEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted

Value is a DatastoreStatusEntryStruct struct (see Data Types).

Example:

{
  "0/1874/8": {
    "state": 0,
    "updateTimestamp": 0,
    "failureCode": 0
  }
}

Attribute 9 / 0x0009 — EndpointGroupIDList

Path example:

0/1874/9

No condensed specification text is available for EndpointGroupIDList; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typelist of DatastoreEndpointGroupIDEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraintmax 8192 entries

Each entry is a DatastoreEndpointGroupIDEntryStruct (see Data Types).

Example:

{
  "0/1874/9": []
}

Attribute 10 / 0x000A — EndpointBindingList

Path example:

0/1874/10

This indicates the binding list for endpoints in the accessing fabric.

PropertyValue
Typelist of DatastoreEndpointBindingEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraintmax 8192 entries

Each entry is a DatastoreEndpointBindingEntryStruct (see Data Types).

Example:

{
  "0/1874/10": []
}

Attribute 11 / 0x000B — NodeKeySetList

Path example:

0/1874/11

This indicates the KeySet entries for nodes in the accessing fabric.

PropertyValue
Typelist of DatastoreNodeKeySetEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraintmax 8192 entries

Each entry is a DatastoreNodeKeySetEntryStruct (see Data Types).

Example:

{
  "0/1874/11": []
}

Attribute 12 / 0x000C — NodeACLList

Path example:

0/1874/12

No condensed specification text is available for NodeACLList; use the type, conformance and constraint below together with the cluster description above.

PropertyValue
Typelist of DatastoreACLEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraintmax 8192 entries

Each entry is a DatastoreACLEntryStruct (see Data Types).

Example:

{
  "0/1874/12": []
}

Attribute 13 / 0x000D — NodeEndpointList

Path example:

0/1874/13

This indicates the Endpoint entries for nodes in the accessing fabric.

PropertyValue
Typelist of DatastoreEndpointEntryStruct
ConformanceM
AccessR (read: admin)
Qualitiespersisted
Constraintmax 8192 entries

Each entry is a DatastoreEndpointEntryStruct (see Data Types).

Example:

{
  "0/1874/13": []
}

Cluster 1874 Commands

Cluster 1874 has 20 client-to-server commands and 0 responses.

IDHexCommandDirectionConformanceResponseDescription
00x00AddKeySetclient → serverMstatusOn receipt, this must add a KeySet to the Joint Fabric Datastore Cluster of the accessing fabric.
10x01UpdateKeySetclient → serverMstatusOn receipt, this must update a KeySet in the Joint Fabric Datastore Cluster of the accessing fabric.
20x02RemoveKeySetclient → serverMstatusOn receipt, this must remove a KeySet from the Joint Fabric Datastore Cluster of the accessing fabric.
30x03AddGroupclient → serverMstatusOn receipt, this must add a group to the Joint Fabric Datastore Cluster of the accessing fabric.
40x04UpdateGroupclient → serverMstatusOn receipt, this must update a group in the Joint Fabric Datastore Cluster of the accessing fabric.
50x05RemoveGroupclient → serverMstatusOn receipt, this must remove a group from the Joint Fabric Datastore Cluster of the accessing fabric.
60x06AddAdminclient → serverMstatusOn receipt, this must add an admin to the Joint Fabric Datastore Cluster of the accessing fabric.
70x07UpdateAdminclient → serverMstatusOn receipt, this must update an admin entry in the AdminList attribute.
80x08RemoveAdminclient → serverMstatusOn receipt, this must remove an admin from the Joint Fabric Datastore Cluster of the accessing fabric.
90x09AddPendingNodeclient → serverMstatusOn receipt, this must add a node to the Joint Fabric Datastore Cluster of the accessing fabric.
100x0ARefreshNodeclient → serverMstatusOn receipt, this must request that Datastore information relating to a Node of the accessing fabric is refreshed.
110x0BUpdateNodeclient → serverMstatusOn receipt, this must update the friendly name for a node in the Joint Fabric Datastore Cluster of the accessing fabric.
120x0CRemoveNodeclient → serverMstatusOn receipt, this must remove a node from the Joint Fabric Datastore Cluster of the accessing fabric.
130x0DUpdateEndpointForNodeclient → serverMstatusOn receipt, this must update the state of an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.
140x0EAddGroupIDToEndpointForNodeclient → serverMstatus—
150x0FRemoveGroupIDFromEndpointForNodeclient → serverMstatus—
160x10AddBindingToEndpointForNodeclient → serverMstatusOn receipt, this must add a binding to an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.
170x11RemoveBindingFromEndpointForNodeclient → serverMstatusOn receipt, this must remove a binding from an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.
180x12AddACLToNodeclient → serverMstatus—
190x13RemoveACLFromNodeclient → serverMstatus—

AcceptedCommandList

The AcceptedCommandList attribute lists the command IDs the endpoint actually implements:

endpoint_id / 1874 / 65529
{
  "0/1874/65529": [
    0,
    1,
    2,
    3,
    4,
    5,
    6,
    7,
    8,
    9,
    10,
    11,
    12,
    13,
    14,
    15,
    16,
    17,
    18,
    19
  ]
}

Before sending a Cluster 1874 command, check that the command ID exists in endpoint/1874/65529. Optional commands are only present when the matching feature is set in FeatureMap.


Bridge Command Payload Format

The bridge accepts Matter commands in this structure:

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "AddKeySet",
    "payload": {},
    "timed_request_timeout_ms": 1000
  }
}

For Cluster 1874, always use "cluster_id": 1874. Payload keys are the command field names in lowerCamelCase. Octet-string fields are base64-encoded. timed_request_timeout_ms is required for timed commands and ignored otherwise.


Command: AddKeySet

Purpose

On receipt, this must add a KeySet to the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID0
Command hex0x00
Command nameAddKeySet
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupKeySetgroupKeySetDatastoreGroupKeySetStructM—Indicates the KeySet to be added to the Joint Fabric Datastore Cluster. The Datastore must: 1.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "AddKeySet",
    "payload": {
      "groupKeySet": {
        "groupKeySetID": 1,
        "groupKeySecurityPolicy": 0,
        "epochKey0": "AQID",
        "epochStartTime0": 0
      }
    }
  }
}

Command: UpdateKeySet

Purpose

On receipt, this must update a KeySet in the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID1
Command hex0x01
Command nameUpdateKeySet
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupKeySetgroupKeySetDatastoreGroupKeySetStructM—Indicates the KeySet to be updated in the Joint Fabric Datastore Cluster. The Datastore must: 1.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "UpdateKeySet",
    "payload": {
      "groupKeySet": {
        "groupKeySetID": 1,
        "groupKeySecurityPolicy": 0,
        "epochKey0": "AQID",
        "epochStartTime0": 0
      }
    }
  }
}

Command: RemoveKeySet

Purpose

On receipt, this must remove a KeySet from the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID2
Command hex0x02
Command nameRemoveKeySet
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupKeySetIDgroupKeySetIDuint16M——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "RemoveKeySet",
    "payload": {
      "groupKeySetID": 1
    }
  }
}

Command: AddGroup

Purpose

On receipt, this must add a group to the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID3
Command hex0x03
Command nameAddGroup
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1FriendlyNamefriendlyNamestringMmax length 32Indicates the friendly name for the group.
2GroupKeySetIDgroupKeySetIDuint16 (nullable)M1 to 65534—
3GroupCATgroupCATuint16 (nullable)Mdesc—
4GroupCATVersiongroupCATVersionuint16 (nullable)M1 to 65534—
5GroupPermissiongroupPermissionDatastoreAccessControlEntryPrivilegeEnumM—Indicates the permission level associated with ACL entries for this group. The Datastore must: 1.

GroupPermission values (DatastoreAccessControlEntryPrivilegeEnum): 1 = View, 3 = Operate, 4 = Manage, 5 = Administer

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "AddGroup",
    "payload": {
      "groupID": 1,
      "friendlyName": "example",
      "groupKeySetID": 1,
      "groupCAT": 1,
      "groupCATVersion": 1,
      "groupPermission": 1
    }
  }
}

Command: UpdateGroup

Purpose

On receipt, this must update a group in the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID4
Command hex0x04
Command nameUpdateGroup
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——
1FriendlyNamefriendlyNamestring (nullable)Mmax length 32Indicates the friendly name for the group. null values will be ignored (not updated).
2GroupKeySetIDgroupKeySetIDuint16 (nullable)M1 to 65535—
3GroupCATgroupCATuint16 (nullable)Mdesc—
4GroupCATVersiongroupCATVersionuint16 (nullable)M1 to 65535—
5GroupPermissiongroupPermissionDatastoreAccessControlEntryPrivilegeEnum (nullable)M—Indicates the permission level associated with ACL entries for this group. null values will be ignored (not updated). The Datastore must: 1.

GroupPermission values (DatastoreAccessControlEntryPrivilegeEnum): 1 = View, 3 = Operate, 4 = Manage, 5 = Administer

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "UpdateGroup",
    "payload": {
      "groupID": 1,
      "friendlyName": "example",
      "groupKeySetID": 1,
      "groupCAT": 1,
      "groupCATVersion": 1,
      "groupPermission": 1
    }
  }
}

Command: RemoveGroup

Purpose

On receipt, this must remove a group from the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID5
Command hex0x05
Command nameRemoveGroup
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0GroupIDgroupIDgroup-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "RemoveGroup",
    "payload": {
      "groupID": 1
    }
  }
}

Command: AddAdmin

Purpose

On receipt, this must add an admin to the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID6
Command hex0x06
Command nameAddAdmin
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——
1FriendlyNamefriendlyNamestringMmax length 32Indicates the friendly name for the admin node.
2VendorIDvendorIDvendor-idM——
3ICACicacoctstrMmax length 400—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "AddAdmin",
    "payload": {
      "nodeID": 1,
      "friendlyName": "example",
      "vendorID": 1,
      "icac": "AQID"
    }
  }
}

Command: UpdateAdmin

Purpose

On receipt, this must update an admin entry in the AdminList attribute.

Command Identity

FieldValue
Command ID7
Command hex0x07
Command nameUpdateAdmin
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——
1FriendlyNamefriendlyNamestringOmax length 32Indicates the friendly name for the admin node.
2ICACicacoctstrOmax length 400—

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "UpdateAdmin",
    "payload": {
      "nodeID": 1
    }
  }
}

Command: RemoveAdmin

Purpose

On receipt, this must remove an admin from the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID8
Command hex0x08
Command nameRemoveAdmin
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "RemoveAdmin",
    "payload": {
      "nodeID": 1
    }
  }
}

Command: AddPendingNode

Purpose

On receipt, this must add a node to the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID9
Command hex0x09
Command nameAddPendingNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——
1FriendlyNamefriendlyNamestringMmax length 32Indicates the friendly name for the node. If a DatastoreNodeInformationEntryStruct exists for the given NodeID, then this command must fail with a INVALID_CONSTRAINT status code.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "AddPendingNode",
    "payload": {
      "nodeID": 1,
      "friendlyName": "example"
    }
  }
}

Command: RefreshNode

Purpose

On receipt, this must request that Datastore information relating to a Node of the accessing fabric is refreshed.

Command Identity

FieldValue
Command ID10
Command hex0x0A
Command nameRefreshNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "RefreshNode",
    "payload": {
      "nodeID": 1
    }
  }
}

Command: UpdateNode

Purpose

On receipt, this must update the friendly name for a node in the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID11
Command hex0x0B
Command nameUpdateNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——
1FriendlyNamefriendlyNamestringMmax length 32Indicates the friendly name for the node. The Datastore must: 1.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "UpdateNode",
    "payload": {
      "nodeID": 1,
      "friendlyName": "example"
    }
  }
}

Command: RemoveNode

Purpose

On receipt, this must remove a node from the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID12
Command hex0x0C
Command nameRemoveNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "RemoveNode",
    "payload": {
      "nodeID": 1
    }
  }
}

Command: UpdateEndpointForNode

Purpose

On receipt, this must update the state of an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID13
Command hex0x0D
Command nameUpdateEndpointForNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0EndpointIDendpointIDendpoint-noM——
1NodeIDnodeIDnode-idM——
2FriendlyNamefriendlyNamestringMmax length 32Indicates the friendly name for the endpoint. The Datastore must: 1.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "UpdateEndpointForNode",
    "payload": {
      "endpointID": 1,
      "nodeID": 1,
      "friendlyName": "example"
    }
  }
}

Command: AddGroupIDToEndpointForNode

Purpose

AddGroupIDToEndpointForNode is a client-to-server command of the Joint Fabric Datastore cluster.

Command Identity

FieldValue
Command ID14
Command hex0x0E
Command nameAddGroupIDToEndpointForNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——
1EndpointIDendpointIDendpoint-noM——
2GroupIDgroupIDgroup-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "AddGroupIDToEndpointForNode",
    "payload": {
      "nodeID": 1,
      "endpointID": 1,
      "groupID": 1
    }
  }
}

Command: RemoveGroupIDFromEndpointForNode

Purpose

RemoveGroupIDFromEndpointForNode is a client-to-server command of the Joint Fabric Datastore cluster.

Command Identity

FieldValue
Command ID15
Command hex0x0F
Command nameRemoveGroupIDFromEndpointForNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——
1EndpointIDendpointIDendpoint-noM——
2GroupIDgroupIDgroup-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "RemoveGroupIDFromEndpointForNode",
    "payload": {
      "nodeID": 1,
      "endpointID": 1,
      "groupID": 1
    }
  }
}

Command: AddBindingToEndpointForNode

Purpose

On receipt, this must add a binding to an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID16
Command hex0x10
Command nameAddBindingToEndpointForNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——
1EndpointIDendpointIDendpoint-noM——
2BindingbindingDatastoreBindingTargetStructM—Indicates the binding to be added to the endpoint. The Datastore must: 1.

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "AddBindingToEndpointForNode",
    "payload": {
      "nodeID": 1,
      "endpointID": 1,
      "binding": {
        "node": 1,
        "group": 1,
        "endpoint": 1,
        "cluster": 1
      }
    }
  }
}

Command: RemoveBindingFromEndpointForNode

Purpose

On receipt, this must remove a binding from an endpoint for a node in the Joint Fabric Datastore Cluster of the accessing fabric.

Command Identity

FieldValue
Command ID17
Command hex0x11
Command nameRemoveBindingFromEndpointForNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ListIDlistIDuint16M——
1EndpointIDendpointIDendpoint-noM——
2NodeIDnodeIDnode-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "RemoveBindingFromEndpointForNode",
    "payload": {
      "listID": 1,
      "endpointID": 1,
      "nodeID": 1
    }
  }
}

Command: AddACLToNode

Purpose

AddACLToNode is a client-to-server command of the Joint Fabric Datastore cluster.

Command Identity

FieldValue
Command ID18
Command hex0x12
Command nameAddACLToNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0NodeIDnodeIDnode-idM——
1ACLEntryaclEntryDatastoreAccessControlEntryStructM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "AddACLToNode",
    "payload": {
      "nodeID": 1,
      "aclEntry": {
        "privilege": 1,
        "authMode": 1,
        "subjects": [],
        "targets": []
      }
    }
  }
}

Command: RemoveACLFromNode

Purpose

RemoveACLFromNode is a client-to-server command of the Joint Fabric Datastore cluster.

Command Identity

FieldValue
Command ID19
Command hex0x13
Command nameRemoveACLFromNode
Directionclient → server
ConformanceM
Responsestatus
Access(invoke: admin)

Payload Fields

IDFieldPayload keyTypeConformanceConstraintMeaning
0ListIDlistIDuint16M——
1NodeIDnodeIDnode-idM——

Bridge Command Example

{
  "message_id": "1",
  "command": "device_command",
  "args": {
    "endpoint_id": 0,
    "cluster_id": 1874,
    "command_name": "RemoveACLFromNode",
    "payload": {
      "listID": 1,
      "nodeID": 1
    }
  }
}

Cluster 1874 Events

Cluster 1874 defines no events.


SmartphoneKey Notes

  • Cluster 1874 is not currently exposed by SmartphoneKey devices. This page documents the Matter 1.6.1 specification so that future devices can be interpreted without changes to the backend.
  • Shadow paths follow endpoint/1874/attribute; attribute values that the device reports as unreadable are written as n/a.
  • Attribute IDs, command IDs and enum values on this page come from the CSA Matter 1.6.1 data model; descriptions are condensed from the specification text.