Skip to content

Commit

Permalink
Merge branch 'finos:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
andreifloricel authored Feb 15, 2024
2 parents 6c0128f + 071be32 commit df805e9
Show file tree
Hide file tree
Showing 25 changed files with 169 additions and 143 deletions.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).

### Added

* Added clarification that `id` field values SHOULD always be strings to context schema definition (a restriction that can't easily be represented in the generated types). ([#1149](https://github.com/finos/FDC3/pull/1149))

### Changed

### Deprecated
Expand Down
2 changes: 1 addition & 1 deletion docs/agent-bridging/ref/findIntent.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ sequenceDiagram

### Example

Outward message to the DAB:
Outward message to the DAB (with `intent` and `context` specified, but not `resultType`):

```json
// agent-A -> DAB
Expand Down
2 changes: 1 addition & 1 deletion docs/agent-bridging/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ The DA must then respond to the `hello` message with a `handshake` request to th
* provides. The string must be a numeric semver version, e.g. 1.2 or 1.2.1. */
fdc3Version: string,
/** The name of the provider of the FDC3 Desktop Agent Implementation
* (e.g.Finsemble, Glue42, OpenFin etc.). */
* (e.g.Finsemble, io.Connect, OpenFin etc.). */
provider: string,
/** The version of the provider of the FDC3 Desktop Agent Implementation (e.g. 5.3.0). */
providerVersion: string,
Expand Down
2 changes: 1 addition & 1 deletion docs/api/ref/Metadata.md
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ interface ImplementationMetadata {
readonly fdc3Version: string;

/** The name of the provider of the FDC3 Desktop Agent Implementation
* (e.g.Finsemble, Glue42, OpenFin etc.).
* (e.g. io.Connect, OpenFin etc.).
*/
readonly provider: string;

Expand Down
5 changes: 2 additions & 3 deletions docs/api/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ A Desktop Agent is a desktop component (or aggregate of components) that serves
Examples of Desktop Agents include:

- Autobahn
- Finsemble
- Glue42
- io.Connect
- OpenFin
- Refinitiv Eikon

Expand Down Expand Up @@ -226,7 +225,7 @@ As an alternative to raising a specific intent, you may also raise an unspecifie

### Intent Results

An optional [`IntentResult`](ref/Types#intentresult) may also be returned as output by an application handling an intent. Results maybe either a single `Context` object, or a `Channel` that may be used to send a stream of responses. The [`PrivateChannel`](ref/PrivateChannel) type is provided to support synchronization of data transmitted over returned channels, by allowing both parties to listen for events denoting subscription and unsubscription from the returned channel. `PrivateChannels` are only retrievable via [raising an intent](ref/DesktopAgent#raiseintent).
An optional [`IntentResult`](ref/Types#intentresult) may also be returned as output by an application handling an intent. Results may be a single `Context` object, a `Channel` that may be used to send a stream of responses, or `void` (no result). The [`PrivateChannel`](ref/PrivateChannel) type is provided to support synchronization of data transmitted over returned channels, by allowing both parties to listen for events denoting subscription and unsubscription from the returned channel. `PrivateChannels` are only retrievable via [raising an intent](ref/DesktopAgent#raiseintent).

For example, an application handling a `CreateOrder` intent might return a context representing the order and including an ID, allowing the application that raised the intent to make further calls using that ID.

Expand Down
5 changes: 3 additions & 2 deletions docs/context/ref/Context.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,12 @@ derived types may require the name object as mandatory, depending on use case.

### `id` (optional)

Context data objects may include a set of equivalent key-value pairs that can be used to help applications
identify and look up the context type they receive in their own domain. The idea behind this design is that applications can provide as many equivalent identifiers to a target application as possible, e.g. an instrument may be represented by an ISIN, CUSIP or Bloomberg identifier.
Context data objects may include a set of equivalent key-value pairs that can be used to help applications identify and look up the context type they receive in their own domain. The idea behind this design is that applications can provide as many equivalent identifiers to a target application as possible, e.g. an instrument may be represented by an ISIN, CUSIP or Bloomberg identifier.

Identifiers do not make sense for all types of data, so the `id` property is therefore optional, but some derived types may choose to require at least one identifier.

Identifier values SHOULD always be of type string.

## See Also

FDC3 Specifications
Expand Down
2 changes: 2 additions & 0 deletions docs/context/spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ An `id` field with type `object` is defined in the base [fdc3.context](ref/Conte

Where an identifier is the name of an existing standard, external to FDC3, it is represented in all caps. For example: FIGI, PERMID, CUSIP, ISO-2. When an identifier is a more general concept, it is represented in all lower case. For example: ticker, name, geocode, email.

Identifier values SHOULD always be of type string.

All standard identifier names are reserved names. Applications may use their own identifiers ad hoc. For example:

```json
Expand Down
5 changes: 3 additions & 2 deletions docs/trademarks.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ Trademarks used within this site and the FDC3 Standard include, but are not limi
- Eikon is a registered trademark of Refinitiv
- FDC3 is a registered trademark and brand of The Linux Foundation
- Excel is a Microsoft Corporation product name
- Finsemble is a registered trademark and product name of Finsemble, Inc.
- Glue42 is a trademark of Tick42
- Finsemble is a registered trademark and product name of interop.io, Inc.
- Glue42 is a trademark and product name of interop.io, Inc.
- io.Connect is a trademark and product name of interop.io, Inc.
- Java is a registered trademark of Oracle America, Inc.
- JavaScript is a registered trademark of Oracle America, Inc.
- .NET is a trademark of Microsoft Corporation
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@finos/fdc3",
"version": "2.1.0-beta.5",
"version": "2.1.0-beta.6",
"author": "Fintech Open Source Foundation (FINOS)",
"homepage": "https://fdc3.finos.org",
"repository": {
Expand Down
4 changes: 4 additions & 0 deletions schemas/bridging/findIntentAgentRequest.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@
"context": {
"title": "Context argument",
"$ref": "../context/context.schema.json"
},
"resultType": {
"title": "Result type argument",
"type": "string"
}
},
"required": ["intent"],
Expand Down
10 changes: 3 additions & 7 deletions schemas/context/context.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,7 @@
},
"id": {
"type": "object",
"unevaluatedProperties": {
"type": "string"
}
"unevaluatedProperties": {"type": "string" }
}
},
"additionalProperties": true,
Expand All @@ -52,10 +50,8 @@
"id": {
"type": "object",
"title": "Id",
"description": "Context data objects may include a set of equivalent key-value pairs that can be used to help applications identify and look up the context type they receive in their own domain. The idea behind this design is that applications can provide as many equivalent identifiers to a target application as possible, e.g. an instrument may be represented by an ISIN, CUSIP or Bloomberg identifier.\n\nIdentifiers do not make sense for all types of data, so the `id` property is therefore optional, but some derived types may choose to require at least one identifier.",
"unevaluatedProperties": {
"type": "string"
}
"description": "Context data objects may include a set of equivalent key-value pairs that can be used to help applications identify and look up the context type they receive in their own domain. The idea behind this design is that applications can provide as many equivalent identifiers to a target application as possible, e.g. an instrument may be represented by an ISIN, CUSIP or Bloomberg identifier.\n\nIdentifiers do not make sense for all types of data, so the `id` property is therefore optional, but some derived types may choose to require at least one identifier. Identifier values SHOULD always be of type string.",
"unevaluatedProperties": {"type": "string" }
}
},
"additionalProperties": true,
Expand Down
14 changes: 10 additions & 4 deletions src/bridging/BridgingTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -669,6 +669,7 @@ export interface ContextElement {
*
* Identifiers do not make sense for all types of data, so the `id` property is therefore
* optional, but some derived types may choose to require at least one identifier.
* Identifier values SHOULD always be of type string.
*/
id?: { [key: string]: any };
/**
Expand Down Expand Up @@ -1770,6 +1771,7 @@ export interface FindIntentAgentRequestMeta {
export interface FindIntentAgentRequestPayload {
context?: ContextElement;
intent: string;
resultType?: string;
}

/**
Expand Down Expand Up @@ -1928,6 +1930,7 @@ export interface FindIntentBridgeRequestMeta {
export interface FindIntentBridgeRequestPayload {
context?: ContextElement;
intent: string;
resultType?: string;
}

/**
Expand Down Expand Up @@ -3102,7 +3105,7 @@ export interface PrivateChannelEventListenerAddedAgentRequestMeta {
*/
export interface PrivateChannelEventListenerAddedAgentRequestPayload {
/**
* The id of the PrivateChannel that the event listener was added to
* The id of the PrivateChannel that the event listener was added to.
*/
channelId: string;
listenerType: PrivateChannelEventListenerTypes;
Expand Down Expand Up @@ -3165,7 +3168,7 @@ export interface PrivateChannelEventListenerAddedBridgeRequestMeta {
*/
export interface PrivateChannelEventListenerAddedBridgeRequestPayload {
/**
* The id of the PrivateChannel that the event listener was added to
* The id of the PrivateChannel that the event listener was added to.
*/
channelId: string;
listenerType: PrivateChannelEventListenerTypes;
Expand Down Expand Up @@ -3213,7 +3216,7 @@ export interface PrivateChannelEventListenerRemovedAgentRequestMeta {
*/
export interface PrivateChannelEventListenerRemovedAgentRequestPayload {
/**
* The id of the PrivateChannel that the event listener was removed from
* The id of the PrivateChannel that the event listener was removed from.
*/
channelId: string;
listenerType: PrivateChannelEventListenerTypes;
Expand Down Expand Up @@ -3271,7 +3274,7 @@ export interface PrivateChannelEventListenerRemovedBridgeRequestMeta {
*/
export interface PrivateChannelEventListenerRemovedBridgeRequestPayload {
/**
* The id of the PrivateChannel that the event listener was removed from
* The id of the PrivateChannel that the event listener was removed from.
*/
channelId: string;
listenerType: PrivateChannelEventListenerTypes;
Expand Down Expand Up @@ -4178,6 +4181,7 @@ export interface Context {
*
* Identifiers do not make sense for all types of data, so the `id` property is therefore
* optional, but some derived types may choose to require at least one identifier.
* Identifier values SHOULD always be of type string.
*/
id?: { [key: string]: any };
/**
Expand Down Expand Up @@ -5486,6 +5490,7 @@ const typeMap: any = {
[
{ json: 'context', js: 'context', typ: u(undefined, r('ContextElement')) },
{ json: 'intent', js: 'intent', typ: '' },
{ json: 'resultType', js: 'resultType', typ: u(undefined, '') },
],
false
),
Expand Down Expand Up @@ -5560,6 +5565,7 @@ const typeMap: any = {
[
{ json: 'context', js: 'context', typ: u(undefined, r('ContextElement')) },
{ json: 'intent', js: 'intent', typ: '' },
{ json: 'resultType', js: 'resultType', typ: u(undefined, '') },
],
false
),
Expand Down
2 changes: 2 additions & 0 deletions src/context/ContextTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,7 @@ export interface ContextElement {
*
* Identifiers do not make sense for all types of data, so the `id` property is therefore
* optional, but some derived types may choose to require at least one identifier.
* Identifier values SHOULD always be of type string.
*/
id?: { [key: string]: any };
/**
Expand Down Expand Up @@ -946,6 +947,7 @@ export interface Context {
*
* Identifiers do not make sense for all types of data, so the `id` property is therefore
* optional, but some derived types may choose to require at least one identifier.
* Identifier values SHOULD always be of type string.
*/
id?: { [key: string]: any };
/**
Expand Down
Loading

0 comments on commit df805e9

Please sign in to comment.