feat(context): add instrument classification property
This adds an experimental optional classification field to the instrument context. For use in categorizing different types of financial instruments.
Fixes #1615
Describe your change
Related Issue
Contributor License Agreement
- [ ] I acknowledge that a contributor license agreement is required and that I have one in place or will seek to put one in place ASAP.
Review Checklist
- [x] Issue: If a change was made to the FDC3 Standard, was an issue linked above?
- [ ] CHANGELOG: Is a CHANGELOG.md entry included?
- [ ] API changes: Does this PR include changes to any of the FDC3 APIs (
DesktopAgent,Channel,PrivateChannel,Listener,Bridging)?- [ ] Docs & Sources: If yes, were both documentation (/docs) and sources updated?
JSDoc comments on interfaces and types should be matched to the main documentation in /docs - [ ] Conformance tests: If yes, are conformance test definitions (/toolbox/fdc3-conformance) still correct and complete?
Conformance test definitions should cover all required aspects of an FDC3 Desktop Agent implementation, which are usually marked with a MUST keyword, and optional features (SHOULD or MAY) where the format of those features is defined - [ ] Schemas: If yes, were changes applied to the Bridging and FDC3 for Web protocol schemas?
The Web Connection protocol and Desktop Agent Communication Protocol schemas must be able to support all necessary aspects of the Desktop Agent API, while Bridging must support those aspects necessary for Desktop Agents to communicate with each other- [ ] If yes, was code generation (
npm run build) run and the results checked in?
Generated code will be found at/src/api/BrowserTypes.tsand/or/src/bridging/BridgingTypes.ts
- [ ] If yes, was code generation (
- [ ] Docs & Sources: If yes, were both documentation (/docs) and sources updated?
- [ ] Context types: Were new Context type schemas created or modified in this PR?
- [ ] Were the field type conventions adhered to?
- [ ] Was the
BaseContextschema applied viaallOf(as it is in existing types)? - [ ] Was a
titleanddescriptionprovided for all properties defined in the schema? - [ ] Was at least one example provided?
- [ ] Was code generation (
npm run build) run and the results checked in?
Generated code will be found at/src/context/ContextTypes.ts
- [ ] Intents: Were new Intents created in this PR?
- [ ] Were the intent name prefixes and other naming conventions & characteristics adhered to?
- [ ] Was the new intent added to the list in the Intents Overview?
The committers listed above are authorized under a signed CLA.
- :white_check_mark: login: hughtroeger / name: Hugh Troeger (0f50e8c5bf0f7474af2a3f4411b6639fd680e480, 17f846da7cf8d490fa7e0284728faf35fc4f574f, 2bc6c2e89a407d889a595a3969a7d60ab0c05d83, 7869d9e03869799addcac322e2196b8f40d7ced8, 872b5e4e89363b464036e10cc3d51fe4474047d0, e1ced1510480a684f36885b7ccc133a008db759b, e4e2024ace48500a8847e34c62e7ab0a28e7617d)
- :white_check_mark: login: kriswest / name: Kris West (3e66acc1d79ff9856a819dac7b3785b4b7fc1222)
Deploy Preview for fdc3 ready!
| Name | Link |
|---|---|
| Latest commit | e4e2024ace48500a8847e34c62e7ab0a28e7617d |
| Latest deploy log | https://app.netlify.com/projects/fdc3/deploys/69398b09249c4e0008a88d00 |
| Deploy Preview | https://deploy-preview-1665.preview-fdc3.finos.org |
| Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify project configuration.
Coverage Report
Commit: e4e2024 Base: main@ab4e2ba
| Type | Base | This PR |
|---|---|---|
| Total Statements Coverage | ||
| Total Branches Coverage | ||
| Total Functions Coverage | ||
| Total Lines Coverage |
Details (changed files)
| File | Statements | Branches | Functions | Lines |
|---|
Details (all files)
| File | Statements | Branches | Functions | Lines |
|---|---|---|---|---|
| packages/fdc3-agent-proxy/src/DesktopAgentProxy.ts | ||||
| packages/fdc3-agent-proxy/src/index.ts | ||||
| packages/fdc3-agent-proxy/src/apps/DefaultAppSupport.ts | ||||
| packages/fdc3-agent-proxy/src/channels/DefaultChannel.ts | ||||
| packages/fdc3-agent-proxy/src/channels/DefaultChannelSupport.ts | ||||
| packages/fdc3-agent-proxy/src/channels/DefaultPrivateChannel.ts | ||||
| packages/fdc3-agent-proxy/src/heartbeat/DefaultHeartbeatSupport.ts | ||||
| packages/fdc3-agent-proxy/src/intents/DefaultIntentResolution.ts | ||||
| packages/fdc3-agent-proxy/src/intents/DefaultIntentSupport.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/AbstractListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/DefaultContextListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/DefaultIntentListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/EventListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/HeartbeatListener.ts | ||||
| packages/fdc3-agent-proxy/src/listeners/PrivateChannelEventListener.ts | ||||
| packages/fdc3-agent-proxy/src/messaging/AbstractMessaging.ts | ||||
| packages/fdc3-agent-proxy/src/util/AbstractFDC3Logger.ts | ||||
| packages/fdc3-agent-proxy/src/util/Logger.ts | ||||
| packages/fdc3-agent-proxy/src/util/throwIfUndefined.ts | ||||
| packages/fdc3-get-agent/src/index.ts | ||||
| packages/fdc3-get-agent/src/messaging/MessagePortMessaging.ts | ||||
| packages/fdc3-get-agent/src/messaging/message-port.ts | ||||
| packages/fdc3-get-agent/src/sessionStorage/DesktopAgentDetails.ts | ||||
| packages/fdc3-get-agent/src/strategies/DesktopAgentPreloadLoader.ts | ||||
| packages/fdc3-get-agent/src/strategies/FailoverHandler.ts | ||||
| packages/fdc3-get-agent/src/strategies/HelloHandler.ts | ||||
| packages/fdc3-get-agent/src/strategies/IdentityValidationHandler.ts | ||||
| packages/fdc3-get-agent/src/strategies/PostMessageLoader.ts | ||||
| packages/fdc3-get-agent/src/strategies/Timeouts.ts | ||||
| packages/fdc3-get-agent/src/strategies/getAgent.ts | ||||
| packages/fdc3-get-agent/src/ui/AbstractUIComponent.ts | ||||
| packages/fdc3-get-agent/src/ui/DefaultDesktopAgentChannelSelector.ts | ||||
| packages/fdc3-get-agent/src/ui/DefaultDesktopAgentIntentResolver.ts | ||||
| packages/fdc3-get-agent/src/ui/NullChannelSelector.ts | ||||
| packages/fdc3-get-agent/src/ui/NullIntentResolver.ts | ||||
| packages/fdc3-get-agent/src/util/Logger.ts | ||||
| packages/fdc3-get-agent/src/util/Uuid.ts | ||||
| packages/fdc3-standard/src/index.ts | ||||
| packages/fdc3-standard/src/api/AppIdentifier.ts | ||||
| packages/fdc3-standard/src/api/AppIntent.ts | ||||
| packages/fdc3-standard/src/api/AppMetadata.ts | ||||
| packages/fdc3-standard/src/api/Channel.ts | ||||
| packages/fdc3-standard/src/api/ContextMetadata.ts | ||||
| packages/fdc3-standard/src/api/DesktopAgent.ts | ||||
| packages/fdc3-standard/src/api/DisplayMetadata.ts | ||||
| packages/fdc3-standard/src/api/Errors.ts | ||||
| packages/fdc3-standard/src/api/Events.ts | ||||
| packages/fdc3-standard/src/api/GetAgent.ts | ||||
| packages/fdc3-standard/src/api/Icon.ts | ||||
| packages/fdc3-standard/src/api/Image.ts | ||||
| packages/fdc3-standard/src/api/ImplementationMetadata.ts | ||||
| packages/fdc3-standard/src/api/IntentMetadata.ts | ||||
| packages/fdc3-standard/src/api/IntentResolution.ts | ||||
| packages/fdc3-standard/src/api/Listener.ts | ||||
| packages/fdc3-standard/src/api/Methods.ts | ||||
| packages/fdc3-standard/src/api/PrivateChannel.ts | ||||
| packages/fdc3-standard/src/api/RecommendedChannels.ts | ||||
| packages/fdc3-standard/src/api/Types.ts | ||||
| packages/fdc3-standard/src/context/ContextType.ts | ||||
| packages/fdc3-standard/src/intents/Intents.ts | ||||
| packages/fdc3-standard/src/internal/contextConfiguration.ts | ||||
| packages/fdc3-standard/src/internal/intentConfiguration.ts | ||||
| packages/fdc3-standard/src/internal/typeHelpers.ts | ||||
| packages/fdc3-standard/src/ui/ChannelSelector.ts | ||||
| packages/fdc3-standard/src/ui/Connectable.ts | ||||
| packages/fdc3-standard/src/ui/IntentResolver.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/BasicFDC3Server.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/ServerContext.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/directory/BasicDirectory.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/BroadcastHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/HeartbeatHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/IntentHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/OpenHandler.ts | ||||
| toolbox/fdc3-for-web/fdc3-web-impl/src/handlers/support.ts |
As we've moved to an object type rather than a single field, the enum could come back - certainly for FDS_TYPE, but also for name. If someone wanted to use a different set they can give the set a name and use whatever they like... Just thinking out loud
I'm not entirely happy with how the intrument classificaiton is being combined with the organisation classification in the generated Browser types. Looking at why they are getting combined.
I'm not entirely happy with how the intrument classificaiton is being combined with the organisation classification in the generated Browser types. Looking at why they are getting combined.
@kriswest I added the enum for FDS_TYPE. I wasn't sure if we wanted to add it in for the generic name field since we had intended that to be more extensible.