Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
98c9b7c
Initial import of FDC3 security into monorepo, same tests broken
robmoffat Jul 8, 2025
fcf27cf
Removed duplicate testing code
robmoffat Jul 8, 2025
462af6e
added extra matching rules from fdc3-security
robmoffat Jul 8, 2025
f012de6
Tidied up testing
robmoffat Jul 8, 2025
267a878
fixed type name
robmoffat Jul 8, 2025
c170e77
fixed path
robmoffat Jul 8, 2025
61b4b19
working towards fixing remaining test
robmoffat Jul 8, 2025
7460523
Added symmetric key and user schemas.
robmoffat Jul 8, 2025
7c064b3
Added new intents and contexts
robmoffat Jul 8, 2025
134b64e
fixed build dependency order
robmoffat Jul 8, 2025
88b967b
Fixed build issues, security tests are working
robmoffat Jul 8, 2025
ac0b491
Demo working and prettified
robmoffat Jul 8, 2025
e384f32
trying to get tests to work correctly, sign to happen after encrypt
robmoffat Jul 21, 2025
9dbf0b5
Improving coverage
robmoffat Jul 21, 2025
4e092ec
Improving coverage
robmoffat Jul 21, 2025
4776a4a
Working on coverage
robmoffat Jul 21, 2025
6809fde
working on unit tests fro ClientSideFDC3Security
robmoffat Jul 22, 2025
9400849
WIP
robmoffat Jul 23, 2025
89caa5d
testing security implementation
robmoffat Jul 23, 2025
0cf4db6
added another test
robmoffat Jul 23, 2025
a17626f
improved coverage
robmoffat Jul 23, 2025
35c7476
Work in progress
robmoffat Jul 24, 2025
58fc58f
Improving docs
robmoffat Jul 31, 2025
390a05b
Rename testing -> fdc3-testing for publication of security and other …
robmoffat Jul 31, 2025
21ee8c6
re-ordered packages in port order
robmoffat Jul 31, 2025
6037554
fixed table format
robmoffat Jul 31, 2025
846957c
table formatting
robmoffat Jul 31, 2025
c0e06ce
Allowing multiple app directories to be loaded concurrently
robmoffat Jul 31, 2025
623ef42
Created distinct running node apps for each security app, to make the…
robmoffat Jul 31, 2025
ddf3901
tidying up demo structure
robmoffat Jul 31, 2025
7482c02
fixed structure for app1
robmoffat Jul 31, 2025
00e01ff
Three example vite apps running
robmoffat Aug 1, 2025
d05e228
Got IDP demo working
robmoffat Aug 1, 2025
324210e
minor refactoring
robmoffat Aug 1, 2025
fa38516
IDP1 App now connecting and making requests
robmoffat Aug 1, 2025
66d83ae
Fixed build for implementation package
robmoffat Aug 1, 2025
3504f11
signing and checking of intents by app1 and idp
robmoffat Aug 1, 2025
5361fe4
Updated to EdDSA key
robmoffat Aug 4, 2025
de260a8
Added JWT creation / checking to tests.
robmoffat Aug 4, 2025
96c55ca
JWT tokens coming from IDP, validated by App1
robmoffat Aug 4, 2025
5f1efff
Added aud to fdc3.user.request
robmoffat Aug 4, 2025
1ff9825
storing token in session
robmoffat Aug 4, 2025
3685e1b
Refactor security implementation to use a unified server initializati…
robmoffat Aug 5, 2025
d13d428
DEMO WORKING. ABOUT TO BEGIN MAJOR REFACTOR
robmoffat Aug 6, 2025
94c15f7
tidying up security packages
robmoffat Aug 8, 2025
5412d0d
work in progress - refactoring mess
robmoffat Aug 11, 2025
61d15a5
IDP and App1 demos coming together
robmoffat Aug 12, 2025
ed931cc
GetUser intent working
robmoffat Aug 12, 2025
0c4beb9
Work-in-progress
robmoffat Aug 13, 2025
90be7d9
Requests private channel using signed instrument context containing jwt
robmoffat Aug 14, 2025
40a3ab1
suppressing error in ack
robmoffat Aug 14, 2025
f43f285
Merge branch 'main' into fdc3-security-monorepo
robmoffat Aug 19, 2025
f2b0837
Merged properly, running
robmoffat Aug 19, 2025
1f2a1cc
Demo workflow completed.
robmoffat Aug 26, 2025
d52baa3
Added extra logging.
robmoffat Aug 26, 2025
94e4e1b
wortking on readme
robmoffat Sep 4, 2025
541e806
mermaid diagram
robmoffat Sep 4, 2025
c37e3b3
Enhance FDC3 security schemas and implementation by updating context …
robmoffat Sep 5, 2025
cac52a6
Encrypting returned fdc3.user data, not siging user requests
robmoffat Sep 5, 2025
a9007a5
Working on Microsoft Entra demo
robmoffat Sep 9, 2025
de67dba
removing cruft
robmoffat Sep 9, 2025
d764564
tidied up, added appd entry
robmoffat Sep 9, 2025
4f2a44c
fixed flow issues
robmoffat Sep 9, 2025
9051f83
Entra workflow completed.
robmoffat Sep 9, 2025
b9f933f
simplify user.schema.json id properties to stop to avoid generating a…
kriswest Sep 26, 2025
412852b
FDC3: Security implementation - CORS
antoinerollindev Oct 2, 2025
b6d1458
Merge pull request #1680 from antoinerollindev/patch/fdc3-security-cors
robmoffat Oct 2, 2025
5dbb0be
FDC3: Security implementation - HTTPS
antoinerollindev Oct 6, 2025
82b2d22
Update server.ts
Yannick-Malins Oct 6, 2025
a733ea7
Merge pull request #1681 from antoinerollindev/patch/fdc3-security-https
Yannick-Malins Oct 6, 2025
b998f97
Symphony AppD entry - add to the main one if we can get it to work wi…
robmoffat Oct 16, 2025
a12d274
Adding BMO Conformance Placeholder
robmoffat Oct 17, 2025
aafbabc
removed accidentally adding BMO comformance in wrong branch
robmoffat Oct 17, 2025
0a83427
Upgrade Entra
robmoffat Oct 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,5 @@ website/.yarn
toolbox/fdc3-for-web/fdc3-web-impl/generated/
cucumber-report.html
nyc-coverage-report/
.history/
.history/
**/junit.xml
15 changes: 15 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node-terminal",
"name": "Run Script: test",
"request": "launch",
"command": "npm run test",
"cwd": "${workspaceFolder}/packages/fdc3-security"
}
]
}
6 changes: 5 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
{
"typescript.tsdk": "node_modules/typescript/lib"
"typescript.tsdk": "node_modules/typescript/lib",
"cSpell.words": [
"finos",
"uuidv"
]
}
33 changes: 18 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,21 +81,24 @@ The specifications are informed by agreed [business use cases](https://fdc3.fino

This project (the FDC3 Standard repo) is now a monorepo containing the following modules:

| Directory | Release Coordinates | Purpose | Testing / Coverage |
|--------------------------------------|--------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|
| `packages/fdc3-schema` | `@finos/fdc3-schema` (npm) | Contains the FDC3 For The Web and Desktop Agent Bridging protocol schemas. Generates `BridgingTypes.ts` and `BrowserTypes.ts` versions of those schemas for consumption in typescript code. | n/a |
| `packages/fdc3-context` | `@finos/fdc3-context` (npm) | Contains the schemas for standard FDC3 context types. Generates the `ContextTypes.ts` typescript version of the schema for consumption in typescript/javascript. | n/a |
| `packages/fdc3-standard` | `@finos/fdc3-standard` (npm) | Interface definitions for the FDC3 standard in typescript (e.g. the `DesktopAgent` interface) and the app directory schema. | Jest, embedded NYC |
| `packages/fdc3-agent-proxy` | `@finos/fdc3-agent-proxy` (npm) | Contains a complete implementation of the FDC3 DACP. Written in a platform-agnostic manner. | Cucumber, NYC |
| `packages/fdc3-get-agent` | `@finos/fdc3-get-agent` (npm) | Implements the `getAgent` and `fdc3Ready()` functions as well as the FDC3 Web Connection protocol to allow FDC3 to work on the web or in an electron container. | Cucumber, NYC |
| `packages/testing` | -not released- | Contains testing tools used by the cucumber tests used within other modules of this project. | |
| `toolbox/fdc3-conformance` | -not released- | Contains definitions of the FDC3 conformance test suite, implemented by the [FDC3 Conformance Framework](https://github.com/finos/FDC3-conformance-framework) | Test Definitions Only |
| `toolbox/fdc3-workbench` | [here](https://fdc3.finos.org/toolbox/fdc3-workbench/) | Contains an FDC3-For-Web ready version of the [FDC3 Workbench](toolbox/fdc3-workbench/README.md). | |
| `toolbox/fdc3-explained` | [Here](https://fdc3.finos.org/toolbox/fdc3-explained) | [Readme Here](toolbox/fdc3-explained/README.md) | |
| `toolbox/fdc3-for-web/fdc3-web-impl` | `@finos/fdc3-web-impl` (npm) | Portable and reusable implementation of the FDC3 For-The-Web Desktop Agent-Side protocol, | Cucumber, NYC |
| `toolbox/fdc3-for-web/demo` | -not released- | A reference implementation of an FDC3-For-The-Web Desktop Agent, using the above implementation and conforming to FDC3 2.0 from the [FDC3 Conformance Framework](https://github.com/finos/FDC3-conformance-framework) | |
| `packages/fdc3` | `@finos/fdc3` (npm) | Imports `fdc3-standard`, `fdc3-context`, `fdc3-schema` and `fdc3-get-agent` sub-modules. This is intended to be the main entry point for typescript / javascript applications using FDC3 | |
| `packages/fdc3-commonjs` | `@finos/fdc3-commonjs` (npm) | A roll-up of the `fdc3` sub-module. This is for **backwards compatibility where CommonJS is required**. May not be provided in future versions of FDC3. | |
| Directory | Release Coordinates | Purpose | Testing / Coverage | Demo Port No |
|--------------------------------------|--------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------|--------------|
| `packages/fdc3-schema` | `@finos/fdc3-schema` (npm) | Contains the FDC3 For The Web and Desktop Agent Bridging protocol schemas. Generates `BridgingTypes.ts` and `BrowserTypes.ts` versions of those schemas for consumption in typescript code. | n/a | - |
| `packages/fdc3-context` | `@finos/fdc3-context` (npm) | Contains the schemas for standard FDC3 context types. Generates the `ContextTypes.ts` typescript version of the schema for consumption in typescript/javascript. | n/a | - |
| `packages/fdc3-standard` | `@finos/fdc3-standard` (npm) | Interface definitions for the FDC3 standard in typescript (e.g. the `DesktopAgent` interface) and the app directory schema. | Jest, embedded NYC | - |
| `packages/fdc3-agent-proxy` | `@finos/fdc3-agent-proxy` (npm) | Contains a complete implementation of the FDC3 DACP. Written in a platform-agnostic manner. | Cucumber, NYC | - |
| `packages/fdc3-get-agent` | `@finos/fdc3-get-agent` (npm) | Implements the `getAgent` and `fdc3Ready()` functions as well as the FDC3 Web Connection protocol to allow FDC3 to work on the web or in an electron container. | Cucumber, NYC | - |
| `packages/fdc3-security` | `@finos/fdc3-security` (npm) | Contains FDC3 security functionality including signing, encryption, and message authenticity verification. | Cucumber, NYC | - |
| `packages/fdc3-testing` | `@finos/fdc3-testing` | Contains testing tools used by the cucumber tests used within other modules of this project. | - | - |
| `packages/fdc3` | `@finos/fdc3` (npm) | Imports `fdc3-standard`, `fdc3-context`, `fdc3-schema` and `fdc3-get-agent` sub-modules. This is intended to be the main entry point for typescript / javascript applications using FDC3 | - | - |
| `packages/fdc3-commonjs` | `@finos/fdc3-commonjs` (npm) | A roll-up of the `fdc3` sub-module. This is for **backwards compatibility where CommonJS is required**. May not be provided in future versions of FDC3. | - | - |
| `toolbox/fdc3-conformance` | -not released- | Contains definitions of the FDC3 conformance test suite, implemented by the [FDC3 Conformance Framework](https://github.com/finos/FDC3-conformance-framework) | Test Definitions Only | - |
| `toolbox/fdc3-explained` | [Here](https://fdc3.finos.org/toolbox/fdc3-explained) | [Readme Here](toolbox/fdc3-explained/README.md) | - | - |
| `toolbox/fdc3-for-web/fdc3-web-impl` | `@finos/fdc3-web-impl` (npm) | Portable and reusable implementation of the FDC3 For-The-Web Desktop Agent-Side protocol, | Cucumber, NYC | - |
| `toolbox/fdc3-for-web/demo` | -not released- | A reference implementation of an FDC3-For-The-Web Desktop Agent, using the above implementation and conforming to FDC3 2.0 from the [FDC3 Conformance Framework](https://github.com/finos/FDC3-conformance-framework) | - | 4000 |
| `toolbox/fdc3-workbench` | [here](https://fdc3.finos.org/toolbox/fdc3-workbench/) | Contains an FDC3-For-Web ready version of the [FDC3 Workbench](toolbox/fdc3-workbench/README.md). | - | 4001 |
| `toolbox/fdc3-for-web/reference-ui` | -not released- | Reference UI components for channel selector and intent resolver used by the demo. | - | 4002 |
| `toolbox/fdc3-security-implementation` | `@finos/fdc3-security-implementation` (npm) | Implementation of FDC3 security functionality with example server and JOSE-based cryptographic operations. | Jest | 4003-4005 |


### Building and Running The FDC3 Modules
Expand Down
Loading