Packages > @fluidframework/protocol-definitions

@fluidframework/protocol-definitions Package

Core set of Fluid protocol interfaces shared between services and clients. These interfaces must always be back and forward compatible.

Interfaces

Interface Alerts Description
IAttachment ALPHA
IBlob ALPHA Raw blob stored within the tree.
IBranchOrigin ALPHA Branch origin information.
ICapabilities ALPHA Capabilities of a Client. In particular, whether or not the client is interactive.
IClient ALPHA Represents a client connected to a Fluid service, including associated user details, permissions, and connection mode.
IClientConfiguration ALPHA Key value store of service configuration properties provided to the client as part of connection.
IClientDetails ALPHA IClient connection / environment metadata.
IConnected ALPHA Message sent to indicate a client has connected to the server.
ICreateBlobResponse ALPHA
IDocumentAttributes ALPHA
IDocumentMessage ALPHA Document-specific message.
INack ALPHA
INackContent ALPHA Interface for nack content.
IProcessMessageResult ALPHA
IProposal ALPHA Proposal to set the given key/value pair.
IQuorum ALPHA Interface combining tracking of clients as well as proposals in the Quorum.
IQuorumClients ALPHA Interface for tracking clients in the Quorum.
IQuorumProposals ALPHA Interface for tracking proposals in the Quorum.
ISequencedClient ALPHA A IClient that has been acknowledged by the sequencer.
ISequencedDocumentMessage ALPHA Sequenced message for a distributed document.
ISignalClient ALPHA
ISignalMessage ALPHA Interface for signals sent by the server to clients.
ISignalMessageBase ALPHA Common interface between incoming and outgoing signals.
ISnapshotTree ALPHA
ISummaryAck ALPHA Contents of summary ack expected from the server.
ISummaryAttachment ALPHA Unique identifier for blobs uploaded outside of the summary.
ISummaryBlob ALPHA String or Binary data to be uploaded to the server as part of the container's Summary.
ISummaryContent ALPHA
ISummaryHandle ALPHA Path to a summary tree object from the last successful summary indicating the summary object hasn't changed since it was uploaded.
ISummaryNack ALPHA Contents of summary nack expected from the server.
ISummaryProposal ALPHA Data about the original proposed summary message.
ISummaryTree ALPHA Tree Node data structure with children that are nodes of SummaryObject type: Blob, Handle, Attachment or another Tree.
ITokenClaims ALPHA

JSON Web Token (JWT) Claims

See https://datatracker.ietf.org/doc/html/rfc7519#section-4

ITrace ALPHA Messages to track latency trace.
ITree ALPHA
IUploadedSummaryDetails ALPHA
IUser ALPHA Base user definition. It is valid to extend this interface when adding new details to the user object.
IVersion ALPHA Represents a version of the snapshot of a data store.

Enumerations

Enum Alerts Description
FileMode ALPHA
MessageType ALPHA
NackErrorType ALPHA Type of the nack.
TreeEntry ALPHA Type of entries that can be stored in a tree.

Types

TypeAlias Alerts Description
ConnectionMode ALPHA A client's connection mode - either view-only ("read") or allowing edits ("write").
IApprovedProposal ALPHA Adds the sequence number at which the message was approved to an ISequencedProposal.
ICommittedProposal ALPHA Adds the sequence number at which the message was committed to an IApprovedProposal.
ISequencedProposal ALPHA Similar to IProposal except it also includes the sequence number when it was made.
IsoDate ALPHA ISO 8601 format date: YYYY-MM-DDTHH:MM:SSZ.
ITreeEntry ALPHA A tree entry wraps a path with a type of node.
SummaryObject ALPHA Object representing a node within a summary tree.
SummaryTree ALPHA The root of the summary tree.
SummaryType ALPHA Type tag used to distinguish different types of nodes in a ISummaryTree.
SummaryTypeNoHandle ALPHA Summary type that ISummaryHandle points to.

Namespaces

Namespace Alerts Description
SummaryType ALPHA Type tag used to distinguish different types of nodes in a ISummaryTree.

Type Details

ConnectionMode (ALPHA)

A client’s connection mode - either view-only (“read”) or allowing edits (“write”).

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type ConnectionMode = "write" | "read";

Remarks

Note: a user’s connection mode is dependent on their permissions. E.g. a user with read-only permissions will not be allowed a “write” connection mode.

IApprovedProposal (ALPHA)

Adds the sequence number at which the message was approved to an ISequencedProposal .

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type IApprovedProposal = {
    approvalSequenceNumber: number;
} & ISequencedProposal;

ICommittedProposal (ALPHA)

Adds the sequence number at which the message was committed to an IApprovedProposal .

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type ICommittedProposal = {
    commitSequenceNumber: number;
} & IApprovedProposal;

ISequencedProposal (ALPHA)

Similar to IProposal except it also includes the sequence number when it was made.

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type ISequencedProposal = {
    sequenceNumber: number;
} & IProposal;

IsoDate (ALPHA)

ISO 8601 format date: YYYY-MM-DDTHH:MM:SSZ.

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type IsoDate = string;

ITreeEntry (ALPHA)

A tree entry wraps a path with a type of node.

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type ITreeEntry = {
    path: string;
    mode: FileMode;
} & ({
    type: TreeEntry.Blob;
    value: IBlob;
} | {
    type: TreeEntry.Tree;
    value: ITree;
} | {
    type: TreeEntry.Attachment;
    value: IAttachment;
});

SummaryObject (ALPHA)

Object representing a node within a summary tree.

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type SummaryObject = ISummaryTree | ISummaryBlob | ISummaryHandle | ISummaryAttachment;

Remarks

If any particular node is an ISummaryTree , it can contain additional SummaryObjects as its children.

SummaryTree (ALPHA)

The root of the summary tree.

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type SummaryTree = ISummaryTree | ISummaryHandle;

SummaryType (ALPHA)

Type tag used to distinguish different types of nodes in a ISummaryTree .

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type SummaryType = SummaryType.Attachment | SummaryType.Blob | SummaryType.Handle | SummaryType.Tree;

SummaryTypeNoHandle (ALPHA)

Summary type that ISummaryHandle points to.

WARNING: This API is provided as an alpha preview and may change without notice. Use at your own risk.

Signature

export declare type SummaryTypeNoHandle = SummaryType.Tree | SummaryType.Blob | SummaryType.Attachment;

Remarks

Summary handles are often used to point to summary tree objects contained within older summaries, thus avoiding the need to re-send the entire subtree if summary object has not changed.